使用ソフト
- Lightwave2020
LScriptファンクション
- ファンクション
- abs (Absolute Value)
- ceil (Round Value up)
- center
- clamp (Value Limiter)
- deg (Radians into Degrees)
- fac (Factorial)
- floor (Round Value Down)
- frac (Fractional)
- mapRange (Value ReAssign)
- max (Value Comparison)
- min (Value Comparison)
- mod (Modulo)
- pow (Power)
- rad (Degrees to Radians)
- random (Number Gen)
- randu (Seeded Number Gen)
- range (Boolean Output)
- round (Up or Down)
- selector (Conditional)
- step (Conditional)
- 共通インフォメーション(アプリケーション(Application))
- リンク
ファンクション
abs (Absolute Value)
◇記述( Description)
この関数は、入力データを正の値に変換するために使用されます。入力値が負の場合のみ正の値に変換され、正の入力値は修正されません。
abs( InputA )
InputA にはチャネル、数値、またはサブエクスプレッションが指定でき 、標準入力変数(Time、Frame、Value)のいずれかを受付けます。
◇サンプル(Example)
abs(10)
この例では、abs()関数に10の値が入力されました。この値は正なので、abs()は10の値を返します。
abs(-8)
この例では、abs()関数に-8という値が入力されました。入力された値は負の数なので、abs()関数は正の数に変換して値 8 を返します。
さらに例を挙げます:
abs(5.576) は 5.576 の値を返す。
abs(-6.21) は 6.21 の値を返す。
abs(-.024) は .024 の値を返す。
ceil (Round Value up)
◇記述( Description)
この関数は、浮動小数点入力値を次の整数に丸めます。
ceil( InputA )
InputA にはチャネル、数値、またはサブエクスプレッションが指定でき 、標準入力変数(Time、Frame、Value)のいずれかを受付けます。
◇サンプル(Example)
ceil(3.3)
この例では、3.3という値がceil()関数に入力され、4.0という結果が返されます。
ceil(7.5)
この例では、7.5という値がceil()関数に入力され、8.0という結果が返されます。
さらに例を挙げます:
ceil(1.1) は 2.0 を結果で返す。
ceil(35.9) は 36.0 を結果で返す。
ceil(4) は 4 を結果で返す。
center
◇記述( Description)
この関数は、2 つの入力間の中心値を返します。
center( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数(Time、Frame、Value)のいずれかを受け付ける。
◇サンプル(Example)
center(0 , 10)
この例では、center() 関数は結果として 5 という値を返します。
center( [LtFcot.Position.X] , [RtFcot.Position.X] )
LtFootのX値を-1、RtFootのX値を1に設定すると、上記のcenter()関数は結果として0の値を返します。
さらに例を挙げます:
center(-10 , -5) は -7.5 の値を返します。
center(2 , 2) は 2 の値を返します。
center(-8 , 2) は -3 の値を返します。
clamp (Value Limiter)
◇記述( Description)
この関数は、チャンネル(またはサブエクスプレッション)の出力を指定された範囲内に制限します。最初の入力は何を制限するかです。2番目の入力は出力の最小値を決定し、3番目の入力は出力の最大値を決定します。
最初の入力が2番目と3番目の値の範囲内であれば、関数は最初の入力の値を返します。
そうでない場合は、2番目か3番目の入力値のどちらか近い方を返します。
clamp( InputA , InputB , InputC )
inputA にはチャネル、数値、またはサブエクスプレッションを指定できる。
inputB にはチャネル、数値、またはサブエクスプレッションを指定できる。
inputC にはチャネル、数値、またはサブエクスプレッションを指定できる。
すべての入力は、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
clamp(1,5,10)
この例では、clamp()関数は結果として5の値を返します。
clamp(15,5,10)
この例では、clamp()関数は結果として10の値を返します。
clamp( [カメラ.位置.Y) , 0 , 5 )
カメラのY値を3に設定すると、上記のclamp()関数は結果として3の値を返します。
カメラのY値が0から5の間であれば、clamp()関数はその値をそのまま返します。値が2つ目の入力より低いか、3つ目の入力より高い場合にのみ、「クリッピング」や「クランプ」が発生します。
deg (Radians into Degrees)
◇記述( Description)
この関数は、入力データが「ラジアン」であると仮定し、それを「度」に変換します。
deg( InputA )
inputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができます。
◇サンプル(Example)
deg(l)
この例では、deg()関数は結果として57.3という値を返します。
deg(3.1416)
この例では、deg() 関数は結果として 180 を返します。
さらに例を挙げます:
deg(6.2632) は 360 の値を返す。
deg(1.570) は 90 の値を返す。
deg(4.9323) は 270 の値を返す。
◇アプリケーション(Application)
「ラジアン」と「度」は、どちらもさまざまな回転量を表します。ラジアンは複雑な数学計算で使用され、LightWave が内部的に回転値を保存する方法です。ほとんどの場合、「度」のみを使用する必要があり、特定の「数学関数」のみがラジアンの入力を必要とするか、ラジアンの出力を生成します。
以下は、ラジアンと度に関する技術情報です:
pi = 3.1416
6.2632 = 円(1回転、360度)のラジアンの数
3.1416 = 半円(半回転、180度)のラジアンの数
1ラジアン=57.3度
fac (Factorial)
◇記述( Description)
fac( InputA )
InputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Time、Frame、Value)のいずれかを受け取ることができる。入力変数(Time, Frame, Value)を受け取れることができる。
◇サンプル(Example)
fac(4)
この例では、fac()関数は24という値を返します。4の階乗(数学で言うところの4!)は、4×3×2×1で表され、24に等しい。
fac(6)
この例では、fac()関数は720という値を返します。6の階乗(数学で言うところの6!)は6 x 5 x 4 x 3 x 2 x 1と表され、720に等しい。
さらに例を挙げます:
fac(1) は 1 の値を返す。
fac(2) は 2 の値を返す。
fac(3) は 6 の値を返す。
floor (Round Value Down)
◇記述( Description)
この関数は、浮動小数点数の入力値をその前の整数に切り捨てます。
floor( InputA )
InputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができます。
◇サンプル(Example)
floor(3.3)
この例では、3.3という値がfloor()関数に入力され、3.0という結果が返される。
floor(7.5)
この例では、3.3 7.5 という値が floor() 関数に入力され、7.0 という結果が返されます。
さらに例を挙げます:
floor(1.1) は 1.0 という結果を返す。
floor(35.9) は 35.0という結果を返す。
floor(4) は 4という結果を返す。
frac (Fractional)
◇記述( Description)
この関数は、引数の小数部分を返します。
frac( InputA )
InputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができます。
◇サンプル(Example)
frac(3.3)
この例では、3.3という値がfrac()関数に入力され、0.3という結果が返されます。
floor(73.09382) frac(73.09382)
この例では、73.09382 という値が frac() 関数に入力され、0.09382 という結果が返されます。
mapRange (Value ReAssign)
◇記述( Description)
この関数は、InputA に入力されたデータを、InputB と InputC の間で指定された値の範囲に基づいて「再マッピング」し、InputD と InputE の間の範囲の値を出力します。
mapRange( InputA , InputB , InputC , InputD , InputE )
InputA にはチャネル、数値、またはサブエクスプレッションを指定できる。
InputB にはチャネル、数値、またはサブエクスプレッションを指定できる。
inputC にはチャネル、数値、またはサブエクスプレッションを指定できる。
inputD にはチャネル、数値、またはサブエクスプレッションを指定できる。
inputE にはチャネル、数値、またはサブエクスプレッションを指定できる。
すべての入力は、標準入力変数(Timet Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
mapRange(45,0,90,0,1)
この例では、mapRange() 関数は結果として 0.5 という値を返します。入力範囲は 0 から 90、出力範囲は 0 から 1 に設定されています。
制御値を 0 と 90 の中間の 45 に設定すると、0.5 という出力値が返されます。
mapRange(-7.5,-10,-5,0,100)
この例では、mapRange() 関数は結果として 50 という値を返します。入力範囲は-10から-5、出力範囲は0から100に設定されています。
制御値を-10と-5の中間である-7.5に設定すると、50という出力値が返されます。
* mapRange() は、制御入力が指定された入力範囲を上回ったり下回ったりしても、その出力値を制限しません。
mapRange() の出力値を制限するには、このセクションで説明する 'clamp()' 関数を参照してください。
max (Value Comparison)
◇記述( Description)
この関数は2つの入力を比較し、最も高い入力値と等しい結果を返します。
max( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数(Timet Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
max(100,50)
この例では、max()関数は結果として100という値を返します。
max( [Camera.Position.X] , [Light.Position.Y] )
カメラのX値を10に設定し、ライトのY値を25に設定すると、上記のmax()関数は結果として25の値を返します。
さらに例を挙げます:
max(-125,20) は 20 の値を返す。
max(0,0) は 0 の値を返す。
max(-20,-10) は -10 の値を返す。
min (Value Comparison)
◇記述( Description)
この関数は2つの入力を比較し、最も低い入力値と等しい結果を返します。
min( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数(Time 、Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
min(100,50)
この例では、min()関数は結果として50という値を返します。
min( [Camera.Position.X] , [Light.Position.Y] )
カメラのX値を10に設定し、ライトのY値を25に設定すると、上記のmin()関数は結果として10という値を返します。
さらに例を挙げます:
min(-125,20) は -125 の値を返す。
min(0,0) は 0 の値を返す。
min(-20,-10) は -20 の値を返す。
mod (Modulo)
◇記述( Description)
これは modulo*3 関数で、入力された最初の入力値を 2 番目の入力値で割った余りを返します(InputA / InputB )。
mod( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数(Timet Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
mod(6,3)
上記の例では、6が3で割られ、上記のmod()関数は結果として 2 0の値を返します。
mod( [Camera.Position.Y] , Time )
上記の例では、カメラのY位置はTimeが進むにつれてどんどん小さな値に分割されていきます。カメラのY位置の値をTimeの値が割り切る度に0を返してリセットされます。
カメラのY位置を10に設定した場合、上記のmod()関数は1秒後に10 0、2秒後に5 0、3秒後に3.3 1 といった値を返します。
さらに例を挙げます:
mcd(8,8) は 1 0 の値を返す。
mcd(0,1) は 0 の値を返す。
mod(4,6) は 0.6667 4 の値を返す。
※このサンプルは間違っているようです。余りではなく商を返す内容になっています。
割られる数が割る数より小さい場合は商が0となり余りが割られる数と同じ数になります。例:3÷5=商0余り3
逆算すると理解しやすくなります。割られる数の3 = 割る数の5 x 商の0 + 余りの3
pow (Power)
◇記述( Description)
この関数は、最初の入力の値を受け取り、2番目の入力で指定された回数に基づいて、その値を乗算します。一般的な数学では、この処理は最初の入力に2番目の入力の「べき乗」を掛けると表現されます。
pow( InputA , InputB )
InputA には数値、チャネル、またはサブエクスプレッションを指定できる。
InputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
pow(2,3)
この例では、pow()関数は 2 にそれ自身を 3 回掛けるので、2 x 2 x 2となり、結果として8の値を返します。
pow(4,4)
この例では、pow()関数は 4 にそれ自身を 4 回掛けるので、4×4×4×4となり、結果として 256 を返します。
さらに例を挙げます:
pow(2,1) は 2 の値を返す。
pow(1,8) は 1 の値を返す。
pow(3,3) は 27 の値を返す。
rad (Degrees to Radians)
◇記述( Description)
この関数は、入力データが「度」であると仮定し、それを「ラジアン」に変換します。
rad( InputA )
inputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Timet Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
rad(57.3)
この例では、rad()関数は 1 の値を返します。
rad(180)
この例では、rad() 関数は 3.1416 の値を返します。
さらに例を挙げます:
rad(360) は 6.2832 の値を返す。
rad(90) は 1.57 の値を返す。
rad(270) は 4.9323 の値を返す。
◇アプリケーション(Application)
"deg (Radians into Degrees)"関数と同じ内容です。そちらを閲覧してください。
random (Number Gen)
◇記述( Description)
この関数は、InputAとInputBの範囲内にある乱数を返します。生成される数値は時間とともに変化します。
random( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数 (Timet Frame, Value) のいずれかを受け付けることができる。
◇サンプル(Example)
ランダム(3,10)
この例では、random() 関数はフレームごとに 3 から 10 までの範囲の乱数を返します(整数が入力されているので、返されるのは整数だけです)。
random(1.5,12.5)
この例では、 random() 関数はフレームごとに 1.5 から 12.5 までの範囲の乱数を返します(浮動小数点数が入力されているので、浮動小数点数のみが返されます)。
randu (Seeded Number Gen)
◇記述( Description)
この関数は乱数を生成します。入力は乱数生成器のシード値で、実数でも整数でもよい。
randu( InputA )
inputA にはチャネル、数値、またはサブエクスプレッションを指定でき、標準入力変数(Time、Frame、Value)のいずれかを受け付けることができる。
◇サンプル(Example)
randu()関数は、random()関数とよく似た動作をします。
唯一の違いは、「シード」値によって、生成される数字が常に同じ「乱数性」で繰り返されることが確約されることです。
* このセクションで説明する random() 関数を参照。
range (Boolean Output)
◇記述( Description)
この関数は、最初の入力値が2番目と3番目の範囲内にあるかどうかを判定します。
最初の入力値が2番目と3番目の入力値の間にある場合、1に等しい結果が返されます。
最初の入力値が 2 番目と3番目の入力値の範囲にない場合は、0 の結果が返されます。
range( inputA , inputB , inputC )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
inputC には数値、チャネル、またはサブエクスプレッションを指定できる。
すべての入力は、標準入力変数(Time、Frame、Value)のいずれかを受け入れることができる。
◇サンプル(Example)
range(5,0,10)
この例では、range()関数は結果として 1 の値を返します(5は0と10の間です)。
range( [Camera.Rotation.H] , 0 , 90 )
カメラのHeadingの値を180に設定すると、上記のrange()関数は結果として0を返します(180は0と90の間にありません)。
さらに例を挙げます:
range(7,7,15) は 1 の値を返す。
range(-5,0,4) は 0 の値を返す。
range(10,4,10) は 1 の値を返す。
round (Up or Down)
◇記述( Description)
この関数は、最初の入力を 2 番目の入力で指定された小数点以下の桁数で丸めます。(四捨五入)
round( InputA , InputB )
inputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
どちらの入力も、標準入力変数 (Timet Frame, Value) のいずれかを受け付けることができる。
◇サンプル(Example)
round(10.3333,2)
この例では、round()関数は結果として10.33という値を返します。
round(5.5555,0)
この例では、round() 関数は結果として 6 という値を返します。
さらに例を挙げます:
round(4.3555,1) は 4.4 を返します。
round(2.5533,3) は 2.553 を返します。
round(3.0001,2) は 3.00 を返す。
selector (Conditional)
◇記述( Description)
この関数は、1 番目と 2 番目の入力を比較します。もし1番目の入力値が2番目の入力値より小さければ、結果は3番目の入力値と等しくなります。
もし2 1 番目の入力値が1 2番目の入力値より小さくない場合は、結果は4番目の入力値と等しくなります。
selector( inputA , InputB , InputC , InputD )
InputA には数値、チャネル、またはサブエクスプレッションを指定できる。
inputB には数値、チャネル、またはサブエクスプレッションを指定できる。
inputC には数値、チャネル、またはサブエクスプレッションを指定できる。
inputD には数値、チャネル、またはサブエクスプレッションを指定できる。
すべての入力は、標準入力変数(Timet Frame、Value)のいずれかを受け付けることができる。
◇サンプル(Example)
selector(1,2,100,500)
この例では、selector()関数は結果として100の値を返します(1は2より小さいので
100が返されます)。
selector( [Camera.Position.Y) , [Light.Position.Y) , 50 , 100 )
カメラ位置のY値を15に設定し、ライト位置のY値を10に設定すると、上記のselector()関数は結果として100の値を返します(15は10より小さい値ではないので、100が返されます)。
さらに例を挙げます:
selector(-15,-10,50,100) は 50 の値を返す。
selector(10,10,50,100) は 100 の値を返す。
selector(5,-25,50,100) は 50 100 の値を返す。
step (Conditional)
◇記述( Description)
この関数は、1 番目と 2 番目の入力を比較します。もし1番目の入力値が2番目の入力値より小さければ、結果は3番目の入力値と等しくなります。
1番目の入力値が2番目の入力値より小さくない場合、結果は0に等しくなります。
step( InputA , InputB , InputC )
InputA には数値、チャネル、またはサブエクスプレッションを指定できる。
InputB には数値、チャネル、またはサブエクスプレッションを指定できる。
InputC には数値、チャネル、またはサブエクスプレッションを指定できる。
すべての入力は、標準入力変数(時間、フレーム、値)のいずれかを受け入れることができる。
◇サンプル(Example)
step(0,1,50)
この例では、step() 関数は結果として 50 という値を返します(0 は 1 より小さいので、50 が返されます)。
step( [Camera.Position.X) , 1 , [Camera.Position.X) )
カメラ位置のX値を3に設定すると、上記のstep関数は結果として0を返します(3は1より小さい値ではないので、0が返されます)。
さらに例を挙げます:
step(1,1,50) は 0 の値を返す。
step(-5,-1,50) は 50 の値を返す。
step(-5,-25,50) は 0 の値を返す。
共通インフォメーション(アプリケーション(Application))
center/clamp/fac/floor/frac/mapRange/max/min/mod/pow/random/randu/range/round/selector/step
◇アプリケーション(Application)
****(各関数の名前) のような LScript 関数には多様性があり、便利な場面は無数にあります。この関数やその他の関数の使い方を完全に理解するには、このセクションにあるすべての 'LScript' 関数を確認してください。
リンク
本記事に戻る