チュートリアル / プラグインを作ってみよう!ゲーム開発のためのツール製作講座
第1回:Softimage編 SDK全般の話

更新日 2011.07.20

今月からコラムを担当させていただくことになりました。セガのプログラマで、立福と申します。私のコラムではSoftimageとMayaのSDKに関する話題を扱っていく予定です。私の主な業務がDCCツールから実機までのコンテンツパイプラインの構築なので、DCCツール上で動作するエクスポーター作成の話を中心に、SDKの使い方や、ゲーム業界でありがちな話などを盛り込んでいければと思っています。

最初はSoftimageのSDKの話から始めます。こちらはCEDEC2010での私の発表内容をベースに、補足情報や余談などを加えていくつもりです。

"Autodesk Game Day Vol. 2: Softimage SDK講座 COLLADAエクスポーターを作ってみよう"
http://cedil.cesa.or.jp/session/detail/317

CEDECでの発表のときはSoftimage2010ベースでしたが、こちらのコラムではSoftimage2011ベースで進める予定です。またSoftimageの話が一通り終わったら、MayaのSDKの話題に移ろうと思っています。

Softimageでプラグインを作成する方法

さて、第一回目はSoftimageのSDKについて全般的な話をしてみます。Softimageでプラグインを作成する方法は4つあります。

・スクリプト
・C++
・C#
・オブジェクトモデル

この中で私がよく使うのはスクリプトとC++です。C#も便利そうなのですが、私が使ったことがないのでこちらのコラムでは取り上げません。

SoftimageのSDKの全体構造

こちらの図はSoftimageのSDKの全体構造で、SDKのヘルプに載っている図と同じものです。大まかにこんな感じ、というイメージを持ってもらえれば十分だと思います。

スクリプトではJavaScript, Pythonなどの好きな言語を使うことができます。私はSoftimageとMaya上で動作するプラグインを書くことが多いので、両方で動くPythonを使っています。社内のテクニカルアーティストがPythonを使っているので、困った時に教えてもらえる、という理由も大きいです。どの言語を使うかは自分の好みと、周りの環境などで決めるといいと思います。どのスクリプトを使っても、基本となるのはSoftimageのオブジェクトモデルなので、大きくは違わないはずです。

使用するスクリプト言語はScriptEditorの「ファイル」→「設定」から、「スクリプト言語」の項目で選択できます。





Softimage2010まではPythonを別途インストールする必要がありましたが、Softimage2011以降は標準で使えるようになりました。これは大変便利ですね。おかげでプラグインを配布するアーティストのマシンにPythonを個別にインストールしなくてもよくなりました。

スクリプトは編集が容易な上、大抵の作業を行うことができますが、大量のデータを扱う場合に実行時間が問題になってきます。このような場合はスクリプトではなく、C++を使ってdll形式のプラグインを作成します。ゲーム制作の現場では、アーティストの作業を補助するツールはテクニカルアーティストがスクリプトで作成し、高速に動作させたいエクスポーターなどはプログラマがC++で作成することが多いと思います。

最後のオブジェクトモデルは、要するにCOMのインターフェースになるのですが、こちらは非常に使いにくいのでお薦めしません。昔はCOM経由でないとアクセスできない部分があったのですが、今はC++だけでも全然問題ありません。こちらのコラムではスクリプトとC++の2つのAPIを扱っていきます。

Softimageの疑問点の調べ方

APIの紹介が終わったところで、実際にプラグインを作成する話をしようと思っていたのですが、その前に大変重要な話を思い出しました。SDKを使ってSoftimageのプラグインの開発を進めていくと様々な疑問点が出てきます。さて、どうやって調べればよいでしょうか?

まずはドキュメントから調べるのがセオリーですが、SoftimageはSDKの設計上、ドキュメントからすべての情報を調べるのが難しくなっています。この辺は今後の説明で触れる予定ですが、Softimageのデータ構造やそのパラメータの名前を知らないと、内部構造をたどっていくことが難しいのです。

次にサンプルはどうでしょうか? SoftimageのSDKには各言語を使ったサンプルが用意されていますが、必要な情報がすべて見つけられるわけではありません。サンプルの全体の数はかなり多いのですが、C++,C#,JavaScriptなど、いろいろな言語で書かれているので、必要に応じて他の言語で置き換えて解釈する必要があります。慣れてくれば他の言語で書かれたサンプルも利用できるのですが、最初のうちは難しいと思います。

となるとSDKのパッケージ以外から調べるしかありません。ある程度規模の大きな会社なら、社内の詳しい人に教えてもらうことができますね。実際、私もよく教えてもらっています。しかし、大きなところ以外ではプラグインの担当者が自分一人だけ、ということが普通にあります。SoftimageのSDKというのはやはりニッチな分野なので、常に担当者が少ないのです。

もちろんインターネットで検索することもできますが、Softimageのスクリプトは引っ掛かっても、C++APIの情報はほとんど見つからないと思います。C++APIを触っているユーザーがいても、なかなか外部に情報が出てこないようです。

結局どうするのが一番かと言うと「代理店のテクニカルサポートを受けましょう!」これに尽きます。Softimageを販売している日本の代理店ならば、有償のテクニカルサポートが受けられますので、SDKの質問などはそちらに投げましょう。担当の方に対応してもらえます。



代理店の担当者が答えられない場合は、開発元に問い合わせてもらえるので、ほとんどの疑問は解決するはずです。



大手ゲーム会社では当たり前の話ですが、一人でプラグインの開発をしているとテクニカルサポートの存在に気づかなくて、試行錯誤を延々と繰り返す、ということもあるようです。有料のサービスではありますが、作業が滞るぐらいならサポートを受けたほうが、トータルでお安くなるのではないでしょうか。

今回は最初のプラグイン作成まで進むつもりでしたが、文字数の都合で今回はここまでとさせて頂きます。APIやプログラムの説明となると、この文字数ではきつそうですね。一応、オーバーする分には大丈夫らしいのですが……

次回は開発環境のセットアップとデバッグ方法、Hello Worldプラグインの話の予定です。

更新日 2011.07.20
著者プロフィール
立福 寛
立福 寛
大学時代は家にこもってゲームを作ったり、3DCGプログラムを学びつつ、IT系のベンチャー企業でバイトしてました。2001年に株式会社セガに入社し、技術系のサポート部門でゲーム開発用のライブラリ、ツール、プラグインの製作やプロジェクトのサポートなどを行っていました。普段はアーケード向けの仕事が多かったですが、たまにコンシューマ向けの作業もやっていました。 こちらのコラムでは、普段日の光の当たらないDCCツールのSDKに関する地味な話題を紹介していこうと思っています。 2012年1月にて株式会社セガ退社。

カテゴリ

トレンド&テクノロジー
トレンド&テクノロジー
チュートリアル
チュートリアル
Autodesk GAMEWARE
オートデスク クリエイティブ フィニッシング アーチスト名鑑
DEC iNews
オートデスクの業界メールマガジンを月刊でお届けいたします。
登録
Design Visualization

カテゴリ別最新記事

コラム
ユーザ事例
イベント情報

体験版ダウンロード

Autodesk Entertainment Creation Suite Autodesk Entertainment Creation Suite
Autodesk 3ds Max Autodesk 3ds Max
Autodesk 3ds Max Design Autodesk 3ds Max Design
Autodesk Maya Autodesk Maya
Autodesk Softimage Autodesk Softimage
Autodesk MotionBuilder Autodesk MotionBuilder
Autodesk Mudbox Autodesk Mudbox
Autodesk Showcase Autodesk Showcase