カメラの設定

カメラは特に設定しなくても最初からデフォルトの設定が決められています。
おおよそ右のような状態になっています。(距離は違うかもしれませんが…。)
カメラの頭がY方向を向いていて、カメラは座標(0,0,0)の方向を向いている。
カメラの設定はループ内外どちらでもかまいません。
カメラの設定をする命令や状態を取得する命令などいろいろありますんで、状況に合わせて使い分けてください。
E3DSetCameraDeg カメラの向きを指定する。
E3DSetCameraPos カメラの位置を指定する。
E3DSetCameraTarget カメラの注視点を指定する。
E3DSetCameraTwist カメラをツイスト(ロール)させます。
etc...
サンプル
タコのモデルを表示させるだけのサンプルにカメラを設定しました。
パラメータをデフォルト位置にあわせてあるので数値を適当に変えたりしてみてください。
前回のサンプルに追加した部分を赤色で表示してあります。
;
; カメラを設定する
;
#include "e3dhsp.as"
;
; 初期化
;
E3DInit
;
; 形状データのロード
;
sdim mediadir, 2048
mediadir = curdir + "\\tako.sig"
E3DSigLoad mediadir, hsid1
E3DSetPos hsid1, 0, 0, 0
frameno1 = 0 ;モーションは使用しない。
;/////////////////
;
; カメラの初期化
;
camposx = 0 : camposy = 0 : camposz = 4200
E3DSetCameraPos camposx, camposy, camposz ;カメラ座標を設定
targetx = 0 ;注視点座標
targety = 0
targetz = 0
upvecx = 0 ;カメラの上方向のベクトル
upvecy = 1
upvecz = 0
E3DSetCameraTarget targetx, targety, targetz, upvecx, upvecy, upvecz ;カメラの注視点を設定
;
; メインループ
;
*main
E3DChkInView hsid1 ;モデルが、視野内にあるか判定
E3DBeginScene ;-----シーンスタート
;バックバッファへの書き込み作業を行う
stick key
if key&128 : goto *bye
E3DRender hsid1, 0, frameno1, 0 ;バックバッファにレンダリングする。(タコ描画)
E3DEndScene ;-----シーン終了
E3DPresent ;バックバッファの内容を、プライマリバッファに転送。描画する。
E3DWaitbyFPS 60 : await 0
goto *main
;
; 終了処理
;
*bye
E3DBye
end
|
GHP(仮)