1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MAXScript の読みかた・書きかた

Last updated at Posted at 2020-03-06

概要

  • MAXScriptの読みかた・書きかた(構文)を中心に、その特徴を説明します。
  • 解説に必要な「変数」についても、少しだけ触れます。

難易度

  • 入門

閲覧想定ユーザー

  • 3dsMaxの操作をある程度行えるデザイナー
  • これからMAXScriptを始める方
  • プログラミング経験がゼロの方

想定所要時間

  • 30分

構文(お作法)

構文とは、MAXScriptを構成する法則です。文の書き方、単語の並べ方のことです。

構文を間違えていると、MAXScriptが正しく動きません。

スクリプトファイルの中身を見ても内容が全く分からないケースのほとんどは、構文や単語の持つ意味を理解しないままに眺めているためです。

すべての構文を理解するためにはリファレンスを読むしかありませんが、いきなりすべてを覚えてからコーディングに臨むのはハードルが高すぎるので、いくつかの記事に分けて説明します。

MAXScriptは「式」で構成されている

MAXScriptには、目的とする処理を実行するためのが書かれています。
式には、条件分岐や数値計算など、さまざまな種類が存在します。

※式については、別の記事でくわしく説明予定です。

変数

変数とは、計算中に数値などを入れておく箱のような概念です。
変数に入れておくことで、後から内容物を取得することができます。MAXScriptに限らず、プログラミングでは必須の概念です。

※変数については、別の記事でくわしく説明予定です。

理解を深めるために、以下のコードを見てみましょう。

x = 1
print x

1行目で x = 1 としています。これは 変数 x数値 1 を代入する、といった命令になります。

2行目で print x と書いていますが、 print とは、スペースを空けて次に記載された対象をMAXScriptリスナーに表示する、という命令です。

この場合は print の横に x を記載しているため「変数 x の内容を表示する」といった命令になります。

このスクリプトを実行すると、MAXScriptリスナーに 1 が表示されます。

リスナーの確認方法

MAXScriptリスナーは、メニューバーの「スクリプト」→「MAXScript リスナー」を選択すると表示できます。

リスナー起動.png
△ 画像は英語版の3dsMax

MAXScript リスナー ウィンドウです。
先ほどのスクリプトを実行したので 1 が表示されています。
リスナーウィンドウ.png

※3dsMaxの環境によっては、最初から他のテキストが表示されている場合もあります。その場合は、ログの末尾に 1 が表示されているかご確認ください。
※スクリプト実行前に、ログを消去することをオススメします。

変数には数値以外、たとえばオブジェクトも代入できるため、このような使い方も可能です。

x = Teapot()
x.wirecolor = red

1行目では変数 x にティーポットを入れています。
このような記述方法をすることで、生成したティーポットをそのまま変数に代入することが可能です。

2行目では、変数 x に代入したオブジェクト、つまりティーポットのワイヤーカラーを red (赤色)に変更しています。

新規シーンにスクリプトを実行すると、以下の様に表示されるはずです。

teapot.png

処理される順番

スクリプトを起動すると、1行目から最後の行まで、順番に1行ずつ処理されていきます。
1行ずつの処理は、左から右へ処理が進みます。

それを確かめるために、下のコードを見ていきます。

x = 100
x = 10
print x

1行目では変数 x100 を代入、2行目で更に 10 を代入しています。
上から処理されるため、3行目の print x では最後に代入された 10 が表示されます。

大文字・小文字は関係ない

MAXScriptで使われる変数名・関数名は、大文字・小文字の区別がされません。

以下のコードを実行して、確かめましょう。

a = 10
b = 5
C = (A - b)

print c

このコードには、変数 a b c が存在しています。
小文字と大文字が混在していますが、どちらも同じものとして扱われます。

ただし、同一のスクリプト内で大文字・小文字の規則を変えてしまうと、読みづらくなります。
できるだけ統一した方が良いでしょう。

スペースはいくつあっても同じ

式の途中にスペースをいくつ使っても、同じ結果が返されます。

たとえば、以下の 式 A~C はいずれも同じ結果を返します。
結果を確かめるために、実行してみましょう。

式 A

a = 10
print a

式 B

a=10
print a

式 C

a     =      10
print a

NG例

以下のような書き方はエラーが出るため、NGです。

a = 1 0
print a

10 という値を 1 0 のようにスペースで分断してしまうと、10 が数値として認識されなくなります。
このコードを実行すると、構文エラーで処理が止まるはずです。

全角文字

全角文字は、主にコメントや、GUIなどのボタンの名称やダイアログメッセージとして表示する場合に用います。

変数名などにも利用できますが、推奨されません。(やろうと思えば絵文字も使えます)

※コメントについては、別の記事でくわしく説明予定です。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?