方向幕動作
- 使用する構文
- StaticMove > static-mover
- StaticRotation > static-rotator
上記二つのうちどちらかを使います。方向幕を取り付けたい部分が平面なら前者、曲面なら後者を使用してください。
- オブジェクト
- 車体とは別に方向幕のみのオブジェクトが必要です。
- 構文の例
- スイッチの定義
DefineSwitch "ヘッドマーク" { Entry = "基 準";//0 Entry = "回 送";//1 Entry = "試運転";//2 Entry = "臨 時";//3 }
- ダミーボディーの設置
省略 ボディーよりも先に方向幕を定義して透過の問題を回避。
- オブジェクトの設置と動作
Object3D "回送"{ ModelFileName = "方向幕.x"; //方向幕オブジェクトの呼び出し ModelScale = 1.0; ShiftTexture = 0, 0.0, 0.25; //方向幕オブジェクトのテクスチャー位置合わせ If (1<="ヘッドマーク"){ //スイッチが1以上だと有効 StaticRotation{ //この動作を「動作1」とします。方向幕表示位置まで移動する動作です。 RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 0.2; //スイッチが入ってから0.2秒後に動作開始 AnimationTime = 0.8; //動作時間は一定 PreReverseDelay = 3.0; //スイッチが切れてから3秒で動作開始、「動作2」の後 ReverseTime = 0.8; //戻る動作時間も一定 } } If (2<="ヘッドマーク"){ //スイッチが2以上だと有効 StaticRotation{//この動作を「動作2」とします。方向幕が消える位置まで移動する動作です。 RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 1.0; //「動作1」の終了後に動作開始 AnimationTime = 0.8; //動作時間は一定 PreReverseDelay = 2.2; //スイッチが切れてから2.2秒で動作開始。 ReverseTime = 0.8; //戻る動作時間も一定 } } Joint3D "DBody"{//定義したダミーボディーに設置 AttachCoord = (0.0, 1.730, 8.0); } }
//以上の繰り返しですが動作の遅延時間に注意
Object3D "試運転"{ ModelFileName = "方向幕.x"; //方向幕オブジェクトの呼び出し ModelScale = 1.0; ShiftTexture = 0, 0.0, 0.5; If (2<="ヘッドマーク"){ StaticRotation{ RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 1.2; //注意 AnimationTime = 0.8; PreReverseDelay = 2.0; //注意 ReverseTime = 0.8; } } If (3<="ヘッドマーク"){ StaticRotation{ RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 2.0; //注意 AnimationTime = 0.8; PreReverseDelay = 1.2; //注意 ReverseTime = 0.8; } } Joint3D "DBody"{ AttachCoord = (0.0, 1.730, 8.0); } } Object3D "臨時"{ ModelFileName = "方向幕.x"; //方向幕オブジェクトの呼び出し ModelScale = 1.0; ShiftTexture = 0, 0.0, 0.75; If (3<="ヘッドマーク"){ StaticRotation{ RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 2.2; //注意 AnimationTime = 0.8; PreReverseDelay = 1.0; //注意 ReverseTime = 0.8; } } If (4<="ヘッドマーク"){ StaticRotation{ RotationAxis = (1.0, 0.0, 0.0); RotationAngle = 18.0; PreAnimationDelay = 3.0; //注意 AnimationTime = 0.8; PreReverseDelay = 0.2; //注意 ReverseTime = 0.8; } } Joint3D "DBody"{ AttachCoord = (0.0, 1.730, 8.0); } }
- メモ
非常にわかりずらいと思いますが、要するにPreAnimationDelayを順番に増やし、PreReverseDelayを順番に減らすということです。
方向幕が増えれば増えるほど動作の遅延が増えていくのが問題です。
原理はいたって単純ですがスペースの関係上設置の難しい場合があります。
単純化を考えるとテクスチャーをずらしていく方法が良いのですが、現在の仕様では位置がリセットされるために出来ません。
サンプルとしてはhttp://cid-912bbc476ae11c82.skydrive.live.com/self.aspx/.Public/185%7C_stki.zip
185系を参照願います。
方向幕が増えれば増えるほど動作の遅延が増えていくのが問題です。
原理はいたって単純ですがスペースの関係上設置の難しい場合があります。
単純化を考えるとテクスチャーをずらしていく方法が良いのですが、現在の仕様では位置がリセットされるために出来ません。
サンプルとしてはhttp://cid-912bbc476ae11c82.skydrive.live.com/self.aspx/.Public/185%7C_stki.zip
185系を参照願います。