このトピックでは、Max クリエーション グラフを使用してカスタムのボックス作成ツールを作成する方法について説明します。その後、ツールを修正してホーム グリッドにオブジェクトを配置します。その後で、グラフを使用して合成ノードを作成し、カテゴリに割り当てます。他の 3ds Max ユーザに配布できるファイルを作成するためにツールをパッケージ化して完了します。
またこのトピックでは、フォルダを使用する最良の方法や MCG ツールをアンインストールする方法など、Max クリエーション グラフでの作業に役立つヒントについても説明します。
例: Max クリエーション グラフを使い始める
- グラフ エディタを開きます: メニュー バーで[スクリプト](Scripting)メニューをクリックして開き、[Max クリエーション グラフを開く](Open Max Creation Graph)を選択します(拡張メニューを使用している場合は、[スクリプト](Script)メニューにあります)。
グラフによって定義されるジオメトリを生成するノードを使用して、グラフを端から開始します。
- エディタ ウィンドウの左側にある[使用可能なノード/演算子](Available Nodes/Operators)リストで、[出力](Outputs)カテゴリまでスクロールして展開し、[出力: ジオメトリ](Output: geometry)ノードをグラフ ウィンドウの右側近くにドラッグします。
このノードによってグラフの残りの結果が生成されます。グラフの流れは、通常、左から右です。
次に、グラフ内の最初のノードを追加します。
- [使用可能なノード/演算子](Available Nodes/Operators)リストの[パラメータ](Parameters)カテゴリを展開し、[パラメータ: 単一](Parameter: Single)ノードをグラフ ウィンドウの左側近くにドラッグします。テキスト フィールド(現在「name」と表示)をダブルクリックし、テキストを編集して BoxSize にし、[Enter]キーを押します。
パラメータがグラフ出力のインタフェースに表示され(この例では BoxSize というラベル)、グラフのユーザはインタフェースで値を入力できるようになります。[パラメータ: 単一](Parameter: Single)ノードを使用すると、単精度浮動小数点数、つまり小数を指定することができます。グラフのデザイナーは、ユーザ入力を特定の値の範囲に制限したり、既定値を指定することができます。
既定値の 0.0 のままにしても構いませんが、可視オブジェクトが生成される開始サイズを使用するほうが有用です。
- [default]フィールドに、4.0 と入力します。[min]と[max]の既定値は 0.0 と 100.0 のままにします。
これで、グラフの始点と終点が得られました。これはそれぞれ入力と出力を表します。残りの作業は、処理ノードを追加し、ノード同士をワイヤリングしてグラフを形成することです。
- [ジオメトリ - TriMesh](Geometry - Trimesh)カテゴリを展開し、[CreateBox]ノードをビューにドラッグします。2 つの既存ノードの間に配置します。
[CreateBox]ノードは、入力として 3 つの浮動小数点の値を取り、ボックス型の TriMesh (三角形ベースのメッシュ)オブジェクトを出力します。したがって、左側にベージュの入力コネクタ 3 つ(ボックスの 3 つの次元用)、および右側に青緑色の出力コネクタ 1 つがあります。[パラメータ: 単一](Parameter: Single)ノードの出力コネクタの色は、[CreateBox]の入力コネクタの色と一致します。これは、これらのコネクタが同じタイプのデータを使用することを示します。[CreateBox]の出力コネクタと[出力: ジオメトリ](Output: Geometry)ノードの入力コネクタについても同様です。
- [パラメータ: 単一](Parameter: Single)ノードの出力コネクタの値(単一)と、[CreateBox]ノードの幅(単一)入力コネクタの間でドラッグします。ドラッグの方向は関係ありません。
その結果は、1 番目のノードから 2 番目のノードへのワイヤです。ワイヤはコネクタと同じカラーが使用され、ワイヤ上の矢印はデータフローの方向を示します。
- 同様に、[パラメータ: 単一](Parameter: Single)の値(単一)コネクタから[CreateBox]ノードの高さ(単一)および深さ(単一)入力コネクタにワイヤを作成します。
結果は、[パラメータ: 単一](Parameter: Single)ノードの単一出力から[CreateBox]ノードの 3 つの入力のそれぞれに向かう 3 つのワイヤです。これは、[パラメータ: 単一](Parameter: Single)ノードからの 1 つの値がボックスの次元 3 つすべてに使用されて、立方体を生成することになります。異なる値を使用する場合は、2 つの[パラメータ: 単一](Parameter: Single)ノードを追加して、それらを別々に[CreateBox]ノードの入力に追加します。
次のステップでは、[CreateBox]ノードによって生成される未加工データを、3ds Max で使用できるジオメトリ ノードに変換します。
- [CreateBox]ノードの[値(TriMesh)](Value (TriMesh))出力コネクタを[出力: ジオメトリ](Output: Geometry)ノードの[メッシュ(TriMesh)](Mesh (TriMesh))入力にワイヤリングします。
- グラフの出力を使用するには、グラフを検証してから評価することが必要です。グラフを手動で検証できますが、グラフを保存するときには検証が自動的に実行されるので、処理が簡略化されます。[Ctrl]+[S] を押し、ファイルを MyBox.maxtool として既定パス内の Tools\ フォルダに保存します。
重要: MCG でグラフを初めて保存するときの既定のパスは
[install drive]:\Users\[user name]\Autodesk\3ds Max [version number]\Max Creation Graph\ です。たとえば、ユーザ名が「Simone」で、
Autodesk 3ds Max 2016 がドライブ C にインストールされている場合、既定のパスは
C:\Users\Simone\Autodesk\3ds Max 2016\Max Creation Graph\ になります。このパスを変更すると、MCG は新しいパスを記憶し、以後はそのパスを使用します。
3ds Max セッション間で MCG ツールを持続する場合は、Max Creation Graph¥ フォルダ内の Tools¥ フォルダに保存します。前述の例では、C:\Users\Simone\Autodesk\3ds Max 2016\Max Creation Graph\Tools\ に保存します。
MyBox グラフを保存した後、グラフ エディタの[メッセージ ログ](Message Log)ウィンドウには、検証、結果の MAXScript の生成、および保存がすべて正常に実行されたことが示されます。
- [ビルド](Build)メニューを開き、[評価](Evaluate)を選択します。[評価](Evaluate)機能によってグラフが作成され、3ds Max インタフェースに追加されます。
グラフ エディタの[メッセージ ログ](Message Log)ウィンドウには、検証、MAXScript ファイルの生成、および MAXScript ファイルの評価がすべて正常に実行されたことが示されます。
- ジオメトリ グラフの評価に成功すると、その出力が[作成](Create)パネルの[Max クリエーション グラフ](Max Creation Graph)カテゴリに既定で表示されます。[作成](Create)パネルに移動し、ドロップダウン リストを開き、[Max クリエーション グラフ](Max Creation Graph)を選択します。次に、[オブジェクト タイプ](Object Type)ロールアウトで[MyBox]ボタンをクリックします。
[作成](Create)パネルに[パラメータ](Parameters)ロールアウトが表示され、単一の BoxSize パラメータが表示されます。既定値は 4.0 で、小さいボックスが生成されます。
- ビューポート内をクリックしてボックスを追加し、BoxSize パラメータ値を調整してボックスのサイズを変更します。
おめでとうございます。初めての MCG グラフが完成しました。
ヒント: 上記で説明したように、
Tools\ フォルダにグラフを保存することで、ツールはセッション間で維持されるようになります。必要な場合は、ここで
3ds Max を終了して再起動し、確認してください。
インタフェースから MCG ツールを除去するには、最初に 3ds Maxを終了し、ファイル ブラウザを使用して Tools\ フォルダに移動し、ツールのファイル名を使用するファイルを削除します。この例では、MyBox.maxtool、MyBox.ms、MyBox.txt を削除します(最後のファイルは、ツールを初めて使用するときに作成されます)。これらのファイルをバックアップとして Tools¥ 以外のフォルダにコピーしてから、Tools¥ フォルダから削除して、プログラムを再起動します。
ホーム グリッドにボックスを作成する
注: この手順は、前の手順の続きです。
前の手順では、サイズ変更可能な立方体のボックスを作成するグラフの設計方法について学習しました。標準のボックス プリミティブとは異なり、手続き型コンテンツ ボックスはホーム グリッド上に配置されませんが、ホーム グリッドの中央に垂直に配置されるため、その半分はグリッドよりも上、半分は下にあります。次の手順では、標準のボックス プリミティブの作成プロセスをより密接に複製するロジックを追加し、グリッド内ではなくグリッド上に配置されるオブジェクトを作成します。
- 前の手順から続けるか、または前に保存した MyBox.maxtool グラフを開きます。
ボックスを再配置する 1 つの方法は、オフセット タイプ ノードを使用することです。
- エディタ ウィンドウの左側にある[オペレータ ノード](Operator Nodes)リストで、必要に応じて[ジオメトリ: TriMesh](Geometry: Trimesh)カテゴリを展開し、[OffsetMesh]ノードをグラフにドラッグします。[CreateBox]と[出力: ジオメトリ](Output: Geometry)ノードの間に配置します。
このノードを使用して、Z (垂直)軸上でメッシュを再配置します。
ヒント: [合成](Compound)は MCG グラフが含まれる特殊なノード タイプです。[オペレータ ノード](Operators Nodes)リストと[合成](Compound)ノードのヘッダでは、紫色で示されます。[合成](Compound)ノードの構成を確認するには、グラフまたは[オペレータ ノード](Operators Nodes)リストでノードを右クリックし、[新しいタブでコンポーネントを開く](Open Compound In New Tab)を選択します。
[合成](Compound)はネストすることもできます。[OffsetMesh]グラフには、別の[合成: DeformMeshPoints](Compound: DeformMeshPoints)が含まれています。
この時点で、[OffsetMesh]ノードを[CreateBox]と[出力: ジオメトリ](Output: Geometry)ノードへ 2 回のアクションでワイヤリングすることができますが、その代わりにショートカットを使用します。
- [Ctrl] キーを押したまま[OffsetMesh]ノードをドラッグして、[CreateBox]ノードの出力と[出力: ジオメトリ](Output: Geometry)ノードの入力の間でワイヤリングします。ワイヤが黄色の点線に変化したら、ノードをドロップして [Ctrl] キーを離します。
MCG によって、両側で適切な TriMesh コネクタ タイプを使用して、自動的に新しいノードが 2 つの既存ノードの間に挿入されます。
その他の[OffsetMesh]ノードの入力(オレンジのコネクタ)は、3 次元でのオブジェクトのオフセットを指定することができる[OffsetVector]であり、したがって、vector3 入力タイプが要求されます。次の手順では、[オペレータ ノード](Operator Nodes)リスト内で検索することなく必要なノードを追加する便利な機能を使用します。
- [OffsetMesh]ノードの左側にあるオレンジの [OffsetVector]コネクタから、グラフ エディタ内の空の場所にドラッグし、マウス ボタンを離します。
マウス カーソルの横に小さな検索リストが開き、出力コネクタが vector3 入力コネクタ タイプと互換性のあるノードのリストが表示されます。これらのほとんどは、出力タイプが[任意](Any)であり、他のほとんどのタイプと互換性があります。この例では、vector3 入力と直接互換性のあるコネクタを使用します。
- キーボードで、V と入力します(大文字小文字は関係ありません)。
使用可能な選択肢が「V」で始まるノードに絞り込まれます。
- リストで、[vector3]ノードをクリックします。
[OffsetMesh]ノードの[OffsetVector]コネクタにワイヤリングされた新しい vector3 ノードがグラフに表示されます。
次に、[vector3]ノードの値入力を提供します。Z 軸の位置のみをオフセットするため、X および Y は 0 に設定するだけです。
- [オペレータ ノード](Operator Nodes)リストで、[定数](Constants)カテゴリを展開し、[一定](Constant)ノードをグラフで[vector3]ノードの左側にドラッグします。その[値](Value)コネクタを[vector3]ノードの[X]および[Y]入力の両方にワイヤリングします。
注: [パラメータ](Parameter)ノードと同様に、[一定](Constant)ノードはグラフへの値入力を提供します。違いがある点は、[一定](Constant)ノードは値設定がグラフの作成者以外のユーザには簡単に使用できないという点です。
また、[一定](Constant)ノードの出力コネクタは緑で、それが Any タイプであることを示します。つまり、それは任意のタイプの数値(整数、浮動小数など)を出力でき、数値を必要とするすべての入力コネクタと互換性があります。
- [一定](Constant)ノードの[値](Value)フィールドを 0.0 に設定します。
重要: 値を小数で入力することで、この数値が単に 0 を指定した場合のように整数として扱われるのではなく、浮動小数として扱われるように MCG に指示します。
次に、単純な計算を使用して、Z の値を指定します。既定では、ボックスの半分がホーム グリッドの下に配置されているため、高さの半分だけ上に移動します。算術ノードを使用し、除算でオフセットを計算します。
- これまでに学習した方法を使用して、[分割](Divide)ノード([数学](Math)カテゴリ内)をグラフに追加します。[vector3]ノードの左側に配置し、その[値](Value)出力を[vector3]ノードの Z 入力にワイヤリングします。
[分割](Divide)には、[任意](Any)タイプの 2 つの入力があります。X は分子で、Y は分母です。つまり、[分割](Divide)の出力は、X 入力を Y 入力で除算した値です。既に BoxSize という分子があります。
- [BoxSize パラメータ](BoxSize Parameter)ノードの[値](Value)出力を[分割](Divide)の X 入力にワイヤリングします。
分母には別の[一定](Constant)ノードが必要になります。既存の[一定](Constant)ノードのクローンを作成することで、そのノードを作成することができます。
- [一定](Constant)ノードを少し下に [Shift]+ ドラッグして、ノードの複製を作成します。このコピーを[分割](Divide)ノードのそばにドロップし、その値を 2.0 に変更し、その出力を[分割](Divide)の Y 入力コネクタにワイヤリングします。
この時点でグラフが少し乱雑になっていても、簡単に修正できます。
- グラフ ウィンドウを右クリックして[すべてをレイアウト](Lay Out All)を選択します。
すべてのノードが整頓されます。
- グラフを保存し、これを評価します。
これによって、[Max クリエーション グラフ](Max Creation Graph)カテゴリの[オブジェクト タイプ](Object Type)ロールアウトの[MyBox]ツールが置き換わります。
- [MyBox]ツールを再度使用して、新しいボックスを作成します。
[BoxSize]値を調整するときに、ボックスの下部がグリッド上に固定されます。
合成ノードを作成する
注: この手順は、前の手順の続きです。
合成ノードは、他のノードから構築された独立したノードです。ある意味で、合成ノードは「ブラックボックス」です。使用する作成者にはその内部動作が既定で隠されています。合成を作成すると、合成に含まれるグラフを使用するのではなく、グラフ内で合成を使用することで、時間を節約することができます。
合成は完全なグラフとしては機能しないため、2 つのノードを置き換える必要があります。
まず、グラフの始点にある[パラメータ](Parameter)ノードを同等の[入力](Input)ノードと置換します。この方法では、入力値(BoxSize)が合成内からではなく、合成が含まれるグラフによって提供されます。
- [入力](Inputs)カテゴリから、[入力: 単一](Input: Single)ノードをグラフの左側にドラッグします。テキスト フィールドを編集して「BoxSize」と表示されるようにします。新しいノードの[値](Value)出力を[CreateBox]ノードの 3 つの入力、および[分割](Divide)ノードの X 入力にワイヤリングします。
- [パラメータ](Parameter)ノードがワイヤリング解除されるため、このノードを選択して削除することができます([Delete] キーを押す)。
同様に、現在の[出力](Output)ノードを、合成ノードのデータを送信するように設計されたノードで置き換えます。
- [出力](Outputs)カテゴリから、[出力: 合成](Output: Compound)ノードをグラフの右側にドラッグします。[OffsetMesh]ノードの[値](Value)出力を[出力: 合成](Output: Compound)の入力に接続し、[出力: ジオメトリ](Output: Geometry)ノードを削除します。
次に、特別なファイル形式を使用して、専用の場所に合成を保存します。しかし、先に[オペレータ ノード](Operator Nodes)リストでの表示位置を指定しましょう。
- [Max クリエーション グラフ](Max Creation Graph)ダイアログで、[編集](Edit)メニューを開き、[グラフのプロパティを編集](Edit Graph Properties)を選択します。
[グラフのプロパティ](Graph Properties)が開き、グラフを説明するために使用できるさまざまなフィールドが表示されます。次の手順で使用するものは、以下の図に示している[カテゴリ](Category)フィールドです。
注: これらの設定の大部分は、グラフのさまざまな面を追跡するのに役立つだけですが、[カテゴリ](Category)フィールドには実際に機能上の効果があります。
- [カテゴリ](Category)フィールドで、[オペレータ ノード](Operator Nodes)リストから合成が表示されるカテゴリの名前を入力します。この例では、[ジオメトリ - TriMesh](Geometry - Trimesh)と入力します。
ヒント: 希望する任意のカテゴリを指定できます(新しいカテゴリを含む)。カテゴリを指定しない場合、合成は[合成](Compounds)カテゴリに表示されます。
- [ファイル](File)メニューを開き、[名前をつけて保存](Save As)を選択します。ファイル ダイアログを使用して Compounds フォルダ [install drive]:\Users\[user name]\Autodesk\3ds Max [version number]\Max Creation Graph\Compounds\ にナビゲートし、[ファイルの種類](Save As Type)ドロップダウンからファイル タイプ[MCG 合成(*.maxcompound)]を選択します。グラフを MyBox.maxcompound として Compounds フォルダに保存します。
- [オペレータ](Operators)メニューを開き、[オペレータを再ロード](Reload Operators)を選択します。
MyBox オペレータが[ジオメトリ - TriMesh](Geometry - TriMesh)カテゴリに追加されます。
ヒント: [オペレータを再ロード](Reload Operators)には、[オペレータ ノード](Operator Nodes)リストで展開されたすべてのカテゴリが折りたたまれるという副作用があります。
- エディタ ダイアログの上部付近で、[MyBox.maxcompound]タブの横を右クリックし、[新規ビューを作成](Create New View)を選択します。
"タイトルなし" という新しい空のタブが開きます。
- [ジオメトリ - TriMesh](Geometry - TriMesh)カテゴリを展開し、[MyBox]合成ノードを空のビューにドラッグします。
入力コネクタには、[入力: 単一](Input: Single)ノードで入力した[BoxSize]ラベルが使用されます。
- [パラメータ](Parameters)カテゴリから、[パラメータ: 単一](Parameter: Single)ノードをグラフの左側にドラッグします。[出力](Outputs)カテゴリから、[出力: ジオメトリ](Output: Geometry)ノードをグラフの右側にドラッグします。
- [パラメータ: 単一](Parameter: Single)ノードのテキスト フィールドを Size に変更し、2 つのノードを MyBox 合成の入力コネクタと出力コネクタにワイヤリングします。
- 新しいグラフを Tools¥ フォルダに SimpleBox として保存し、これを評価します
- [Max クリエーション グラフ](Max Creation Graph)カテゴリの[オブジェクト タイプ](Object Type)ロールアウトの[SimpleBox]ボタンを使用して、新しいボックスを作成します。
Max クリエーション グラフ パッケージを作成、インストール、およびアンインストールする
注: この手順は、前の手順の続きです。
Max クリエーション グラフ パッケージは、どのような Autodesk 3ds Max 2016 ユーザでも、内部動作を理解する必要なくインストールおよび使用できる、独立したソフトウェア コンポーネントです。たとえば、特定タイプの手続き型オブジェクトを作成するグラフを設計する場合(カスタマイズ可能な機能を持つ椅子など)、チームメイトが類似タイプのオブジェクトを作成できるようにするために、この機能を使用してグラフをチームメイトに配布することができます。
- [SimpleBox]グラフを開いた状態で、[ファイル](File)メニューを開き、[Max クリエーション グラフをパッケージ化](Package Max Creation Graph)を選択します。
- ファイル ダイアログを使用して、パッケージ ファイルを SimpleBox.mcg として保存します。
最良の結果を得るには、ファイルを既定のフォルダ([install drive]:\Users\[user name]\Autodesk\3ds Max [version number]\Max Creation Graph\Packages\)に保存し、パッケージ ファイルの配布先となるチームメイトに対して、各自のコンピュータで同様の場所にファイルを配置してもらいます。
次の手順では、チームメイトがツールをインストールするプロセスをシミュレートします。このプロセスでは、グラフ エディタを使用する必要はありません。
- グラフ エディタを閉じ、メイン メニュー バーの[スクリプト](Scripting)メニューを開きます。([Enhanced Menus]ワークスペースを使用している場合は、[スクリプト](Script)メニューを使用します)。[Max クリエーション グラフ(.MCG)パッケージをインストール](Install Max Creation Graph (.mcg) Package)コマンドを選択し、上記の手順で保存したパッケージ ファイルを開きます。
インストールに成功したことを通知する警告が開きます。[OK]をクリックして継続します。
- [作成](Create)パネル > [ジオメトリ](Geometry)ドロップダウンから、[Max クリエーション グラフ](Max Creation Graph)を選択します。
[SimpleBox]ツールが[オブジェクト タイプ](Object Type)ロールアウトに表示されます。
- このツールを使用して、正しく動作することを確認します。
最後に、パッケージをアンインストールする方法について学習します。正式な「アンインストール」機能はないため、代替方法を使用します。
- 最初に 3ds Max を終了します。次に、ファイル マネージャ ユーティリティ(Windows エクスプローラなど)を使用して、[install drive]:\Users\[user name]\Autodesk\3ds Max [version number]\Max Creation Graph\Tools\Downloads\ にナビゲートします。
このフォルダが見つからない場合は、次の手順に示すファイル名を参考にして、システムでファイル名を検索します。
- ツールの名前が付いた 3 つのファイルを検索して削除します。この例では、SimpleBox.maxtool、SimpleBox.ms、および SimpleBox.txt です。
ヒント: パッケージをインストールすると、それに対応するグラフ(.maxtool ファイル)が使用可能になるため、必要に応じて編集できます。
- 3ds Max を再起動し、[作成](Create)パネルで[Max クリエーション グラフ](Max Creation Graph) > [オブジェク タイプ](Object Type)ロールアウトを確認します。
以前インストールしたパッケージが使用できなくなりました。ツール ファイルは残っているため、必要に応じて、ツールを簡単にインストールできます。