主に、LightWave3Dに関する事を書き記します。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
どうやらこれはアイテムを曲線的に移動させる為の数式みたいですね。
制御的にはLWのエミッターに重力設定をするような感覚に近くて様々な弧を描いた動きを作り出すことが出来ます。
野球のボールのカーブを表現したり銃撃で弾が弧を描くように飛んでいったり飛行機の離陸する動きを表現したり、あと、一つの軸だけ(Y軸)を制御すると木から落ちるリンゴの動きにも使えそうです。
でも、自分でキー作成して動きを作ったのが早いんじゃないかと思ってしまいますね。
今のままだと正確な動きを作るために必要なくらいしか感じられないです・・・。
僕の個人的な考えはさておき、とにかく触っていきましょう。
Projectile Motionは永続型の「タイプA」と範囲型の「タイプB」の二種類が存在します。
[CT1.Position.Y]*Time*Time/2 + [CT2.Position.Y]*Time + [CT3.Position.Y]
タイプAは値がシンプルで編集し易いです。
上のGIFはZ軸移動に「pow」を利用して徐々に減速するように動きを付けましたが、Z軸もProjectile Motionで制御すれば良かったかなと後々思いました。
バウンドするようなボールの動きを作ったものの、これは別に手付けでも良いような気がする。
動きを作る手間はそれほど変わりが無いように思えます。
【Projectile Motion (TypeB)】
(Frame >= [CT1.Position.Y] && Frame <= ( [CT2.Position.Y] < [CT1.Position.Y] ? 2*[CT3.Position.Y]*30/9.8 + [CT1.Position.Y] : [CT2.Position.Y])) ? (-9.8*(Time - [CT1.Position.Y]/30)*(Time - [CT1.Position.Y]/30)/2 + [CT3.Position.Y]*(Time - [CT1.Position.Y]/30) + [pow.Position.Y] ) : Value
※:開始フレームの値。(1m、1°で1フレーム。)
※:終了フレームの値。
※:曲線の強さ。
※:曲線の位置。
う、・・・何て長い数式なんだ。
Expressionビルダーのパネルを最大まで大きくしてようやく全ての入力値を適用出来るとか・・・びっくりですよ。
入力値周りの式の編集は出来なくはないけど、全てを理解するのは難しそうだなぁ。
タイプBはタイプAと違って曲線付けの始まりと終わりのフレーム範囲を決める事が出来て、それ以外はタイプAと変わりありませんが弧を描く大きさを調整するのが少し難しい感じがします。
そしてこの長ったらしい数式です。
値の編集がしにくい・・・。
常用で利用するならタイプAを使ってアイテムの表示/非表示を上手く使って見せていくと思います。
タイプBと同等な感じで曲線に曲げるフレーム範囲を決める事が出来なくもないですし、このExpressionを多用するならシンプルな数式を使ってLWの負荷を抑えたいところです。
【何となく作った】
これはタイプAを使ってます。
機内のゆったりとした揺れはOscillatorで、射撃の激しい揺れは「randu」で制御しています。
ライフルやランチャー系の弾はエミッタとHVかRelativityでやっていったのが楽かな?
まだこのExpressionを使う意味をイマイチ理解出来ていない気がするので、使えそうな機会があったら積極的に使って良い使用方法を見つけていこうと思います。
ユーティリティ関数はこれで残り7つ。
この調子でいけば3月上旬には終わりそうな気がしますね。
頑張って進めていきましょう。
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |