チュートリアル / 宋さんの3ds Max キッチンスタジアム
第18回:Max Creation Graphを使おう!(その1)

  • 3ds Max
  • Max Creation Graph
  • コラム
  • チュートリアル

大変時間がたってしまいましたが、再開します。
前回の続きも考えたのですが、3ds Max 2016が発売開始されましたので、目玉機能でもあるMax Creation Graph(以下 MCG)についてしばらく連載しようかなと思います。(ごめんなさい!!)

MCGとは?

さて、MCGって何でしょう?
簡単に言いますと、標準で搭載していないカスタムツールを3ds Maxを使う方自身で作成、使用、配布するための機能です。
いままでもSDK(ソフトウエア開発キット)やMax Scriptを使用してカスタムツールを作ることは可能でした。というより、3ds Maxの全世界にわたるユーザーの方々が作成されたツールを膨大なコミュニティから無限に入手できたのも事実ですし、それらを活用してお仕事に役立てている方も多いと思います。ただご自分でカスタムツールを作ろうとした場合、プログラミング経験のない方だとかなり敷居の高い作業であることは事実です。覚えよう!と思って勉強したけど挫折したorz..って方も多いのではないでしょうか?

MCGはパーティクルフローやSlate マテリアルエディターのようにノードを接続してツールを作成するグラフィカルなカスタムツール作成ツールです。コードを書くことなくグラフィカルにデータの流れを作成してツールを作っていくことができます。
3ds Max 2016で搭載しているMCGはまだバージョン1.0と言えるものなので、使用できるノードや作成できるツールに関しては若干制限があるのは確かですが、この辺に関しては今後どんどん拡張していくはずです。
MCGを見た方は、「これはSoftimage ICEではないのか!?」とよく言われますが、ICEとは全く別物です。ただし、ノードコネクトの考え方や思想は同じものと言えます。

MCGを開いてみよう

では、実際にMCGを開いてみましょう。

Max Creation Graph Screen

3ds Max内のスクリプトメニューを開くとその上段にMCGにアクセスするコマンドが配列されています。
MCGを操作する場合は基本的に Max クリエーション グラフ エディタという編集画面だけで行います。
では「Max クリエーション グラフ エディタ」をクリックして画面を出してみましょう。

Max Creation Graph Screen

下図のような画面が表示されます。

Max Creation Graph Screen

簡単にこのエディタの説明をしましょう。
左上段にあるのが「オペレータ ノード リスト」と呼ばれるものです。料理に例えて言うと様々な料理の材料やいろんな種類の調理器具が入っている食器棚みたいなものです。ここに入っている材料を組み合わせ、入っている調理器具を使っておいしい料理を作りましょうって感じですかね、
左下段にあるのが「オペレータの説明」つまりリファレンスです。この材料にはこの調味料以外使用できませんよ、とかそんな内容が書かれています。
右側上段にある巨大な空間が編集画面です。キッチンにある調理台みたいなものですね。
その下にあるのがメッセージログで、出来上がった料理が食べられるものになっているか確認してくれる場所です。なんかこんな材料でこんな料理作ってみたけど食べたら死ぬかな?あと過去にどんな失敗したか確認したいなあ~なんてときに使う場所といえばいいでしょうか。

超簡単なツールを作ってみましょう

では、超簡単なツールを作ってみましょう。
ボックスオブジェクトを作成するモデリングツールを作ります。
えー!? ボックス作るツールは標準で持っているじゃないか!? と思うかもしれませんが、まあ お付き合いください。
Max クリエーション グラフ エディタのファイルメニューから「新規」を実行します。エディタ画面に新規のタブが作成されます。

Max Creation Graph Screen Max Creation Graph Screen

左上にあるオペレータノードから「Geometry - TriMesh」を選択しましょう。

Max Creation Graph Screen

実はここに表示されているものはカテゴリの表記なので、左側にある「+」アイコンをクリックして中身を見てみましょう。

Max Creation Graph Screen

ああ~、なんてことでしょう!すごい量のオペレータがあります。なんか紫色のテキストと白いテキストに分かれていますね、これはノードの種類によって色分けされています。ちなみ白いノードはこれもっともシンプルな細分化できない基本となるノードです。対して紫色のノードは「コンパウンド」といわれる複数のノードを組み合わせて一つのノードにまとめたものです。料理でいうとカレーのルーみたいな感じでしょうか?毎回 香辛料からカレー作っていたら大変ですよね、一回ルーを作って保存しておけば、次にカレーを作るときは簡単にできるのと同じですね、なんか変な例えですかね、
このコンパウンドに関しては次回以降に詳しく解説していきます。
ちょっと脱線してしまいましたが、ここでは「Create Box」と書かれたノードを使います。
使い方ですが、マウスで選択して、エディタ画面上にドラッグ アンド ドロップするだけです。

するとエディタ上に図のようなノードが配置されます。

Max Creation Graph Screen

ちなみにエディタ内の画面操作は3ds Maxのビューポート操作と同じです。マウスホイール コロコロでズーム操作、ホイールボタンドラッグでパン操作になります。
さて、配置されたノードアイコンを見てみましょう。
左右に色が異なる丸いソケットがあります。左側にあるソケットがデータの入力、右側がデータの出力です。これは膨大な数のノード全てに共通の仕様になっています。

このノードはその前の通り「箱を作ります」ノードです。でもこれだけだと どれぐらいの大きさの箱にするのか、Maxのユーザーインターフェイスのどこにこの機能を入れるのかが判りません。なので、もっと材料を入れてあげます。
まず、今回のボックス作成ツールはコマンドパネルの作成タブ内からアクセス出来るようにします。つまりジオメトリ作成ツールになるわけです。そこで出力用のノードを配置して接続します。
オペレータノードリストから「Output」リストを開きます。

Max Creation Graph Screen

「Output」リストの中身は、「Output: MaxScript function」、「Output: compound」、「Output: geometry」、「Output: modifier」、「Output: utility」の5種類があります。つまり3ds Max 2016に実装されたMax Creation Graphで作成可能なカスタムツールは、Max Script、コンパウンドノード、ジオメトリ、モディファイヤツール、ユーティリティツールの5種類。厳密に言えばジオメトリ作成ツール、モディファイヤツール、ユーティリティツールの3種類に限定されています。今後拡張されるよう期待しましょう。

先ほどと同じようにオペレータリストから「Output: geometry」を選択し、先ほど位置したノードの右側にドロップします。

Max Creation Graph Screen

「Output: geometry」ノードには出力用のソケットがありませんね、つまりこのノードが終端のノードになるわけです。
では「CreateBox」ノードの出力用ソケットと「Output: geometry」の入力用ソケットをドラッグして接続させます。
ここで重要で注意すべきポイントがあります。MCGで使用する多くのノードソケットにはそれがどういった意味のソケットなのかが表記されています。また接続するということはデータの流れを構築する事になるので、データの形式が同じでなければなりません。
今回の例だと「CreateBox」出力ソケットには”value(TriMesh)”と書かれてますね。「Output: geometry」の入力ソケットには””mesh(TriMesh)”と書かれています。ここで「おやっ?」って思われた方もいるかもしれませんが、()内に書かれている記述が両者とも同じ内容です。これらはMCGでのデータの形式を指しています。つまり”TriMesh”(三角メッシュ)というデータの型を接続するということになります。MCGではソケットをつなぐ場合このデータの型の意味がとても重要になってくるのです。これを知っていれば、このノードは接続できるかどうかを一目で判断することが可能ですね。

そんなこんなで接続したものが図の状態です。

Max Creation Graph Screen

では、次にどんな大きさのボックスにするのかを決定するノードを接続しましょう。
「CreateBox」ノードの左側にある入力用ソケットに値を接続させましょう。この入力ソケットはボックスの幅、高さ、奥行きの値だというのは見れば判りますね。
コマンドパネルでこのツールを動かしたときに、値を入力できるようにしたいので、パラメータの属性をつなぎます。そこでオペレータリストからパラメータに関するノードを探したいのですが、数が多すぎて大変な作業です。そこで便利な機能を使いましょう。オペレータリスト上部にあるテキスト入力欄に取り急ぎ「Para」とタイピングしてみます。
すると数あるノードの中から名前に「Para」を含むノードだけが表示されます。この中から選ぶのであれば簡単ですよね。

Max Creation Graph Screen

さて、どれを選べばいいのでしょうか? 先ほどの同じ考え方なので、データの型を合わせます。つまりCreateBoxの入力ソケットには()内に「Single」と書かれていますので「Parameter: Single」というノードを使います。ちなみにここで表記されているSingleとは浮動小数点のことを指します。つまり小数点以下の値を持つ数値ということです。参考までに個数の指定などに使うのであれば「Int32」を使います。32bit整数のことですね。
オンかオフかの切り替えの時などは「Boolean」を使いましょう。

では「Parameter: Single」を配置してソケットをつなぎます。今回はシンプルに正方形を作りますので図のように接続してみます。

Max Creation Graph Screen

ノードの接続は一つの出力ソケットからデータを複数に分岐させることも可能です。
「Parameter: Single」の内容を見ると「min」「max」「default」という表記があります。これはこれから作るボックスの最小サイズと最大サイズ、さらには既定の大きさを指定します。ノードの上部にはテキスト入力欄がありますが、ここにはGUI上現れるパラメータの名前を記入します。ここで注意点が一つ。
MCGではノードエディタ内では 日本語のような2バイト文字は使用することが出来ません。作成したツールを後で日本語にすることは可能ですが、ノードエディタ内では絶対に日本語は使わないで下さい。使用できるのは半角英数文字だけです。
では今回は半角英数文字で「Boxsize」と記入しましょう。また規定のサイズには「10」と入力します。その下に「system unites」というチェックマークがありますが、これは入力の値をシステム単位設定の値で入力するかどうかを決めるチャックマークです。今回はチェックなしで進みます。
これで作業は終了です。
次に今作成したカスタムツールをすぐに使用してみましょう。

ファイルメニューから「名前をつけて保存」を実行します。こういったカスタムツールの保存先は実際の所どこでも構いません。
C:\Users\ログインユーザー名\Autodesk\3ds Max 2016\Max Creation Graph
内に保存してみましょう。実はこのディレクトリ パスはとれも大事なパスになります。詳しくは次回以降に記載します。
保存ファイル形式はMCGツール(*.maxtool)という形式で保存します。このファイルはXML形式なので中身をテキストエディタで見ること可能です。
ファイル名を「FirstBox」と命名して保存します。ここでも半角英数文字だけを使うようにして下さい。
保存が終わると、メッセージログに以下の様なメッセージが表示されますね

Max Creation Graph Screen

よくよく文章を読んでみると、Validation(検証)は成功したよ、MaxScrptファイルの生成も成功したよ、ファイルを保存したよ、って書かれています。この辺も次回以降に詳しく説明していきましょう。

さて、最後の作業です。すぐにツールを使ってみましょう。
ビルドメニュー>「評価」 を実行します。
これで全ての作業は完了です。

Max Creation Graph Screen

コマンドパネルの作成タブからドロップダウンリストを開くと「Max Creation Graph」と書かれたリストが出てきます。それを選ぶと、、、、なんと今作った「FirstBox」と書かれたボタンがあります。
選択して、ビューポート上でマウスクリックします。ボックスが出来ましたね、モディファイヤタブに移り、パラメータを見ると、ちゃんと「Boxsize」って書かれています。

Max Creation Graph Screen

ではちょっと遊んでみましょう。MCGエディタに戻り「Parameter: Single」の表記欄を変えてみます。「BoxSize」と書かれているところを「Size」に書き換えましょう。
ビルドメニュ内の「評価」を再度 実行します。すると下図のように保存するか聞かれますので「はい」を選んでおきます。

Max Creation Graph Screen

するとモディファイヤ内のパラメータが瞬時に切り替わりましたね、
このようにMCGではツールを作成しながら内容を確認していく作業を、リアルタイムに行うことが出来るわけです。

お復習い

ここでMCGでのツール作成のお復習いをしてみましょう
① MCGエディタを開く
② 新規タブを設定する
③ ノードを配置し接続させる
④ .maxtoolファイルで保存する。
⑤ メッセージログで問題が起きていないか確認する
⑥ ツールを評価させる
⑦ 使ってみる!
といった流れです。

今回は、最初の一歩という目的なので、非常に簡単なツールの作成と作成ワークフローの基本をお伝えしました。
頑張ってチャレンジして下さい!
ではでは、

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。