====== Autodesk 3ds Max ====== このページでは、Autodesk 3ds Max(スリーディーエス マックス)についての情報を掲載します。 ===== ヘルプ ===== * [[http://help.autodesk.com/view/3DSMAX/2018/JPN/|3ds Max 2018 ヘルプ]] * [[http://help.autodesk.com/view/3DSMAX/2017/JPN/|3ds Max 2017 ヘルプ]] * [[http://help.autodesk.com/view/3DSMAX/2016/JPN/|3ds Max 2016 ヘルプ]] * [[http://help.autodesk.com/view/3DSMAX/2015/JPN/|3ds Max 2015 ヘルプ]] --- ===== MAXScript ===== MAXScriptは、3ds Maxに実装されているスクリプト言語です。3ds Maxの機能拡張、作業の効率化、自動化をする事ができます。 ==== MAXScript ファイル拡張子 ==== MAXScriptのファイル拡張子は、msとmseがあります。msはテキストデータとして保存し、mseは暗号化した状態でスクリプトデータを保存します。 ==== テクニック ==== - [[autodesk:3ds_max:message_box|MAXScriptでメッセージを表示する]] - [[autodesk:3ds_max:rotation_pivot|MAXScriptで基点を回転する]] ==== 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つ、または複数)のオブジェクトを返します。| | |rollout|MAXScriptでパネルを公開する際に使用する。| | ==== 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 []''| |スケール変換| オブジェクトを指定した量だけスケーリングする。|''scale ObjectName []''| |回転変換(オイラー角度)| オブジェクトを回転オブジェクトで定義した分、回転させる。\\ 回転変換は、回転オブジェクトを定義してからオブジェクトに適応します。|''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! ==== {{autodesk:max_err.png?200|}} 3ds Max起動時に表示されるエラー。「OK」ボタンをクリックしても製品を起動することができない。 3ds Maxの初期設定をリセットすることでエラーを回避することができる。Autodesk 3ds Max 2014では、本バグは修正された。 --- ===== 3ds Max アーティスト ===== * [[http://www.kinematiclab.com]]