Mayaのnoise関数は種となる値を与えると、それを元に-1から1の浮動少数を返します。
この関数には規則性があるのかよくわからなかったので検証してみました。
まず、次のように単純に数値を1ずつ増やしていきました。
noise(1);
// Result: 0.759318 //
noise(2);
// Result: -0.348634 //
noise(3);
// Result: 0.24529 //
noise(4);
// Result: 0.392028 //
noise(5);
// Result: -0.057481 //
これを見る限り、とくに何の規則性も無さそうですね。
次に、noise関数をexpressionに組み込んでみました。expressionは次の一行です。
print(noise(time) + "\n");
これでフレームを進めていったところ、結果は次のようになりました。
-0.02371130126
-0.09803561856
-0.1663980364
-0.2272584622
-0.2790768034
-0.3203129674
-0.3494268617
-0.3648783936
-0.3651274705
-0.3486339999
-0.3227447532
-0.295926698
-0.2683200366
-0.2400649711
-0.2113017038
-0.1821704367
-0.1528113721
-0.1233647121
-0.09397065891
-0.06476941465
-0.03590118153
-0.007506161695
0.02027544268
0.04730342942
0.07343759636
0.09853774133
0.1224636622
0.1450751567
0.1662320228
0.1857940582
0.2036210608
0.2195728284
0.2335091589
0.24528985
0.2549145693
0.2626229161
0.2686345858
0.273169274
0.2764466765
0.2786864886
0.2801084061
0.2809321244
0.2813773392
0.281663746
0.2820110405
0.2826389181
0.2837670746
0.2856152053
0.2884030061
0.2923501723
0.2976763996
0.3046013835
0.3133448197
0.3241264038
0.3371658312
0.3526827976
0.3708969986
0.3920281297
0.4099765109
0.4190159574
0.419926408
0.4134878011
0.4004800752
0.381683169
0.357877021
0.3298415699
0.298356754
0.2642025121
0.2281587826
0.1910055042
0.1535226154
0.1164900548
0.08068776089
0.04689567229
0.01589372756
-0.01153813474
おや、何だか連続した数値が並んでいますね。
さっきと違って完全に飛び飛びの値にはなっていません。
結論を言うと、noise関数はシードにtimeを入れると、繋がった値を返してくれるということです。
ランダム性のあるアニメーションにはかなり使えると言う事ですね。
この関数には規則性があるのかよくわからなかったので検証してみました。
まず、次のように単純に数値を1ずつ増やしていきました。
noise(1);
// Result: 0.759318 //
noise(2);
// Result: -0.348634 //
noise(3);
// Result: 0.24529 //
noise(4);
// Result: 0.392028 //
noise(5);
// Result: -0.057481 //
これを見る限り、とくに何の規則性も無さそうですね。
次に、noise関数をexpressionに組み込んでみました。expressionは次の一行です。
print(noise(time) + "\n");
これでフレームを進めていったところ、結果は次のようになりました。
-0.02371130126
-0.09803561856
-0.1663980364
-0.2272584622
-0.2790768034
-0.3203129674
-0.3494268617
-0.3648783936
-0.3651274705
-0.3486339999
-0.3227447532
-0.295926698
-0.2683200366
-0.2400649711
-0.2113017038
-0.1821704367
-0.1528113721
-0.1233647121
-0.09397065891
-0.06476941465
-0.03590118153
-0.007506161695
0.02027544268
0.04730342942
0.07343759636
0.09853774133
0.1224636622
0.1450751567
0.1662320228
0.1857940582
0.2036210608
0.2195728284
0.2335091589
0.24528985
0.2549145693
0.2626229161
0.2686345858
0.273169274
0.2764466765
0.2786864886
0.2801084061
0.2809321244
0.2813773392
0.281663746
0.2820110405
0.2826389181
0.2837670746
0.2856152053
0.2884030061
0.2923501723
0.2976763996
0.3046013835
0.3133448197
0.3241264038
0.3371658312
0.3526827976
0.3708969986
0.3920281297
0.4099765109
0.4190159574
0.419926408
0.4134878011
0.4004800752
0.381683169
0.357877021
0.3298415699
0.298356754
0.2642025121
0.2281587826
0.1910055042
0.1535226154
0.1164900548
0.08068776089
0.04689567229
0.01589372756
-0.01153813474
おや、何だか連続した数値が並んでいますね。
さっきと違って完全に飛び飛びの値にはなっていません。
結論を言うと、noise関数はシードにtimeを入れると、繋がった値を返してくれるということです。
ランダム性のあるアニメーションにはかなり使えると言う事ですね。