☆LightWave3D☆ ~Free Diary~

悪戦苦闘の3D制作の日々と、悪戦苦闘の日常を書き記していく日記です。

   


2013/01/15 【LScript関数_その3】

16754bc4.jpeg
サブエクスプレッションは作成済みのエクスプレッションを入力値として扱うってことはこれでグラフ編集のエクスプレッションをコンパクトにすることが出来るのかな?
「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」に適用します。


【始点(現在位置)から終点(割る数のアイテム)までの範囲を反復移動】
ada6d21f.gif 割る数のアイテムは動かさない方が良い。


すると、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

う~ん、前記事の関数は「こういう動きが出来る!」って簡単な説明だけになっているから改めて書き直す必要があるかもしれません。^^;
ここから更にじっくりと勉強していくことになりそうです。

 

拍手[1回]

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

カレンダー

10 2019/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

プロフィール

HN:
d_suzukky
性別:
男性
自己紹介:
こんにちは、d_suzukkyです。

田舎暮らしでのほほんと3DCGの勉強をしています。

ブログ内検索

Booklog

最新コメント

最新トラックバック

バーコード

フリーエリア

Copyright ©  -- ☆LightWave3D☆ ~Free Diary~ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS /  /