TA Wiki

Technical Artist Wiki

ユーザ用ツール

サイト用ツール


サイドバー

autodesk:3ds_max

Autodesk 3ds Max

このページでは、Autodesk 3ds Max(スリーディーエス マックス)についての情報を掲載します。

ヘルプ

MAXScript

MAXScriptは、3ds Maxに実装されているスクリプト言語です。3ds Maxの機能拡張、作業の効率化、自動化をする事ができます。

MAXScript ファイル拡張子

MAXScriptのファイル拡張子は、msとmseがあります。msはテキストデータとして保存し、mseは暗号化した状態でスクリプトデータを保存します。

テクニック

MAXScript キー操作

キー操作 内容 
F11 MAXScript リスナーを起動する
Ctrl + D Clear All
Shift + Enter or Enter (テンキー) 選択範囲中のコードを実行する。
Ctrl + E スクリプトファイル内すべてのコードを実行する。

パラメータの検索

  • classof: クラスを返す。
  • superclassof: 親クラスを返す。

補足的なパラメータの検索

オブジェクトのパラメータを検索する方法は2つあります。

  • showclass(): ワイルドカードで指定することで関連するクラス、プロパティ名を検索することができます。showclass “Object.*”
  • showProperties(): 指定オブジェクトのプロパティを返す。

MAXScriptのオブジェクト

オブジェクト名 内容 備考
$現在選択している1つのオブジェクトを返します。
selection現在選択している1つ以上(1つ、または複数)のオブジェクトを返します。
rolloutMAXScriptでパネルを公開する際に使用する。

MAXScriptによるオブジェクトの修正

オブジェクトのプロパティ、パラメータを指定することで、オブジェクトの修正を行うことができます。

プロパティ名 内容 コード
nameオブジェクトの名前プロパティ。ObjectName.name
wirecolorオブジェクトのカラープロパティ。
カラー定数は、赤(red)、緑(green)、青(blue)、白(white)、黒(black)、黄(yellow)、茶(brown)。
RGB値を割り当てるには、(color 255 255 255)とする。左記の値では白色となる。
ObjectName.wirecolor = red
widthオブジェクトの幅プロパティ。ObjectName.width
heightオブジェクトの高さプロパティ。ObjectName.height
lengthオブジェクトの長さプロパティ。ObjectName.length
posオブジェクトの位置プロパティ。指定座標に配置する。ObjectName.pos = [x,y,z] or ObjectName.position = [x,y,z]
rotation.xオブジェクトのX軸回転のプロパティ。ObjectName.rotation.x = 90
scaleオブジェクトのスケール(サイズ)プロパティ。ObjectName.scale = [x,y,z]
lengthsegsオブジェクトの長さ方向セグメント数のパラメータ。ObjectName.lengthsegs = 10
widthsegsオブジェクトの幅セグメント数のパラメータ。ObjectName.widthsegs = 10
heightsegsオブジェクトの高さセグメント数のパラメータ。ObjectName.heightsegs = 10
mapCoordsオブジェクトの「マッピング座標を生成」パラメータ。ObjectName.mapCoords = ture
materialオブジェクトに割り当てられているマテリアルを返す。マテリアルの割り当てがない場合は、undefinedを返す。ObjectName.material
xrayオブジェクトをXrayモードにする。ObjectName.xray = true

MAXScriptによるオブジェクトの操作

オブジェクトの作成後にオブジェクトの移動、スケール、回転を操作することを標準変換といいます。連続で実行すると加算されていきます。

標準変換 内容  コード
移動変換 オブジェクトを指定した量だけ移動する。 move ObjectName [<x,y,z>]
スケール変換 オブジェクトを指定した量だけスケーリングする。scale ObjectName [<x,y,z>]
回転変換(オイラー角度) オブジェクトを回転オブジェクトで定義した分、回転させる。
回転変換は、回転オブジェクトを定義してからオブジェクトに適応します。
RotObject = eulerangles x y z;
rotate ObjectName RotObject

その他の操作は下記のコードで実行できる。 objectsの箇所には、ワイルドカード「*」も使用できる。また、オブジェクト名に続けて「/(スラッシュ)」で子オブジェクトを選択することができる。何階層目かのオブジェクト全てを対象とする場合は、「.(ドット)」で指定する。

操作 コード
オブジェクトを選択するselect objects
オブジェクト削除するdelete objects
オブジェクトを表示にするunhide objects
オブジェクトを非表示にするhide objects

MAXScriptの配列

MAXScriptで配列を定義するには下記の様に記述します。 myarray=#(obj1,obj2)

()内に配列についかしたいオブジェクト名を記載します。 配列に追加する場合は、appendを使用します。 append myarray obj3

配列内にオブジェクトが含まれるか判定するには、appendifuniqueを使用します。 配列内に含まれていればfalse, 含まれていなければtureを返します。 appendifunique myarray obj1

MAXScriptの関数

fnで定義する。


3ds Maxのエラー

無効なフライアウト ボタン ID!

3ds Max起動時に表示されるエラー。「OK」ボタンをクリックしても製品を起動することができない。 3ds Maxの初期設定をリセットすることでエラーを回避することができる。Autodesk 3ds Max 2014では、本バグは修正された。


3ds Max アーティスト

autodesk/3ds_max.txt · 最終更新: 2018/06/01 06:04 by 42.125.139.24