[作例]乗客を乗せる

エミッターを使ったビルボードの乗客を、列車に乗せる作例です。

テクスチャー
乗客の画像を作成します。Photoshopなどペイント系ツールを使用してください。乗客の周囲は、透明にしてpng形式で保存します。(128*128など正方形で作成してください。)作成した画像は、レイアウトのリソースに登録します。

エミッター設定

エミッターをレイアウトに配置して、設定します。ユーザーテクスチャーにさきほど登録した画像を設定してください。パーティクルサイズを適切に設定してください。生存時間は、10msにします。(生存時間は、1フレーム=約16msより小さい値にします。)

モーションパス

エミッターを移動可能にするために、制御用のモーションパスを配置します。モーションパスは、スクリプトで制御しますので、場所、形状は適当でかまいません。

モーションパス設定

モーションパスを設定します。ターゲットにエミッターを設定。自動スタートをoffにしてください。

5-editmot.gif
モーションパスのスクリプトを記述します。ターゲットの座標を変更するメソッドを用意します。

6-editcar.gif
乗客がのる車両のスクリプトを記述します。フレームイベントを利用して、毎フレームごとに車両の位置を取得>>エミッターを移動を繰り返します。lvが、乗客の車両内での位置です。x成分は、車両の前後方向になります。
GetCarWorldPosで、車両内の座標から、レイアウト上の座標に変換します。
モーションパスのグローバル変数emposに結果をコピーして、attachをコールすると、モーションパスのターゲット=エミッターが新しい位置に移動します。

charon.jpg

作例を走行させると、このようになります。作例の応用でディーゼルカーの排煙などが表現できます。