2015年10月23日
複葉機を飛ばす(2)カメラの調整と助手席
「飛行機を改造」の続きです。
水上飛行機をベースに、機体を複葉機に入れ替えました。これをさらに改造、調整してゆきます。改造された複葉機は、JOG内の Shinobar Gate 海のあるサンドボックスに置いています。
水上飛行機
複葉機を飛ばす(1)機体の入れ替え
複葉機を飛ばす(2)カメラ位置の調整 ←この記事です。
複葉機を飛ばす(3)スクリプトのオプション
複葉機を飛ばす(4)動きの調整
(パイロットの)カメラ位置の調整
メインスクリプトの最初のほう 37行目あたりに
integer CAMERA_FIX = TRUE; // TRUE: fixed camera angle / FALSE: follow
があります。これがTRUEだと、カメラは機体に固定され、パイロットのカメラは SITCONFIG のほうで決まります。
vector CAMERA_POS = <-8.0, 0, 3.0>;
vector CAMERA_DIR = <0, 0, 1.0>;
CAMERA_POS がカメラ位置、CAMERA_DIRは視野中心点です。例によって台座プリム中心から x は東方向、yは北方向、 zは上方向です。カメラの仰角はこの例で tan-1 (-2m/8m)ということになります。およそ -15度。このくらいが自然です。
CAMERA_FIX = FALSE の場合は、カメラは機体後方からついてゆく感じになります。メインスクリプト側の162行目あたりの関数 init_followCam() で設定されます。llSetCameraParams 関数でいくつかを設定していますが、そのうち CAMERA_DISTANCE の値だけを機体の大きさに合わせて調整し、他はそのままにしておくことをおすすめします。
座席を増やす
パイロットは台座に座り、位置だけを操縦席の位置に合わせてそれらしく見せます。台座の中にあるノートカード SITCONFIG で位置を調整しました。
他の乗客は別のプリムに座らせます。ボックスで作った座布団が簡単です。機体と座布団の向きを揃えます、座布団の回転角をxyzともに0としておきます。機体というか台座の回転角もxyzとも0とします。機首は東に向くはずです。そうでなければ、先の記事の要領で機体と台座の角度を合わせておいてください。
台座の中からノートカード SITCONFIGと、スクリプト sitpose2をコピーして、座布団の中に入れます。乗客用の座りポーズのアニメがあるなら、それも座布団の中に入れます。アニメが無ければ標準の座りポーズとなります。
ノートカード SITCONFIGを修正します。座り位置は POSITION です。<0, 0, 0.7> あたりで調整してください。パイロットはカメラ位置も設定していますが、乗客はカメラ位置を決めないほうが良いでしょう。
vector POSITION = <0.0 ,0, 0.7>; // meters offset when the agent face to the east
//vector ANGLE = <0, 0, 0>; // degrees
vector CAMERA_POS = <0, 0, 0>;
vector CAMERA_DIR = <0, 0, 0>;
追加した座席の位置を調整し、飛行機とリンクさせます。編集モードでShiftキーを押しながら、追加座席を、複数あるときは順次選択に加え、最後に飛行機をクリックして、全体をリンクします。飛行機の台座がルートプリム(輪郭が黄色で表示される)となっていることを確認してください。
全体のリンクができたら、メインスクリプト (Seaplane あるいは Aircraft) をリセットしてください。
次回はスクリプトのオプションについて解説します。
水上飛行機をベースに、機体を複葉機に入れ替えました。これをさらに改造、調整してゆきます。改造された複葉機は、JOG内の Shinobar Gate 海のあるサンドボックスに置いています。
水上飛行機
複葉機を飛ばす(1)機体の入れ替え
複葉機を飛ばす(2)カメラ位置の調整 ←この記事です。
複葉機を飛ばす(3)スクリプトのオプション
複葉機を飛ばす(4)動きの調整
(パイロットの)カメラ位置の調整
メインスクリプトの最初のほう 37行目あたりに
integer CAMERA_FIX = TRUE; // TRUE: fixed camera angle / FALSE: follow
があります。これがTRUEだと、カメラは機体に固定され、パイロットのカメラは SITCONFIG のほうで決まります。
vector CAMERA_POS = <-8.0, 0, 3.0>;
vector CAMERA_DIR = <0, 0, 1.0>;
CAMERA_POS がカメラ位置、CAMERA_DIRは視野中心点です。例によって台座プリム中心から x は東方向、yは北方向、 zは上方向です。カメラの仰角はこの例で tan-1 (-2m/8m)ということになります。およそ -15度。このくらいが自然です。
CAMERA_FIX = FALSE の場合は、カメラは機体後方からついてゆく感じになります。メインスクリプト側の162行目あたりの関数 init_followCam() で設定されます。llSetCameraParams 関数でいくつかを設定していますが、そのうち CAMERA_DISTANCE の値だけを機体の大きさに合わせて調整し、他はそのままにしておくことをおすすめします。
座席を増やす
パイロットは台座に座り、位置だけを操縦席の位置に合わせてそれらしく見せます。台座の中にあるノートカード SITCONFIG で位置を調整しました。
他の乗客は別のプリムに座らせます。ボックスで作った座布団が簡単です。機体と座布団の向きを揃えます、座布団の回転角をxyzともに0としておきます。機体というか台座の回転角もxyzとも0とします。機首は東に向くはずです。そうでなければ、先の記事の要領で機体と台座の角度を合わせておいてください。
台座の中からノートカード SITCONFIGと、スクリプト sitpose2をコピーして、座布団の中に入れます。乗客用の座りポーズのアニメがあるなら、それも座布団の中に入れます。アニメが無ければ標準の座りポーズとなります。
ノートカード SITCONFIGを修正します。座り位置は POSITION です。<0, 0, 0.7> あたりで調整してください。パイロットはカメラ位置も設定していますが、乗客はカメラ位置を決めないほうが良いでしょう。
vector POSITION = <0.0 ,0, 0.7>; //
//vector ANGLE = <0, 0, 0>; //
vector CAMERA_POS = <0, 0, 0>;
vector CAMERA_DIR = <0, 0, 0>;
追加した座席の位置を調整し、飛行機とリンクさせます。編集モードでShiftキーを押しながら、追加座席を、複数あるときは順次選択に加え、最後に飛行機をクリックして、全体をリンクします。飛行機の台座がルートプリム(輪郭が黄色で表示される)となっていることを確認してください。
全体のリンクができたら、メインスクリプト (Seaplane あるいは Aircraft) をリセットしてください。
次回はスクリプトのオプションについて解説します。
Posted by シノバー at 16:41│Comments(0)
│乗り物