MaxScriptを書こう ~その1

目的を定めよう

MaxScriptに限らず、何かプログラム言語を使えるようになりたい、と思った場合にまず必要なのは「目的」です。何を作りたいのか、ということです。当初、この目的を持たないまま漠然と「プログラミングできるようになりてーなー」ぐらいの動機で始めた私は、主にこの「目的がない」という状態のために長年ほとんど進歩せず、挫折を繰り返しました。

そこで、まずこのチュートリアルでは目的を掲げます。もちろん最初から大変すごい目標ではなく、超微妙な感じのところから攻めていきましょう。では発表しますよ。この講座で目指すのは、

「オブジェクトの座標値をイイ感じに丸める」

です。

MaxScriptリスナーを使ってみる

例えば今、3dsmaxのビューポート上に、適当にプリミティブの「球」をマウスドラッグで作成してみてください。作るものは別に「球」でなくても構いません。生成したら、メニューのスクリプト→MaxScriptリスナーを開き(ショートカットF11)、リスナーの画面に以下のように入力します。

※スクリプト使いたるもの、リスナーは日常的に使いますので開き方を覚えておきましょう。以降「リスナーを開く」と書いてあったら上記のようにMaxScriptリスナーを開いてください。

すると何か数字が青い字で表示されたと思います。

まず、ここに記入した$(ドルマーク)ですが、MaxScriptでこの$は「現在選択しているもの」という意味になります。選択されているものが何かによって、この$の挙動は変わってきます。

今、$.posと入力したことによって出てきた青い字は、少々見づらいですが[](大カッコ)でくくられた3つの数字の組になっています。私のところでは[3.28835, 56.9764, 0]でした。

posというのはpositionのことで、$.posで「現在選択されているオブジェクトの位置」という意味になります。(この辺は追々掘り下げていきますので、今はまぁそんなもんか、ぐらいの理解で構いません)

結果として表示された数字はその「位置」を表すデータです。コンマで区切られた3つの数字が左からX、Y、Zのそれぞれの座標値を表しています。つまり前述の私の球体は、

  • X座標:3.28835
  • Y座標:56.9764
  • Z座標:0

という場所にありますよ、という意味になります。このように、3dsmaxでスナップを使用せず、マウスドラッグでオブジェクトを生成(または移動)させると、座標値に小数点以下の数字がたくさん付きます。付いたからと言ってどうということは無いのですが、このチュートリアルでは、このような座標値の端数をイイ感じに丸める(もう少しすっきりした数字に修正する)ようなツールを作ってみたいと思います。

次回は実際にこの座標をなんとかする操作をやってみましょう。

今回のまとめ

  1. スクリプト→MaxScriptリスナー(ショートカットF11)で重要アイテム「MaxScriptリスナー」を開くことができる。
  2. 特別な文字「$」は「選択されているオブジェクト」という意味になる。
  3. posで位置(ポジション)のデータを見ることができる。

前:MaxScriptを書こう ~はじめに

次:MaxScriptを書こう ~その2

MaxScriptを書こう ~はじめに

はじめに

3DCGをやっていると、「スクリプトを書いてみたい」という欲求に駆られる人が、多分それなりの数でいる(のではないか)と思います。

その動機にはいろいろあり、例えば具体的に「この作業を自動化したい」とか「スクリプトを使えばもっと便利にできるはず」というような要望があるケースから、単に「スクリプトとか書けるとカッコイイ」といった不純な動機までさまざまでしょう。

ちなみに私はこの後者で、特に具体的な目的がないまま、プログラミングとかできたらかっこえーなーという、「モテそうだからギターやる」的な発想でスタートしました。そしてそういう人の多くが陥る「文法をやってそっこー挫折する」という状態を何度も繰り返しました。

そこで、ここでは私のような、やってみたい気持ちはあるけれどどこから手をつけたものやらわからない人に向けて、簡単な目的のものを少しずつカスタマイズしていわゆる「ツール」っぽいものに仕上げていく、という流れでMaxScriptを体験するチュートリアルを書いてみようと思います。

次:MaxScriptを書こう ~その1