スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
大好評の Maya Mel 講座。
嬉しい事にあまりに好評なので、
少しペースを上げていきたいと思っています。

今回は、変数の『スコープ』について解説します。

スコープとは、変数が有効となる範囲の事です。
下の例の様に、中括弧 { ~ } で囲まれた領域の中で宣言された変数は
ローカル変数と呼ばれ、その領域の内側がスコープになります。
つまり、その中でのみ機能するためその外側で変数を使用しようとしても
エラーが起きてしまいます。

{
int $scopeTest1;
$scopeTest1 = 2;
}
print $scopeTest1;
//Error will occur

では今度は中括弧を記述せず、単純に

int $scopeTest2;
$scopeTest2 = 5;

と入力して実行してください。
これはローカル変数に対してグローバル変数と呼ばれるもので、
スコープは全ての領域の外側という事になります。
そのため、異なるツールにまで影響が及びます

上のソースコードを実行した後に次の一行だけを入力して実行してみてください。

print $scopeTest2;

先ほど宣言した変数が有効になっているため、値が出力されます。
この変数は基本的に Maya が起動している間ずっと存在し続けます。

領域の中でも宣言時に文頭に global をつける事でグローバル変数になります。

{
global int $scopeTest3;
$scopeTest3 = 6;
}
print $scopeTest3;

また、他の領域の中でも同様に global をつけて宣言すれば
その領域もスコープに含まれます。
以下の図を参考にしてください。

0602_1.jpg


スコープに関する説明は以上です。
ここまで読むとグローバル変数の方が便利そうに思われるかも知れませんが、
実はグローバル変数の使用はできるだけ避けるべきと言えます。

先述の通り、複数のツールを使用した時に同じ名前のグローバル変数が混在していると
異なるツール同士で変数の中身が影響してしまう可能性があるためです。

なんだか小難しい話でよく分からなかったかも知れませんが、
とりあえず変数は中括弧で囲まれた領域の内側だけで使用するという事を心がけてください。
そうすれば基本的には問題ありません。


参考:
 Autodesk Maya オンラインヘルプ : グローバル変数とローカル変数
 Autodesk Maya オンラインヘルプ : ブロック
 Autodesk Maya オンラインヘルプ : 変数に命名する

演習:
 今回は演習問題はありません。
 ご自分で色々と試してみて、スコープについて理解を深めてみてください。
コメント
管理者のみ閲覧可能にする
Profile
HN らい

都内某社テクニカルディレクター
都内某専門学校講師
都内某企業講師
元中国某社S3Dスーパーバイザー
Contact
(ENGLISH OK. 可以用中文。)
Categories
Archives
RSS Link
QR Code