日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年3月6日金曜日

変数 (1) 数とは

Mayaで扱うことが出来る変数のタイプは合計3種類だけ
int
float
string

さらにそれを、大きく分けると「数」と「文字」の二つだけだ。

今回は、「数」について調べてみた。

数:数量を表すために用いられる抽象的な概念である。wiki
参照;数字の歴史

掘り下げていくと、哲学的な議論にいきつく。
プラトンの自然数「1」のイデアという概念を一部修正して、物理的実体はあるが、感覚的性質がない純粋な自然数「1」を、全ての概念の基本と考えます。 (自然数「1」とは何か
(出典:「数とは何か」

定義された概念を記号化しているという点では、文字と同じである。
上記のサイトにも
「紀元前3300年頃にシュメールで世界最古の文字が誕生し、同時に数字が発明されました」
とあるように、人間が自分の周りで起きている事柄を概念化する課程でうまれたものだ。


数字としての「数」はそれ自信だけで存在できるが、特定の意味は持たない。
その数字にある「定義」を結びつけることで、数字が意味を持ってくる。

「定義」とは:
ある概念の内容やある言葉の意味を他の概念や言葉と区別できるように明確に限定すること。(MSN)

その数の「定義内容」によって、同じ数字が異なる意味を持ってくる。
リンゴの数、時間の長さ、石の重さ、木の長さ、国の数、。



プログラミングにおいては、ある数字がどんな「定義」を持っているのかを
正確に把握しておくことで、他の数字と区別がつき、プログラムしやすくなるだろう。
把握していなくては表記上は同じ数字なので、混乱が生じる。

改めて、気づいたが、それを扱いやすくさせてくれるのが「変数」なんだな。うまく考えられている。
毎回、数字を見て、それがなんだったかを思い出す必要がなく、概念だけを扱うことができる。


「数値で表すことができない」=「定義できないもしくは、されていない事」=「コントロールできない」
ということである。
「コントロールできない」とは、そのまま「プログラムできない」ということになる。

逆に言えば、「定義」すれば、何らかのコントロールが可能となる。
プログラムで扱いたい対象を「定義」づけすることで、プログラム可能になるということだ。

1.「対象」を見つけ
2.それを他と明確に区別するよう「限定」する
3.その対象の値がどのような「範囲」をとるか特定する。

この1~3の内容によって、よいプログラムとなるかどうかがきまるのだと思う。

Melスクリプトにおいて、どのようにそれらの「定義」を見いだすことが出来るのかを考えてみた。
「うつくしい」という抽象的概念を扱う必要なMayaにおいては(おそらく)ない。

行為、動き、時間、重さ、ボリューム、個数、透明度、早さ、色、シーケンシャルファイル、回転、移動、スケール、距離、X、Y、Z
などといったものが、「限定」された「対象」ということになる。

値のとる「範囲」
有限(上限、下限)、無限、マイナス、プラス、小数、整数
といったとらえ方で考えることができる。

実際の値としては、
1.こちらから任意に与える数字
2.計算式や関数によって導かれる数字
3.初期値として、決まっている数字(アトリビュートの値など)
4.サンプリングなどによって、得られた数字
ということになるだろう。

たとえば、
1つのパーティクルグループにおける上限数。
ランダム関数により生成される数など。

サンプリング(特定の時、特定の範囲で切り取ったときの量)の例としては:
(例1:A点からB点へ移動しているキャラクターのフレーム23における、Xの値)
(例2:フレーム40でのパーティクルID;256の X,Y,Zの値)

0 件のコメント:

コメントを投稿