株式会社antsのホームページへようこそ。

コミュニティデッキ3D版<ガジェットを作ってみよう編その2>

0
Posted in Lab. By kiyokazk

こんにちは、kiyokazkです。
今回も引き続き、コミュニティデッキ3D版の使い方についての解説です。

今回は前回の予告通り、<ガジェットを作ってみよう編その2>と題し、用意した3Dモデルデータをそのままデスクトップガジェットとして表示させる方法について説明します。

概要

以前の<ガジェットを作ってみよう編その1>では、モデルデータを用意しなくても3Dガジェットを作成する方法をご紹介しました。
この方法では実際にモデルを用意しなくてよい分、気軽に試してみるにはいいのですが、実際に自分が表現したい3Dオブジェクトを作るには少し無理がありました。また、xmlを直接いじって定義するので、表示されるもののイメージも湧きづらく、コードをいじることに慣れていない人にとっては逆にわかりにくかったかもしれません。

今回の方法では3Dモデルデータを用意して、xmlで指定したモデルを変更するだけですのでデータさえ用意できれば難しくはありません。今回の方法の難しいところは何と言っても「モデルデータを用意する」部分でしょう。インターネット上にはフリーでいろいろな3Dモデルデータを作成・提供している人もいますので、自分でモデリングできないという方も探せば見つかると思います。もちろん自分でモデリングができる方であれば、特に問題はないでしょう。

ただ、ひとまとめに「3Dモデルデータ」と言っても、様々なフォーマットが存在します。GIZMO 3Dでモデルデータを扱うためには対応しているフォーマットのデータを用意しなくてはいけません。

扱えるモデルデータフォーマット

さて、それでは実際にGIZMO 3Dで扱えるモデルデータフォーマットについて説明します。(下記にあげた対応フォーマットは現在のGIZMO 3Dプラグインver1.1.0のものです。)

Xファイルフォーマット

MicrosoftのDirectXという3Dグラフィックスライブラリで標準的に使われているフォーマットです。拡張子は*.xです。

Colladaフォーマット

汎用3Dデータフォーマット。いろいろなモデリングツールにおいて、Colladaフォーマットでデータを出力するためのプラグインなども豊富です。拡張子は*.daeです。(公式サイト: http://www.collada.org/

メタセコイアデータフォーマット

国産のモデリングツール「メタセコイア」で使用されているモデルデータフォーマット。拡張子は*.mqoです。(公式サイト:http://www.metaseq.net/metaseq/index.html

GIZMO 3Dオリジナルフォーマット

GIZMO 3Dプラグインでのみ使用するオリジナルフォーマット。拡張子は*.g3mです。専用のコンバータを通すことで生成されます。(コンバータは後日公開予定です)

これらの形式のモデルであれば基本的にGIZMO 3Dプラグインで扱うことが可能です。
しかし、モデルフォーマットによっては、様々な記述方法ができる場合があり(いわゆる方言)、それによっては読み込むことができない、もしくは一部のパラメータに対応しきれていなくて表示がおかしくなる場合があります。ごめんなさい。そういった問題については今後のバージョンアップで対応していく予定です。

モデルデータを用意する

さてそれでは実際に3Dモデルデータを準備しましょう。

サンプルデータinメタセコイア

今回はメタセコイア形式のモデルデータとして、三次元CG@七葉さんからnh0086.zipをお借りしました。ここに含まれるmqoファイルを実際にメタセコイアで開いてみたのが上のスクリーンショットです。このモデルデータを3Dガジェットにしてみます。

モデルデータを差し替える

モデルデータが用意できたので、あとは既存のガジェットを差し替えるか、新しくガジェットフォルダを作成して、ガジェット定義ファイル(gadget.xml, gadget3d.xml)を準備するだけです。今回は説明を簡単にするために、既存の3Dガジェットに対して単純なモデルの差し替えを行うことにしましょう。差し替えに使うベースのガジェットは何でもいいのですが、ここではコミュニティデッキ3D版に最初から含まれるメタセコイアサンプル(ガジェットフォルダ名はsample_mqo)のモデルデータを差し替えてみることにします。

ちなみに以前のエントリーでも説明したように、ガジェットフォルダはWindowsXPの場合は
 Documents and Settings\(User)\Application Data\GIZMO2\deck\community3d\gadget
以下に、Windows Vistaの場合は、
 Users\(User)\AppData\Roaming\GIZMO2\deck\community3d\gadget
以下に存在します。
今回の例では上記にあるsample_mqoフォルダが対象のガジェットとなります。

sample_mqoで使用しているモデルはデフォルト状態ではcylinder.mqo(メタセコイア形式モデル)です。このモデルデータに代えて用意したモデルデータ(および使われているテクスチャファイル)をフォルダにコピーし、同じフォルダにあるgadget3d.xmlの内容を少し書き換えれば、モデルの差し替えは完了です。

書き換える箇所は、modelタグのsrc=の部分、そしてtype=の部分です。srcには使用するモデルデータ名を拡張子付きで記述し、typeにはモデルフォーマットを指定してください。typeに記述するモデルフォーマットは、メタセコイアは”metasequoia”、Colladaは”collada”、Xファイルは”x”、と指定します。
[xml]
<model src="low_p09_2.mqo" type="metasequoia"></model>
[/xml]

以上の作業(モデルデータの追加、定義ファイルの書き換え)でやるべきことは完了しました。自分で指定したモデルを使った3Dガジェットの完成です。表示するには、タクストレイアイコンを左クリックして表示されるガジェットリストから開くだけです。ガジェットリストにない場合は右クリックメニューからデッキの再起動を選んだあとで再度ガジェットリストを確認してみてください。無事に思い通りのモデルが表示されたでしょうか?思う存分右ドラッグでぐるぐる回してみましょう。

3Dガジェット1 3Dガジェット2 3Dガジェット3

3Dガジェットはこの状態では右ドラッグでぐるぐる回すことしかでませんが、自由に3Dガジェットを制御する方法については後日、別のエントリーにてご紹介できればと思います。デスクトップ上をアニメーション付きで自由に歩かせたりしたいですね。

さて次回はダイナミクス(物理ワールド)上にガジェットを作成する方法について説明します。