2015年12月22日

3ds Max 2016の新機能を調べてみた その49 3dsmax 2016

引き続き「Maxクリエーショングラフ」について調べてみたい。

今回は配列を加工するノードだ。

NormalizeFloats(array):配列中の値が0.0〜1.0内に収まるようにマッピングしなおす。

fig01

これがその説明。

fig03

例えば[ 8.0, 1.0, -2.0, 5.0 ]の配列をこのノードに与えてみると、

fig02

このように最大値8.0が1.0に、最小値−2.0が0.0に置き換えられ、その間にある1.0、5.0が比率にあわせて0.3、0.7に置き換えられているのがわかる。

fig04

数直線に直すとこんな感じ。

fig05

Reverse(xs):配列の要素の順番を反転する。

fig04

これは特に疑問の余地は無いな。ためしに0〜4の整数の配列を入力してみた。

fig05

これがその結果。順番が反転しているのがわかる。

fig06

Sort(array):比較可能な要素を並べ替える

fig07

例えば5つの0〜1のランダムな実数を持つ配列を入力してみた。

fig08

これがその結果。小さい順に並べられているのがわかる。

fig09

SortedIndices(array):配列のインデックスを配列要素の大きさで並び替える。

fig10

例えば下のように5つの0〜1のランダムな実数を持つ配列を入れて、処理前の配列と出力結果を「Pair」でタプル化して出力してみた。

fig11

これがその結果。タプルの1つ目の配列は「item1」プロパティで呼び出せて、2つ目は「item2」で呼び出せるので、それぞれの配列を取り出して表示してみた。「SortedIndices」ノードの出力結果は4,2,0,3,1になっているので元の配列で一番小さい値は4番目の0.0626258と言う事になる。次が2の0.281366。確かに要素の大きさが小さい順にインデックス番号が並んでいるのがわかる。

fig12

SortBy(array,compare):compare関数を使って配列要素を並べる。

fig13

説明はこれ。

fig15

比較関数は2つの要素を比較して、その結果を負、0、正の値の整数で返すものを使う。

例えば2つのノードの原点からの距離を求めて、それを引き算して、それを整数化するグラフはこうなる。

fig18

これを使ってルートノードを除く全ノードを原点からの距離で並び替えて、そのノード名の配列を出力するグラフを作ってみた。

fig14

例えば下のように4つのオブジェクトを並べてみた。

fig16

そしてこれが実行結果。原点からの距離が近い順に並んでいるのがわかる。

fig17

それではまた来週。

maxまとめページ



take_z_ultima at 11:30│Comments(0)TrackBack(0)3ds Max | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives