3DフォーマットのFBXファイル形式をDirectXで使う際に便利なURLとかメモ
日本語で書かれた概要の理解に使えるPDF
ここを読むと、レイヤーとかで実際に使われている情報などが解ります。
○X作ろうのサイト 基本的に参考になります。
私と使っているバージョンなど違うので微妙に違うみたいですが、参考になりますので一読しておきましょう。
DirectXとか関係ないのであれば、一番わかりやすいのは、実は・・・FBXSDKに入っているサンプルのImportScene_net[バージョン]のプロジェクトをトレースすれば、情報取得方法がわかります。
(バージョンの部分は自分のVCのバージョン)
基本は、最初のPDFとサンプルで問題なし^^
実験するときMAXとか処理が重い3Dアプリは効率が悪いので、メタセコイアでFBXプラグインを入れてやると効率があがりますよ。
horsetail メタセコイア FBX プラグイン
覚書です。
FBX SDK 20091がアップされていたので200611からバージョンをあげてみたのですが、うまくビルドできなくて悩んでました。
サンプルのプロジェクトはビルドできるので、SDKに問題はないみたい。
#include <klib/kerror.h> が読み込めないらしいので、インクルードパスをいじって解決しました。
サンプルのプロジェクトでは、
プロジェクト>???のプロパティ>構成プロパティ>C/C++>全般>追加のインクルードディレクトリに、.\..\..\include;.\..\..\include\kbaselib て書いてあるのを参考に変更して解決。
インストールしたFBXSDKからのローカルパスなので、私の場合はVC++のディレクトリの設定に追加しちゃいました。
↓こんなのを追加^^
略\FBX\FbxSdk\2009.1\include\kbaselib
で、問題なくビルド完了^^
こちらのページを見ながら試してみました。
工学ナビ
知らない人のためにArtToolkitって何が出来るのか簡単に書いておきます、これはUSBカメラなどで特定の記号を写すと画面の中で現実にCGが表示されたみたいに見えるライブラリでなんか楽しい。
で、特定の記号をプリンタで出力しないと当然CGが見えないわけですが、プリンタが設定されていないので、モニターに映った画像を使ってみました。
↓クリックするとデッカイ絵になります。
液晶ディスプレイにもかかわらず、ちゃんと写っている記号に立体が乗ってますね^^
指差でさわると、なんか四角がプルプルする@v@
なんかえっち
これで飛び出すペンギンとかで遊ぼうと思っています。
描画にはOpenGLが標準では使われています(苦手というかやったこと無い)ので、手慣れている充実のDirectXに書き換えたいと思ってます。
世の中にあるのではーって探してみたけど、公開されているのはないみたいです。
本家で公開してくれると助かるのだけどなぁ~っと思います。
ライブラリ眺めた感じ、OpenGLの部分は分けられているので問題なさそうかも?。
えーっとこの記事は色々あって中々アップできませんでした、DirectX化は直ぐに出来ました。そして世の中にもDirectXバージョンが公開されているようです。必要な方は探してみるとイイかも^^
以前にMAXからXファイルに書き出す~ってのを書いたのですが、
書き出し関係で自分自身が忘れてしまって&新しいことしたらマタマタ苦労しちゃったので手順を書いておきますヽ(;´Д`)ノ
まずは、Xファイル書き出しプラグインを手に入れましょう。
知らなかったのですが、XP用のDirectXのライブラリには MAX7用のプラグイン?がついてるらしいです。私の環境はまだwindows2000なので導入していません(近々XP導入予定)ので確認していません。
今回は以前までの XSkinExp.dle を用いています。
今使っているプラグインの問題点:
シンメトリ(鏡面)したら集約しておかないと書き出し中にMAXが落ちる
その他都合が悪いと?上記と同じように落ちてイジワルをする(iдi)
対策:書き出す前には必ずファイル名を変えてセーブ(=´∇`=)
MAXで書き出し手順:
(環境)
windows2000
3dsMax7 SP1 日本語版
Xファイル書き出しプラグイン XSkinExp.dle 使用
集約手順:
モデファイアリストの集約は「すべてを集約」するとアニメーション出来なくなります、Physique以下を集約してください。
実際に集約してみる。
Physique の一つ下で右クリックして、集約を選択。
警告windowがでます!
「はい」を選んで問題ありません。選ぶと集約できて以下のようになります。
簡単な注意:
Bipedを自分で見えなくしておかないと表示されてしまいます。
「アタッチしたノードを隠す」をチェックして隠しておきましょう。
これで、書き出し成功するはず^^
通常のボーンの場合の注意点:
モディファイアリストのスキンでエンベロープを付けてもアニメーションしない。
モデファイアリストのPhysiqueでエンベロープを設定しましょう。
(これに何時間も悩みましたよ・・・・('з')、おかげでその他の機能がわかって色々とMAXの勉強になりました)
Xファイル関係のリンク:
独自のエクスポーターを作成されているサイトペケポーター
プラグインの作成方法なども書かれていて非常に心強いサイト、もしも仕事で作成しなければいけないときはお世話になりたい^^(プラグインは出来れば作りたくないけど)
3dsmaxは標準の状態ではDirectXのX形式を書き出すことはできませんが、
プラグインを追加することで書き出せます。
ボーン入りのモデルを書き出すには、フリーのプラグインで問題ないのですが、
キャラスタを使った場合はきちんと対応していないのでこちらのプラグインは重宝します。
Microsoftから提供されているExtrasを使用してプラグインをビルドする方法です。
(.NET または VC6 と 3dmax6 を持っていないとだめです、VC6での設定は各自で置き換えてください )
まずは、Extrasを英語のサイトからダウンロードします。(日本語のダウンロードサイトからExtrasを選んでも開きます)
Extrasをダウンロードしたら、どこかに解凍しましょう。
解凍するとこんな構成になります。
Direct3Dのフォルダ内にどんどん入っていきます。
フォルダ 3DSMax versions 4 and 5 に目的のプラグインのソースコードが入っています。
親切にプロジェクトファイルも入っていますので、ダブルクリックで.NET(VC6)を起動します。
(.NETの場合はプロジェクトが古い形式だから変換するか聞かれますので、はいを選んで変換しましょう)
開いた状態です。
ここであせってビルドをするとエラーがでます。
max sdkにパスを設定しなければいけないからです。(maxをもっていない方はここまでです・・・)
オプションが開いたら、プロジェクト>VC++ディレクトリを選び、その後ディレクトリを表示するプロジェクトでインクルード ファイルを選択。
選択後自分の3dsMAXのディレクトリのmaxsdk\includeとmaxsdk\cssdk\includeを追加します。
画像では、EドライブにMAX6が入っています。(SDKはインストールしておいて下さい)
さらにディレクトリを表示するプロジェクトでライブラリ ファイルを選択。
選択後自分の3dsMAXのディレクトリのmaxsdk\libとmaxsdk\cssdk\libを追加します。
画像では、EドライブにMAX6が入っています。(SDKはインストールしておいて下さい)
ここで再度ビルドを行うと問題なくビルドが完了します。
ビルド後に最初に解凍したフォルダ内に debug フォルダができてその中に XSkinExp.dle その他のファイルができていると思います。
XSkinExp.dle だけをMAXのpluginsに移してMAX6を起動すれば問題なくキャラスタのXファイルが書き出せます。
できたかな?
ペンギンを書き出して DirectXのMeshViewerで見てみました。
XSkinExp.dleをダウンロードできるサイトです、書き出し方も書いてありますが、プラグインは少し前のバージョンになるみたいです。
確認はしていないのですが、MAXの7などでは書き出せない可能性があります。
dleをアップロードするのは、MAXSDKがMAXを所有する人のみになっているようなので問題がありそうで出来ません。
XSkilnExp.dleがダウンロード可能なサイト
http://homepage2.nifty.com/fluidmechanics/directx.htm
-流体力学研究所-さんのURLです。
非常に参考になるDirectX関連の記事がありますよ、更新はされていないようですが・・ご多忙なのかも知れません^^。
MAXで作成した際に注意点を書いておきます^^
シンメトリ(鏡面)したデータをそのまま書き出すとXファイルのエクスポート時にエラーがでます。
必ず、集約してください。
これをしないとエラーがでますよ^^
Posted by: タカドゥー at 2005年07月09日 15:22