前回の続きです。
初心者用フライスルーカメラの基礎の基礎(超入門編)ってことで。
本当の基礎の基礎は
コレ。
前回同様、知ってるよー、興味無いって方はスルーして下さいね。
又、墓穴を掘ってるかもしれません、ご指摘ご指南あらばお願いします。
フライスルーカメラってどうやったら位置を指定できるの?(前回から続き)
2.Vector変数に数値をセットし、SetFlyCameraPos という命令を使って指定します。
3.ちょっと前回のおさらい。
Vector変数は一般変数と同じ Ver で定義します。
1つの変数の中に3つの要素を持っている。(x,y,z)
x=レイアウト左〜右へ(右へ行く程大きい数字)<- 便宜的に横座標
y=レイアウト地面〜上空へ(上空へ行く程大きい数字)<- 便宜的に高度座標
z=レイアウト奥〜手前へ(手前へ行く程大きい数字)<- 便宜的に縦座標
カメラは、カメラ位置と目標点の2つのVectorにより構成される。
まず実際にやってみると・・・(できればスクリプトマニュアル見ながら)

<こんな感じのカメラ位置にしてみます>>
@レイアウトからスクリプトの編集を選択 <- スクリプトエディタを起動
Aスクリプトで[レイアウト]の欄に書き内容を記述
Var pvVecCamera //カメラ位置Vector変数
Var pvVecAt //目標点Vector変数
//まずはカメラ位置Vector変数を初期化(クリア)してみましょう。
//全部セットするなら必須では無い。
//通常はセットしない座標は前回値を残しておく場合が多いですが・・・。
SetVectorZero pvVecCamera // <- pvVecCamera に(0,0,0)を一発でセット
//カメラ位置Vector変数セット 変数の中身の推移
SetVectorX pvVecCamera,500 // <- pvVecCamera 横座標セット(500,0,0)
SetVectorY pvVecCamera,100 // <- pvVecCamera 高度座標セット(500,100,0)
SetVectorZ pvVecCamera,300 // <- pvVecCamera 縦座標セット(500,100,300)
//カメラ位置Vector変数セット 変数の中身の推移
SetVectorZero pvVecAt // <- pvVecAt に(0,0,0)を一発でセット
SetVectorX pvVecAt,250 // <- pvVecAt 横座標セット(250,0,0)
SetVectorY pvVecAt,60 // <- pvVecAt 高度座標セット(250,60,0)
SetVectorZ pvVecAt,100 // <- pvVecAt 縦座標セット(250,60,100)
//カメラ位置を指定
SetFlyCameraPos pvVecCamera, pvVecAt
Bスクリプトエディタの確定をクリック
余談:些細な修正ですが案外便利です。
スクリプトエディタもヘルプを呼べたり良くなってきたなーという印象。
C運転して下さい。
D前回の「フライスルーカメラを見るには」に従ってカメラを切替て下さい。
初期表示と違う位置からのカメラワークになっているはずです。

<ビュワー上での画像>
ここまでくれば、センサーとかと組み合わせて好きな場所にカメラを出没させることが出来るハズです。ここでは詳細な内容は書きませんが、スクリプトがある程度使えるようになるのは必須ですね。何事もやてみないことには始まりません。(笑)
ヒントです。
@SetEventSensor を仕込んで編成通過を検知する。
AGetSenseTrainで編成を知る。
Bその編成のカメラをフライスルーカメラに切り替える。
Vector変数って数値指定しかできないの?
1.基本はVector変数に数値を指定してフライスルーカメラにセットします。
2.定数(値が変動しない固定値)的な命令(SetVectorZero SetVectorRight 等)を使って3つの要素を一発編集する事もできます。
3.VectorAdd 等 Vector変数同士で加算する等の方法があります。
次回は、もう少しいろいろな命令を使って簡単な移動をしてみます。
その次は回転移動くらいで終了予定。
何の脈略もなく気分で書いてますんで・・・すいません。
実験的な内容なので、aキーを押すスタイルのスクリプトで移動してみます。
余談
何でこんなモン書いてるかって・・・。ぅーん何でだろう。(笑)
数学は得意だけどスクリプトはちょっと・・・ていうVRM初心者さん。
ghostさんに続いて凄い奴作ってよー!
って、ヤッパそんな暇人そーそーいなよな。

0