HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0605
axobjHGIMG3でフライトシュミレーター5解決


axobj

リンク

2007/6/5(Tue) 20:47:31|NO.8788

HGIMG3でフライトシュミレーターを作っています。
角度でカメラの向きを指定するモードで、カメラを回すには、どうすればよいのでしょうか
また、カメラを向いている方向に進ませるには、どうすればよいのでしょうか。
教えてください。



この記事に返信する


f

リンク

2007/6/5(Tue) 21:53:42|NO.8796

普通にに

setang HGOBJ_CAMERA, x_rad , y_rad , z_rad

でいいと思う。

多分、

cammode CAM_MODE_LOOKAT

の設定してると無効になる。

詳しく知らないけど、自分の感覚ではこんなカンジ。



Shinya

リンク

2007/6/6(Wed) 08:12:11|NO.8810

hgimg3 に fvface という命令があるので、移動前の座標と移動後の座標から角度を求め、その角度に従えばよいです。
#include "hgimg3.as"
hgini _y = 200.0 _z = 240.0 u0 = 1.0 ; 単位[Pix/s] u1 = 0.01 // 着陸までの時間 T = 2.0*_z/(u0 + u1) cammode CAM_MODE_NORMAL setdir HGOBJ_CAMERA, 0, -20, 0 setpos HGOBJ_CAMERA, xx, -_y, _z setefx HGOBJ_CAMERA, 1.28539816, 0.5f, 420.0f ; fov,near,far ; SKY:青空 ; chdir dir_exe + "/sample/hgimg3" addxfile m_sky, "skybox.x" modelshade m_sky,0 regobj sky, m_sky setscale sky,30,30,30 setpos sky,0,20,0 setefx sky,$500 ; Zバッファを更新しない objproj sky,1 ; 通常のZクリップを無効にする ; BG:地面 ; addxfile m_xmodel,"sb_bg1.x" modelshade m_xmodel,0 regobj b_obj, m_xmodel setpos b_obj,0,80,100 setscale b_obj, 2,2,2 repeat T z = -_z + u0*cnt - (u0 - u1)*cnt*cnt/T/2 y = 2.0*_y*(z/_z)*(z/_z)*(z/_z) + 3.0*_y*(z/_z)*(z/_z) ;または ; #define PI 3.14159265358979 ; y = _y/2*(cos(PI/_z*z + PI) + 1) /* ■ここから本題 */ // 移動前の座標を取得 getpos HGOBJ_CAMERA, xx, yy, zz // 移動後の座標をベクトルに変換 fvset fv, xx, -y, -z // 移動後の座標から移動前の座標を直線上に見る角度取得 fvface fv, xx, yy, zz // セット setang HGOBJ_CAMERA, fv /* ■ここまで */ setpos HGOBJ_CAMERA, xx, -y, -z hgdraw hgsync 15 loop hgbye
途中の式は、(始点と終点での傾きが = 0)という条件で、3次式または三角関数で軌跡をとったものです。

/* ■ここから本題 */ 〜 /* ■ここまで */

を消してみると、その働きがわかります。



axobj

リンク

2007/6/6(Wed) 21:27:26|NO.8817

Shinyaさんのスクリプトを実行しましたが、HGIMG3のほうでエラーが出ます。

hgimg3.as 384行目
hgsel=ginfo(3)

↑ここにエラーがあります。



Shinya

リンク

2007/6/7(Thu) 00:24:24|NO.8821

 HSPスクリプトエディターのメニューバーから、HSP→HSP拡張マクロを使用する
にチェックを入れてください。チェックを入れないと ginfo がHSP2.61までの文法になるのでエラーが出ます。

HSP2 : ginfo x
HSP3 : ginfo(x)



axobj

リンク

2007/6/7(Thu) 17:56:02|NO.8827

おお、出来ました。
ありがとうございました。
fさんも、ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.