【めざせクリエイター! Shadeで始める3DCG】第8回:最終回 他ソフトとのデータ連係:Shade11実践編 | GameBusiness.jp

【めざせクリエイター! Shadeで始める3DCG】第8回:最終回 他ソフトとのデータ連係:Shade11実践編

その他 その他

全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
  • 全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。
全8回となる連載も残念ながら今回が最後です。最終回となる今回は、Shadeとほかのソフトとの連携についてを解説します。これをマスターすれば、Shadeの活躍の幅が広がると思います。

指南:園山浩二(イーフロンティア)

このページの読者の多くは、ゲームコンテンツ指向でしょうから、ゲームエンジンに直接載せる方法がないように見える、スプラインモデラのことを延々と書いていることに疑問を持つ方もいらっしゃるかも知れません。制作物がムービーであれば、最終の動画フォーマットさえ合っていれば、何で作ろうと問題になることはありませんが、ハードウエアでのリアルタイムレンダリングのためには、形状の1スキン化と最適化、ポリゴンの面反転、UVマップ、ボーン設定等、解決しなければならないさまざまな互換性の問題点があります。

その1つ1つを詳細に説明するよりは、実際にこうすれば、相互に利用できるという実例をお見せした方が、手っ取り早く納得していただける部分もあるかと思い、最終回は、ほかのアプリとの連携でアニメーションを作る方法を説明します。

●形状変換

作例は、弊社で過去に発売したShade形状集から形状を変換し、人体ライブラリソフトPoserへ互換形状として移植した例になります(現在この形状集は市販されておりません)。Poserでは非常に簡単な手順でアニメーションを作成する事ができ、そのモーションデータをBVH(Biovision Hierarchy:Biovisionが提唱したモーションデータファイル形式)で書き出すことが可能です。まずは、Poserの歩行デザインを使って走るようすをご覧ください。Poser自体は、一般のポリゴンを扱うソフトと何ら変わりませんので、この移植が可能であるということは、ほかのソフトでも同じく応用ができるということです。





ただし、実際のShade形状集には著作権保護のためのロックがかかっています。そのため、Poserへの移植はできませんが、試作として非ロック形状から作ってみたものです。Poserの中で走り回っているシーンをご覧ください。自作のオリジナル形状でやると面白いとでしょう

両者には、互換性がないのになぜこのような事が可能なのでしょうか。それを知るためには、形状構造の違いを知る必要があります。Shadeのオリジナル形状のブラウザ名称は、下の図のようになっていますが、この形状分類は、Shadeのポーズデータと、プラグ&ソケット(任意のレジストリの位置に形状を読み込む:手に持った武器などが、手が動いた後でも握らせたままにできる機能)に対応して、自由に作られた階層構造になっています。またデータもまだスプラインのままですから、ワイヤーフレームが比較的すっきりしているのがわかります。

Shadeの形状ブラウザ構造。ジョイントツリーは動作の通りになってはいるが、ジョイント名称もジョイントの数も、制作者が作りたい放題に作れるため、ほかでの利用等を前提とした構造にはなっていません


それに対して、Poserの標準ドールの階層エディタの表示は以下のようになっています。Shadeで好きに作った形状とは、全く違う形状分類と並び順で、部品名称も事なっているのがわかります。ではこのドールをPoserからwavefronti.objで書き出してShadeに読み込んでみましょう。なお、wavefrpmt.objのインポート、エクスポートは、Shade、Poserの双方向で形状が渡せます。利用可能な汎用フォーマットはほかにもありますが、もっとも相性がよいのはwavefront.objです。

Poserの階層エディタ表示です。Shadeとは形状分類も並び順もまるでちがうことがわかります


次に、形状IDによるマルチパスレンダリングで、形状のポリゴンメッシュを色分けしてみましょう。これは、ジョイントの境界別に分類されています。着衣の比較的少ないデータを選んでも、ワイヤーフレームの密度が高いためポリゴンデータだとわかります。Shadeのブラウザでは、そのポリゴンメッシュ別に固有の英文名称が付いたオブジェクトが並んでいますが、これはもとのPoserの階層エディタにある和文名称を英文に戻したものです。階層は失われていますが、英語版Poserの階層エディタと全く同じ名前で、表示順も同じになっています(wavefronto.objは、フォーマットとして和文リソースを取り扱わないため、英文で書き出されます)。ShadeからPoserへのデータ移植は、この逆の手順を取らないとなりません。

ポリゴンメッシュを色分けしてマルチパスレンダリングしてみました


まず、スプラインデータを中空のポリゴンデータへ変換する必要があります。そして、Poser上でボーンを使うためには、Shadeのキャラクター形状を、上記のPoser標準ドールのようにポリゴン分解し、各パーツを同じ大きさにし、同じ名称を付けた上で、ブラウザ内での上下順にしてwavefront.objで書き出す必要があります。

一見面倒な作業のように思えますが、スプラインデータを中空のポリゴンメッシュにするのは、論理演算の和記号「¥」を利用したブーリアンモデリングを適用すれば、中空の1スキンに変換できます。次に、Poserのボーン別のパーツと同じ構成になるように、ポリゴンメッシュを身体の各部分に分解します。Poserからの移植データで、同じ位置にある部品の「ブラウザ名称」を各部にコピー&ペーストしてしまえば、Shadeの「ブラウザ名称」は、そのままPoserの「階層エディタ」でも表示されるようになりますので、Poser上での移植の手間は、大幅に省けることになります。では、工程を順を追って見てみましょう。

まず、Shadeのキャラクタ形状をポリゴンメッシュに変換したら、Poserの標準ドールと同じ構造に分解整理し、各身体部位に同じ名称をつけた状態が以下の画面です。その際階層の順番も守ってください。Shadeのジョイント形状は必要ないので削除しておきます。この時、Poserの0フィギュアと同じように、大の字のポーズにしておくと、Poser側でのボーンの再設定が楽になります。

Shadeのキャラクタ形状でポリゴンメッシュに変換します。大の字ポーズにしておくとあとの作業が楽になります


次に、再びShadeからwavefront.objで書き出します。そのデータをPoserで読み込み、最初に書き出した標準ドールと同じ大きさに設定します。

Poser上で標準ドールと同じ大きさにします


Poserのセットアップルームを選択して、ロボット形状に、前回書き出して参照した標準ドールを呼び出し、そのドールのボーンを適用します。実際の手順は、ライブラリパレットでドールを選択するだけで終了します。階層エディタにはShadeのブラウザ名称がそのまま残っていますので、そのままボーンが適用されます。

Poserのセットアップルームでボーンを適用します


ジョイントエディタで影範囲の調整を行った後、「ポーズ」ルームに戻ると、ロボットは標準ドールと同様に操作できるようになるので、自由にポーズを取ることができるようになります。そのままシーケンサーを使って、キーフレームアニメーションを作ってもいいですし、それをBVHのモーションデータに書き出すことも可能ですが、ここでは「歩行デザイン」と呼ばれる、「モーションブレンド機能」を使って走らせています。まず、カメラをサブカメラに切り換え、引き絵にした状態で、「フィギュア」メニューから「歩行パス」を選択します。すると、「図形ウインドウ」に選択すると赤くなる蛇行したパス(通常は白)が作成されます。このパスの通りに歩行したり、走ったりしますので、パスの経路をドラッグして編集します。

「ポーズ」ルームに戻り、カメラをサブカメラにし、ズームを引いた状態にします


「フィギュア」メニューで「歩行パス」を選んで、モーションデータを作成します


次に、Poserの「ウインドウ」メニューから「歩行デザイン」を起動してください。下のようなダイアログが現れ、その上で実際のモーションキャプチャーデータが無くても、モーションのブレンドを行うことで、さまざまな姿勢や、動作の癖を追加した歩き方、走り方を設定することが可能です。この設定を行った後、シーケンサーの再生ボタンを押した結果が、冒頭のアニメーションになります。

赤い部分が選択された「歩行パス」です(非選択時は白色)「歩行デザイン」画面。モーションのブレンドなども可能です


Poserには、音声データでリップシンクとフェイシャルアニメーションを合成するトークデザイナーや、簡易のクロスシミュレータもありますので、一通りのキャラクタアニメーションの制作が可能です。

●PoserからShadeへもう1つの方法 PoserFusion

では、Poser内だけでしか動かないのでしょうか。実をいうと、通常はPoserからShadeへの一方通行ですが、もう1つ移植の方法があります。Poserのpz3ファイルを保存し、Shadeの表示メニュー中にある「PoserFusion」という機能でpz3ファイルを読み込むと、そのままアニメーション設定ごと読み込まれ、Shadeのレンダリング機能を使ったキャラクタアニメーションが作れます。

Poserへ移植したShadeの形状は、Poser上でアニメーションを付けたあと、再度Shadeに読み込むときになんの変換も必要ないので、この方法を利用する事をお勧めします。Poserにはないパーティクルや物理演算の機能を付加したシーンを作ったり、オリジナルの形状類をキャラクタ、メカとして制作し登場させる事も容易になります。

PoserFusionを使った読み込みでは、マテリアル設定別の形状分類と、Poserのアニメーションシーケンスが、そのまま読み込まれます。メリットとしては、テクスチャの管理が必要ないことや、材質変更がしやすい点、アニメーション移植の手間がかからないことが挙げられます。読み込むだけで、何の調整も必要としません。アニメーションの移植のためには、PoserFusionが一番簡単な手段です。

Poserのアニメーションシーケンスがそのまま読み込まれたShadeの画面


ただし、PoserFusionで読み込んだ標準ドールを、Shade上のマルチパスレンダリングの色分けで見てみると、可動域別にはなっておらず、テクスチャ別になっています。ブラウザのオブジェクトも、マテリアル別に並んでいるのがわかります。前回のwavefront.objwoを使ったものと異なるのがわかります。

PoserFusionで読み込んだ標準ドール。オブジェクトがテクスチャ単位に別れていることがわかります


wavefront.objで読み込んだ形状と、PoserFusionで読み込んだ形状では、ジオメトリ自体は全く同一ですが、形状の部品構成が異なりますので、用途に応じて使い分ける必要があります。このように、データの構造がわかるようになると、大半のソフトとは互換性がとれるようになります。3DCGとして根幹でやっていること自体には、どのソフトでも大差がないからです。

マルチパスレンダリングの結果はテクスチャ別になっているのがわかります


●最後に

最近はコンシューマ用のツールでも、複数のツールを適材適所で使い分けて作業することが多くなってきました。昔のように各3DCGソフトの仕様自体が五里霧中で、フォーマットが完全互換でないとダメというわけでもありません。各メーカーも、汎用フォーマット数種をサポートするようになって、共通のサポートフォーマットで互換が取れるようになったからです。

汎用3DCGソフト「Shade」に対して、ライブラリ型の用途別専用ソフト(例えば景観シミュレーションソフト「Vue8」や、人体作成ソフト「Poser8」)を組み合せて、従来の単体ソフトでは難しかった表現を可能にする事は、各々のソフトの得意とする所を利用する道でもあり、いろんな分野で活かせる部分でもあるかと思います。Shadeの形状入力のトレース感覚の強さというのは、ほかのソフトとは違ったものですし、直接その形の構造線を描くというのも、立体物を線でとらえることが多い日本人の感覚に合ったものでしょう。いままで、スプラインモデラーだからと敬遠されていた方も、ポリゴンモデルに変換する方法があることがわかれば、利用の幅も広がるのではないでしょうか。

その全ての方法をこの限られたスペースで述べることはできませんので、今までの連載では、なるべく少ない手間で作れるように説明してきました。最終回である今回は、形状変換の方法を事細かに説明しようとも思いましたが、むしろそうやって作った実例を1つ紹介したほうが具体的にわかりますし、詳細な方法は、弊社artistsideでの個別のトピック中に、回答や、ヒントとなる事例が沢山あるので、参照してみてください。

まだまだ申し上げたい事は多々あるのですが、説明の要領を得ない連載で申し訳なく感じております。そろそろ誌面が無くなって参りました。この続きはartistsideのSNSで、不明な点、御質問等、お待ちしております。では、この辺で。
《GameBusiness.jp》

関連ニュース

特集

人気ニュースランキングや特集をお届け…メルマガ会員はこちら