主に、LightWave3Dに関する事を書き記します。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
サブエクスプレッションは作成済みのエクスプレッションを入力値として扱うってことはこれでグラフ編集のエクスプレッションをコンパクトにすることが出来るのかな?
「Expression Channnel」の[A][B][C][D]の変数入力に似ているので、多分、サブエクスプレッションもそういう扱いで使っていけば良い感じかもですね。
・・・はい、この通り絶賛Expressionの勉強中です。
前回の続きを書いていきたいと思います。
【mod(剰余)】
余りの定理。
簡単に言うと、AをBで割った時に出てくる「あまり」の数字を出す関数です。
(例1) 15÷2=7・・・あまり1 ←コレ。
この関数の持つ意味は多項式f(X)を(X-a)で割ったときの余りはf(a)という定理です。
と言っても分かり辛いですねw
15÷2=7・・・あまり1 は、
15=2×7+1
と表現することが出来ます。
これを剰余の定理と見比べてみましょう。
f(X)÷(X-a)=q(X)・・・あまりRは
(15÷2=7・・・あまり1)
f(X)=(X-a)×q(X)+R
(15=2×7+1)
と表現出来ます。
そして、ここでは余りの答えはf(a)でなくてはいけません。
(X)を(a)に置き換えて・・・
f(a)=(a-a)×q(a)+R
f(a)=(0)×q(a)+R
f(a)=0+R
R=f(a)
になります。
(この計算が「mod」で簡単に出来るということです。)
で、この関数の使い道は何だ?
と聞かれると自分もまだよく分かっていませんが、適当にいろんな入力値を当てはめてみると少しずつ特徴が見えてきました。
0から15へと変化する割られる数に対して、割る数は固定しているものとします。
その時、「あまり」は連続する周期的な値が出るようになります。
0~15の数 : 0 1 2 3 4 5 6 7 8 9 10
5で割る余り数: 0 1 2 3 4 0 1 2 3 4 0
例として、割られる数を「Time」にして割る数を緑のNullのX値「X.Pos:1m」にします。
mod(Time,[L.Position.X])
この時に出るあまりの値を中心にある黄色のNullのX値「X.Pos:0m」に適用します。
【始点(現在位置)から終点(割る数のアイテム)までの範囲を反復移動】
割る数のアイテムは動かさない方が良い。
すると、0~1秒=0~1mへと黄色のNullが緑のNullへ向かって移動していきます。
この動きがエンドレスに続いているのがgifから見て分かりますね。
このgifでは選択中のアイテムのNull(1m)に対して反復移動を1秒に3回行っています。
元々1秒に1反復になっているので、この反復のスピードを早くしたり遅くしたりするには、Timeの前か後ろに倍数をかけたり割ったりすればOKです。
mod(Time*3,[L.Position.X])
剰余の定理を利用すると、Time(秒)/NullのPos.X値で割った時の「あまり」が周期的な値を連続で出すようになるので、グラフ編集の振る舞いの「反復」と同じ効果を出すようになります。
とゆーことで、今回は書くことが多かったので1つだけ。
Expressionの勉強をしているつもりが数学の勉強になっていますねw
う~ん、前記事の関数は「こういう動きが出来る!」って簡単な説明だけになっているから改めて書き直す必要があるかもしれません。^^;
ここから更にじっくりと勉強していくことになりそうです。
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 |