技術だけでは作れない。けれど、集中して作る為の術は技に有ると思います。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
【range (ブール値出力)】
青の点線は範囲を表している。
一番目に指定した入力値(ピンクのNull)が赤と緑のNullの2つの入力値の範囲内に入っているかどうかを確認する為の関数です。
range([P.Position.X],[R.Position.X],[L.Position.X])
ピンク 赤 緑
ピンクのNullがその範囲内に入っていないと、Expressionを適用した黄のNullがステップ状に+1mから0mに移動してしまうのが分かります。
(黄のNullのデフォルト値は0mですが、このExpressionを適用して範囲内に存在していると1mになります。)
これは何かしらのアイテムモーションが範囲内に収まって動いているかの確認用か、チャンネル切り換えボタンに利用するかの2つになりそうですが、他にもいろんな事で使えるかもしれません。
【round (丸め)】
ん~、簡単に言えば一定のステップの幅や範囲を調整する為の関数でしょうか?
「え~い、細々とした数値は排除じゃ~!」って感じの機能です。
一番目の入力値(ピンクのNull)をコントローラー用に操作して、二番目の(緑のNull)入力値をステップの幅を決めます。
round([P.Position.X],[L.Position.X])
ピンク 緑
このExpressionを黄色のNullに適用してピンクのNullを動かしてみましょう。
黄色のNullはぴったりくっ付いて動いてるように見えますが、200mm間隔でステップ状に移動しています。
これは緑のNullがX軸1mの位置にあるからです。
更にこの緑のNullを2m移動するとどうでしょう?
ステップの幅は狭くなり160mm間隔で移動します。
今度は緑のNullの値を500mm、0mと距離を狭くしていきましょう。
緑のNullが500mmにある時、ピンクのNullが500mm移動すると黄のNullはステップ状に1m移動します。
(ピンクのNullがマイナス値を移動してる時は-1.5mで1m移動します)
そして、緑のNullの値が0mの時、はピンクのNullが500mm移動→黄のNullはステップ状に1m移動して緑のNullの値が500mmの時と変わりません。
なので、緑のNullの移動範囲は0m又は1m以上の数値を入力すると良い感じです。
しかし、緑のNullの位置が1mだと200mmのステップ移動と、0mだと1mのステップ移動と極端なものになってしまいます。
これはまた別のチャンネルか値でステップの幅を倍率で上げ下げ出来るようにExpressionを書き加えていく必要がありますね。
残り、「条件」の関数2つでLScript関数は終わりになります。
難しいものでなければ次回で終わらせていきたいですね。
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 |