DirectXエクスポータ(Ben氏が開発した)

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2006/8/9 0:46
Mou  半人前   投稿数: 36
 こんばんは。みなさんにちょっとした相談事があります・・・
XFileExporter(以下Exporter)の開発元Ben氏にExporterについて聞きたいことがありメールをしたいのですが、私は英語があまり得意ではないので悪戦苦闘してます(具体的に告白するとエキサイト翻訳で あれこれと )。
原稿はあまりながくない(と思う)ので、もし翻訳を助けていただける方いましたら一言声をかけてください。
よろしくお願いします。

 一応、私の調べた結果をココで報告したいと思います。
 
 出力結果を(普通のテキストなのでメモ帳などで開けます)見てみると、アーマーチュアの階層構造は出力されているのですがアーマーチュアの子供にしているメッシュは出力されていません!
 いや、もちろんメッシュ自体は出力されているのですがアーマーチュアの階層構造には組み込まれていないということです。
 アニメーションセットも、適用するフレーム(メッシュの入れ物、Blenderだとオブジェクト(単なる入れ物)と呼べばいいのかな?)の名前がアーマーチュア(の右腕とか、左腕とか)になっているのでアーマーチュアに組み込まれていないメッシュは回ったり、移動しないわけです。
 このことは、OutLinerからも分かります(階層構造を出力するモードが分かりやすいと思います)。

 結局。この出力結果を避けるには編集したモデルを出力する前に階層構造を組みなおす(メッシュを、きちんと対象のボーンの子供にする)必要があると考えられますが、その方法が見当たりません。
 もし知っている方がいましたら一言お願いします。

「文章じゃ分かりにくい!」って人のために一応図解をのせておきますね

オブジェクトの中身(以下省略します)
↓オブジェクト
    ↓メッシュ
マテリアル
その他いろいろ

階層構造(ブレンダーだとこんな感じ?)
「希望する出力結果」
アーマーチュア(ルートフレーム)
↓腰(重心)
| →腰オブジェクト←※このように各階層に
| オブジェクトが組み
込まれていて欲しい
| →ベルトオブジェクト
| ↓胴体
| | →胴体オブジェクト
| | ↓右上腕
| | →右前腕
| | ↓左上腕
| | →左前腕
| ↓右もも
| │ →右ももオブジェクト
| │ ↓右ふくらはぎ
| │ →右足
| ↓左もも
| | →左ふくらはぎ
| | →左足

「実際の出力結果」
アーマーチュア(ルートフレーム)
↓腰(重心)
| ↓胴体
| | ↓右上腕
| | →右前腕
| | ↓左上腕
| | →左前腕
| ↓右もも
| │ ↓右ふくらはぎ
| │ →右足
| ↓左もも
| →左ふくらはぎ
| →左足
→腰オブジェクト ←─このように、
→ベルトオブジェクト←アーマチュア直下
→胴体オブジェクト ←に全部のオブジェクトがきてしまう
長くなってしまってすいません

投票数:3 平均点:3.33
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2006/8/10 8:57
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4405
リリースノートが滞っているのでアレですが、要は、

I want to convert meshs that are parented to bones in an armature into a frame that was the armature.

ってことでしょうか?

投票数:5 平均点:2.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2006/8/10 9:36
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4405
あ、違うか。
I want to convert a mesh that is parented to bones to a child frame of that bone's frame. ですかね?

引用:
Armature Frame
引用:
Bone 1 Frame
引用:
Mesh Frame

引用:
Bone 2 Frame

引用:
Bone n Frame

こんな感じでしょうか。Xファイルの構造もう忘れちゃってます。(汗
投票数:3 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2006/8/10 20:23
Mou  半人前   投稿数: 36
 早速の返信ありがとうございます。 おぉ〜・・・そんな感じだと思います(汗。「(私は)骨の子供のメッシュを出力したいんだけど?」って感じで良いんですよね
 おそらく、うまく出力されない簡単(先行者のファイルそのまま渡すわけにもいかないので)なブレンダーファイル(を添付して)と「階層構造が思い通りに出力されなくて困っています」ということを伝えることができればBen氏には通じるのではないかなと考えています。
 ちなみにこのスレッドを作成してから改めてBen氏のページを見て例としていくつかブレンドファイルと出力結果のxファイルがあったのでそれを全部見てみました。 キチンとアニメーションまで出力されてたのでびっくりしたのですが、その原因はすぐに分かりました

 私がうまく出力できず困っているファイルとBen氏がサンプルとして用意されたファイルに違いがありました。
 私が配布したファイルはただのメッシュ。個々のパーツ事態は変化しないメッシュで、ロボットや戦車などがその分類に入るものです。
 Ben氏が配布されていたファイルは「スキン・メッシュ」。スキン・メッシュは人間の体などに向いてる表現形式です。筋肉がもっこりする腕等はこの表現形式でないと制作は困難でしょう。
 参考として、スキン・メッシュの簡単な例を
 スキンメッシュ────
 |  骨情報{
 |    中華キャノン{
 |    }
 |     背骨{
 |     } 
 |    右腿{
 |     }
 |    左腿{
 |     }
 |   }
 |  メッシュ{
 |    頂点データ{
 |     頂点沢山
 |    }
 |    頂点インデックス(三角形){
 |      頂点の番号沢山
 |    }
 |    スキンメッシュヘッダー{
 |       頂点にかけられる座標変換の最大数
 |       面にかけられる座標変換の最大数
 |       骨の数
 |    }
 |    スキンウェイト{
 |      適用する骨の名前
 |      適用される頂点の数
 |      適用される頂点の番号
 |      骨に適用される各頂点の重み
 |      骨の空間に座標変換するのに必要な行列
 |    }
 |  }
 ────────

 ざっとこんな感じの構造になっています(ちょっと投げやりな感じですが )めんどくさかったのでブラケットで一単位の構造を括っています。
 結局のところ、あの先行者を例にすると、全てのオブジェクトを一つのオブジェクトに結合した後自前でグルーピングを行うことによって一応の解決とすることもできます。
 ですが、少々無駄な作業になってしまいますし、何より、スキンメッシュは必然的にデータが多くなりパフォーマンスの面で少し劣るのであまり沢山使うのは避けたいところです。
 最初は、ただ単に階層構造の設定方法について聞こうと思っていました。ですが、今は「スキンメッシュを避けることはできないのか?」も含めて聞きたいと思っています
 
投票数:5 平均点:4.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2006/8/12 8:59
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4405
> Bone Parented な Obect
D3Dがスキン専用の構造をもっていて、そこに Object 置けないとかそういう状況のような気が。

だから下手するとアニメーションキーからBone構造をたどってそのBone の空間行列まで求めてそこにObjectの行列を…といった作業を自前でしなきゃいけないから面倒で放置してるんじゃないのかと今死ぬほど眠い頭で適当に考えてみました。

ちらしの裏でしたね。すみません。
投票数:5 平均点:4.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2006/8/12 10:03
Mou  半人前   投稿数: 36
 う〜ん・・・。Benさんが書いたソースを読み解いてみようとしてるのですが、Pythonは言語仕様覚えるの初めてなので 。言語仕様よりも、オブジェクトのメソッドがどうなってるんだって話ではあるとは思うんですが。まだ全体的にしか眺めてないのでも少しお待ちを

 ただ、各オブジェクトからデータを取ってきてそれをただ単に文字コードとして吐き出してるんじゃないかと思うんですけどね。確か、DirectXSDKだと何かしらのデータをxファイルとして吐き出してくれるクラスがあったような気もします。しかしながら、C、C++のライブラリをリンクするのは返ってめんどくさそうな・・・。まだPythonAPIリファレンスを詳しく読んでないのですいません

では
投票数:4 平均点:5.00

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki