主に、LightWave3Dに関する事を書き記します。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
・・・僕、3DCGやっているんだよね?
何か変に遠回りしていない?
ふと、そのように思う時がありますw
前記事の続きです。
自分が忘れてもまた思い出せれるように書いている感じがプンプンしますね。
いつもながら手探りで調べているので、後々になって文章やgifを変更するかもしれませんが宜しくお願いします。^^;
では、スタートです。
「fac」は階乗(!)。
確か、学校で確率とか習いましたよね?
もうそんなことはすっかり忘れてしまっていますが、この関数を利用すると出力値はとんでもなく大きくなります。
例えば入力先の値が5.0だとすると「5!」に変換されて、
5!=5*4*3*2*1=120(通り)
みたいな感じになります。
あと、入力値が0でも出力値は1のままに固定されています。
・0!=1
(n-1)! = n! / n
↓
0! = 1!/1 = 1
う~ん、いったいこれが何の役に立つのか・・・。
調べてみると、モノの並べ方の総数を計算するのに役立つみたいです。
これを出力値にしたところでいったいどう使えば良いのかはまだ分かりません。
もし、宝くじが当たる確率が出せれるなら真剣に「fac」の使い道を考えていきたいと思います。
前記事で「ceil(切り上げ)」を説明しましたが、これはコントロールアイテムを1m超えた所でExpressionを適用したアイテムがステップ状に移動します。
これはどういったことに利用すれば良いんだろう?
信号機の色の切り替えとかかな?
段階ごとに変化していくものを作るのに向いてる感じがします。
【frac(小数)】
整数以下の数値を出力値にします。
例: 10.25 (小数点以下の数値を出力。)
簡単なサイクルモーションを制御したりピコピコ拡大縮小してる微生物のやエンジンの動きとかに使えそうです。
LWの様々な値(距離・度数・スケール・%)に対してコントローラー側の最小値⇔最大値の値とExpressionを適用したアイテムの最小値⇔最大値が比例します。
入力値 > 最小:0 最大:1m
出力値 > 最小:0 最大:2m
これとよく似た関数で「Clamped Map Range」というものがありますが、最小値⇔最大値の範囲内に制限を付ける為に利用する関数です。
前者のmapRangeは制限が無いのでモーフのプラス値もマイナス値も制御したい時に使います。
モーションオプションの制御と制限にある「最小/最大」と同じものと考えると分かり易いと思います。
ちょっと違うのは、最小値の場合は入力した値からマイナス値の範囲がいくらでも動かせれる事。
最大値も同じく入力した値からプラス値の範囲からいくらでも動かすことが出来ます。
min:0~マイナスの値(無限)
max:0~プラスの値(無限)
最小か最大のどちらかに制限をかけたい場合はこの関数を使うと便利です。
上のgifのような足の動きならモーションオプションでもグラフ編集からのExpressionでもどちらの方法も良いですね。
ちょっとここにきて思った事。
今までExpressionで利用する関数は何かしらの制御と制限方法を取っていく為に必要なものという認識をしていました。
もちろん、その考えは正しいのですが、これらの関数は本来難しくてややこしい計算式の入力を簡略化してくれている事に気付きました。
僕はそれほど数学は得意ではないので複雑なExpressionを入力することは出来ません。
それを解消してくれているのが関数なんだなぁ~としみじみに思います。
次回もまたLScript関数です。
だいだい5つのペースで(自分が忘れないように)載せていけばあと2回で終わるかな?
ここからは使った事のない関数が多いので理解するのに手間取りそうです。
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 |