一区切りついたのでソースを見やすくする一環の
”汎用ルーチンを別に作って返り値をもらう”の研究。
プログラマからサンプルをもらったので見る。考えるな、盗むんだ。
proc int[] GenerateIndex( int $num )
{
int $newval[];
int $cnt;
// num <= 0 の場合は最低一つ返すようにする
$newval[0] = 0;
for( $cnt=0 ; $cnt<$num ; $cnt++ )
{
$newval[ $cnt ] = $cnt;
}
return $newval;
}
・・・なんだreturnって。はじめて見るぞ。
とにかくforとセットになる命令であることは確かなようだ。これで$newvalの値を返すのか?
返す場所は指定しなくても来た場所に戻るのか?
で、そもそもどこからこれを呼んでいるのか。
// 8個の連続したインデックス配列を作る
int $idxs[] = GenerateIndex(8);
int $idx;
ぬお、変数に直接プロシージャ名を指定してる。こんなことができるのか。
これを参考に試行錯誤した結果、俺のやりたい事はこうすればできると判明
1.サブルーチン的なglobal procをまとめたファイルをhogehogelib.melという
名前で保存しスクリプトフォルダに入れる。
ここで重要なのは hogehogelib.mel の最後に
global proc hogehogelib()
と書いておくこと。
2.適当なスクリプトを書く。そのなかでhogehogelib.melを使いたい場合は1行
hogehogelib;
と書いておきスクリプトをロードさせる。
あとはそのプロシージャの中で、libにあるプロシージャを呼び出せばreturn命令で
戻ってきてくれる。
そういえば、もらったサンプルが返す値は変数1個だけだんだけど、配列2個とか複数の値を
返したい場合はどう記述すればいいのんか?
return $val1[] $val2[];
とか?
2009年から仕事でMAYAを勉強。MAYAはデフォルトでは使い勝手が悪い。逆にスクリプトを覚えてカスタマイズするとかなり強力なツールになることがわかってきた。
物覚えが悪いので勉強したことはリマインダとしてココに書き留めるようにする。
ブログ アーカイブ
-
▼
09
(31)
-
▼
5月
(18)
- 外部ファイルの存在チェック
- ラジオボタンの謎 2
- ちょっと寄り道・・・ラジオボタンの謎
- 汎用パーツをLibみたいにする 2
- 汎用パーツをLibみたいにする
- 今日のスクリプト格言
- 見やすいコーディングを考える
- skinClusterの名前を引っ張る 2
- skinClusterの名前を引っ張る
- 【MEL】頂点ウェイトの値から端数を取る 3
- 【MEL】頂点ウェイトの値から端数を取る 2
- 【MEL】頂点ウェイトの値から端数を取る
- 【MEL】複数の配列を格納、読み込み
- 【MEL】ファイル(配列)読み込み
- XSI風味のプロジェクトマネージャー
- スクリプトのインデント
- 【MEL】ファイルへの配列書き込み 2
- 【MEL】ファイルへの配列書き込み
-
▼
5月
(18)
0 件のコメント:
コメントを投稿