Xファイルを再生するスレ
■ このスレッドは過去ログ倉庫に格納されています
DirectXで3Dゲームを作る奴らの登竜門、Xファイル。
DirectX7の時は勝手に再生してくれたが、
今は参考になるサイトも無し、公式のサンプルもわかりにくいで
非常にやりがいのあるモノだと思われ。
サパーリわからないやつ、クヲータニオンって何ぞや?ってやつ、
ノンスキンXファイルなら再生できたけどスキンメッシュは再生できない奴、
がむばろう!
一、諦めずに粘り強くがんばれば絶対できる
一、出来たときの喜びはサイコーだYO
公式サイト
ttp://www.microsoft.com/japan/developer/directx/default.asp
情報板
ttp://www.bio100.co.jp/dev.html
ttp://isweb8.infoseek.co.jp/computer/bbx/
さあ語れ!! なんかスレ立てられないので誰か変わりに立ててください
////////////////////////////////////////////////////////////
タイトル:【ボーン】スキンメッシュ勉強スレ【デフォーム】
本文:
3Dゲーム制作の初心者にとって
ボーンデフォーメーション・スキンメッシュは一つの山ではないかと思います。
このスレは、主要な3Dアニメーションツールで作ったファイルから
モデルやモーションを読み込み、 多階層のキャラアニメーションを
自由に制御できるまでを学習していくためのスレです。
アニメーション付きXファイルは使わず、独自形式で構築します。
LightWaveのシーンファイルを読み込み再生するまでを一つの目標とします。
///////////////////////////////////////////////////////////////////
お願いします。 その話題こそ、このスレで行えば良いのでは?
激しく重複スレになる予感 DX9のモーション付きXファイルの読み込みと再生を
丁寧に説明してるサンプルやサイトってどこにも無いから
誰か作って売ってくんねえ?
(c/c++でVCとか使わなくてもコンパイルできるやつ)
こーゆー情報欲しがる房多いから、
ttp://www3.llpalace.co.jp/dp/index.htm
とか、同人サイトとかで売れば、結構売れると思うけど。
千円以下ならオレ買うよ。 お前みたいなのが100人いるなら考えても良いんだがな・・・
まぁそんな奴等に売ったところでメリットなんてほとんどない・・・orz ここでも参考にすれ。
ttp://tpot.jpn.ph/t-pot/program/44_motion/motion.html
>ということで、今後『初心者なのですが、ファイルでアニメーションをするには
>どうすればいいですか』という『あきらめろ』といいたくなるような質問が減ってくれればいいと思います。 >>107
Xファイル読み込み・再生できるぐらいじゃ金取れんだろ。 >>108
いると思うよ。これからDX初めて、モーションで挫折するオレみたいな連中これからも増えると思うし。
プロ目指してる訳でもない、趣味か遊びの感覚で金払って楽しむって奴いると思う。
ラジコンロボット買ってプログラム組んで遊ぶ、みたいな。
メリットねえ・・・小遣い稼ぎにしちゃ少ない?
>>109
それをDX9でやろうとして挫折したんだ・・・
一応いまも挑戦してるけど、エラーを1つ1つ消していっても、次から次へとエラーが・・・
>>110
入門書とかテクニック集とかみたいに、まとまった情報を高額で売るより、
情報を個別にして売るってのはどう?
今オレが欲しいのはモーションだけだけど。 そもそも調べようとしない奴にレクチャーしてもな・・・ いや、ずっと調べてる最中。
それで、1つ1つやってんだけど、なかなかね。
で、金払ってその時間短縮できるような教科書みたいのが欲しいと。 >>107
俺もモーション付きXファイル挑戦してみるかな おう互いに頑張るべ。
↓もう知ってるかもしれんけど一応オレが参考にしてるサイト
DX9なら、ここの『DirectX9のアニメーションな話』を参考
ttp://www.nomuraz.com/denpa/program.htm
DX8なら109が教えてくれたやつと、ここも
ttp://www.twin-tail.jp/contents/vsdx8/d3d/031/index.htm
自分のプログラムでブルースクリーンにしちった・・・なかなか進まねえや
多分すぐに抜かれるな ここってXファイルのアニメーションを再生するって事なのかな??
はじめての3Dゲーム開発って本に書いてあるんだけど・・・?
この本自体のサンプルはたまにコンパイルできなかったり動かなかったりするけど
アニメーションのところはこの前やったら動いたんで問題ないはず。
いま、自分週末プロジェクトで、
Xファイルのファイル読み込みをやってるのでちょくちょく報告しまつ。
とりあえず、Xファイルで必要そうな構造をあげてみますた。
Frame-FrameTransformMatrix-Matrix4x4-float16
-Mesh-nVertices
-Vector-xyz
-nFaces
-MeshFaces-nFaceVertexIndices
-faceVertexIndices
-MeshTextureCoords-nTextureCoords
-TextureCoords-uv
-MeshNormal-nNormals
-Normals-xyz
-nFaceNormals
-MeshFaces-nFaceVertexIndices
-faceVertexIndices
-MeshMaterialList-nMaterials
-nFaceIndexes
-FaceIndexes
-Material
-XSkinMeshHeader-nMaxSkinWeightsPerVertex
-nMaxSkinWeightsPerFace
-nBones
-SkinWeights-transformNodeName
-nWeights
-vertexIndeices
-weights
-matrixOffset-Matrix4x4-float16 AnimationSet-Animation-AnimationKey-KeyType
-nKey
-TimeFloatKey-time
-FloatKey-nValues
-Values
-AnimationOption-OpenClosed
-positionquality 意味を理解してないとまずそうなもの一覧
@Frame/FrameTransformMatrix
ノードとか階層とか呼ばれるものMatrix4x4がそれ。ボーン。
AMesh
ポリゴンメッシュ。ポリゴンを描くのに必要な塊。
BnVertices/Vector
頂点情報
CnFaces/MeshFace
面情報
DMeshTextureCoords
UV。テクスチャを貼るのに必要。
EMeshNormal
法線情報。ものによっては無いかもなw
FMeshMaterialList
マテリアル情報。テクスチャとかマテリアルと面の関連情報等
GXSkinMeshHeader
スキンメッシュヘッダぁ?ボーンに影響するウェイトの数とかそんなん。なんだろ?よくわかんね。
HSkinWeights
スキンメッシュのためのウェイト情報。ボーンの影響を受ける各頂点の重みとかそんなん。なんとなく書籍でみたことあるぞ。
IAnimationSet
1つのアクションを記述する最小の単位。走る。飛ぶ。投げる等
JAnimation
各Frameに対するアニメーション。回転。平行移動。拡縮。
KAnimationKey
だからキー。
LAnimationOption
ループするのかしないのか。滑らかなアニメーションなのか線形アニメーションなのか。 えーと、構造を把握してわかったこととしては、
・以外と単純なフォーマットかもしれない
・スキニングができなければ意味がないのでボーンとウェイトを探していたが
どうやら、ボーンはFrameと同じ扱いらしい。(例え同じ機能であってもこれは分けるべきだったんじゃないか?>MS)
やってみなきゃわからんことは
・スキニングをやるのに最低限必要な情報とその関連がまだ見えてない。
・メッシュを描画するのに必要な情報ってのはMeshの階層内の情報だけで完結するのだろうか?
・要はXFileにある情報を使って、スキニングをやるのに必要な情報が見えて無い。 >>118-122
乙であります。
お前見てたらモチベーション、一時的にキープ出来たわw >>123
過去形なのか・・・orz
今日はXFileをどうやって読み込むかを考えてみた。
読み込みながらデータセットすると使い道がねぇよな。
どっちにしてもこのままじゃシェーダも使えねぇし、
XFileでシェーダもくっつけて出してくれるソフトも無い以上このフォーマットから
取れるデータで魅力があるのはモデル情報とスキニングとアニメーションまわりのデータだけだ。
つーわけで、1回、データを自作汎用データに吐き出してそれを使う形にしたい。
つまり、
XFile→自作汎用データに移す→自作フォーマット書き出し
という風に一度保存して。
自作フォーマット→ゲームで読み込み→ウマー
と、いう形にしたい。 んで、自作汎用データで必要っぽいクラスを考えてみた。
・自作汎用データクラス
・自作汎用ノードクラス
・自作汎用メッシュクラス
・自作汎用マテリアルクラス
・自作汎用アニメーションクラス
今後、Xファイル以外のフォーマットのファイルを読み込みたびに使えるような形にしたいと考えている
つまり、
Xファイル →自作汎用フォーマット
○△ファイル →自作汎用フォーマット
■○ファイル →自作汎用フォーマット
・
・
・
と、いう風に自作汎用フォーマットを通すことで自分のゲームでは常に
自作汎用データから作る自作汎用ファイルのみの読み込みで作れるようにしたいと考える。
また、自作汎用フォーマットから自作汎用ファイルを作る際になにか入れられるようにすれば
便利かなとも考えてる。 そのへん真面目にやろうとするとモチベーション続かないから
D3DXに頼ってさっさとゲーム作った方が方がいいと思うよ。 俺Xファイルしか弄ったことなくて他のボーンアニメーションのフォーマット知らないんだけど
>>121の話について、
ボーンってフレームとは別にすべきものなの?
両者ってどう違うの?
教えてくれまいか >>127
まあ、俺も勉強不足でようわかってないだけかもしれんけど。
この構造のおかげでXファイルってスキンメッシュと普通のメッシュって共存しにくくなってるんじゃないかな?
例えば3Dデフォルメチンコを描画するのに
○
□□□つ
○
こう↑やって、ボール2つ(スキンメッシュではない)に、チンコ1つ(スキンメッシュ)の物体を作るとするわな。
そんときのXファイルの構造を考えると、ボールとチンコをわけるすべはおそらくないんじゃないかな?
なので、フレームを発見したとしてもボールはそのまま描けるけど、
チンコの方はフレームやボーンを見つけても描画しないようにしなければいけないようになってる希ガス。
まあ、この例はわかりやすいけど物によっては空ノードなのかボーンなのか
物体につける名前を特殊にしておいてくれないと判断しにくいね。って状況があるのではないかと考えたりして。 いちお書いとく、
CreateGame〜陸海空オンライン〜
有志によるMMO製作です!
ただ今、3Dグラフィッカ募集中♪
力ある奴だけこぃ!
おまえら、10年くらい遅れてまつよw >>130
そんな事より130よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
このあいだ、サロンの陸海空スレ行ったんです。陸海空オンラインスレ。
そしたらなんか四角がいっぱい書き込んであってレス付けられないんです。
で、よく見たらなんか四角の中に●や○があって、次黒番です、とか書いてあるんです。
もうね、アホかと。馬鹿かと,、オセロかよ!と。
お前らな、オセロ如きで普段来てない陸海空オンラインスレに来てんじゃねーよ、ボケが。
オセロだよ、オセロ。
なんか将棋指してんのとかもいるし。サロンで将棋か。おめでてーな。
よーし先手で穴熊しちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、お前の勝ちでいいから将棋・チェス板でやれと。
陸海空オンラインスレってのはな、もっと殺伐としてるべきなんだよ。
ちょっと企画に参加したらいつドアフォとチャットセックスが始まってもおかしくない、
挿入するか掘られるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっとスレが落ち着いたかと思ったら、ドアフォが、完成目前だね、とか言ってageるんです。
そこでまたぶち切れですよ。
あのな、なんて名無しageなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、age、だ。
お前は本当に作る気があるのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、声優をナンパしたいだけちゃうんかと。
陸海空オンラインスレ通の俺から言わせてもらえば今、このスレの間での最新流行はやっぱり、
潜入、これだね。
ドアフォさんと一緒にMMO作りたい、女子高生です♪よろしく(^^)/ 。これが通の頼み方。
潜入ってのはドアフォの素が見れる。そん代わりプライド少なめ。これ。
で、それでネカマ。これ最強。
しかしこれをするとドアフォに徹底マークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、130は、「宇宙ヤバイコピペ」でもいじってなさいってこった。
いつもドアフォがご迷惑をおかけしております。頭がおかしいので勘弁して下さい。
■CreateGame〜陸海空オンライン〜
永遠の製作中MMORPG(ナンパ目的の釣り餌)。
公式HPはDragonforce(以下ドアフォ)が女を捕獲するためだけに存在するナンパサイト。
製作メンバーは自演と工作員と被害者のみ。
一度製作メンバーに入ってしまうと製作から雑用、下の世話まで全てを任せられる。
又、メンバーに入る気がなくても勝手にメンバーに加えられる。
ドアフォは命令と常時セクハラ・自慢・誹謗中傷・ナンパ・チャットエッチ・ストーカー・無差別宣伝書き込みのみ。
気に入らない発言はすべて削除。著作権無視。
特に女性の方は被害にあう前に関わらないよう注意しましょう。危険です。
ストーカー行為により既に被害者も出ております。 ちょっと間違えたw
Frame-FrameTransformMatrix-Matrix4x4-float16
-Mesh-nVertices
↓
Frame-FrameTransformMatrix-Matrix4x4-float16
-Mesh-nVertices
-Frame
修正 今日はXファイルの読み込みをやった。
ちなみにまだ終わって無いw
その際に面倒臭かったこととよくわからんかったこと
・なんか Frame FrameName { とかなってるけどこのFrameNameっつーのが
あったりなかったりしてむかつく。
次のトークンの始めの文字が括弧かそうでないかで判断するしかないのだろうか?
なんで
Frame{
Name{"objectName"}
FrameTransformMatrix{
・・・
}
みたいなフォーマットにしなかったのかわからない。
Xファイルのフォーマットを考えた奴はアフォだと思った。
・上の例もそうだけど、わざわざトークン+デリミタ(VBのSprit関数をイメージしてくれ)で綺麗に読み込め無い
フォーマットのファイルを作っちゃうところがわからない。
それともこういうフォーマットを綺麗に読み込める技(みたいなの)があるのだろうか?
・ファイルの冒頭のtemplateの使い方がよくわからんかった。
結局、型なんて定義してあったって読み込み側が対応してなけりゃそれまでだと思うんだけどな。 みんなはXファイル読み込んだ後どんな形でデータ持ってる?
俺はフレーム・ボーンとメッシュを全く別のシステムで扱って
メッシュの着せ替えが簡単にできるようにしてある。 テンプレートがあれば拡張された未知のデータがあっても、
とりあえずデータを受け取るだけ受け取って読み飛ばすことが出来るが、
その程度の用途も理解できないのか。 >>134
アンタ自前でローダー書いてんの?
よーやるよ。 >>135
それやろうとデザイナと考えてたら、
デザイナボスが「なに、いい加減な仕事してんだ。てめー!」って激怒したことがある。
まあ、動機が「面倒臭い」だけだからなw
ちゃんと1つ1つのモデルにあったボーンいれなきゃね。(それは俺等側の苦労じゃないけどw)
>>136
いや、だから、チャンクだから読み飛ばしは楽にできるじゃん。
で、別に受け取る側が想定してないようなデータを受け取ってもしょうがないと思うんだけど。
Xファイルのテンプレートは「このファイルはこういう型に基づいて作成されましたよ。」
って意思表示の為だけだと思うがな。
>>137
いや、DirectXに頼ってもいいんだけど、
大して助けちゃくれないっぽいから自前でやっちゃう。 データの形式はテキストでなくバイナリも存在しているわけだが、
後から拡張されたり、独自に埋め込まれた未知のデータを
テンプレート無しでどうやって読み飛ばすのか説明してくれ。
どこがデータ数を示しているのかすら分からないんだぞ?
しかもバイナリの場合、データの終端は自分でカウントしないとどこにあるか分からない。
テキスト形式しかやっていないから、テンプレートの必要性が分からないわけだが、
ごたごた無知を晒す前に圧縮バイナリまで対応してみろ。 結論:自前ファイルフォーマット作って読み込みもシリアライズも自分でやった方がマシ
>>139
いや、そもそもXファイルでバイナリである必用がないでしょ。
結局、吐き出せるツールがないからXファイルですべてをまかなうことができないわな。
と、すると、わざわざバイナリで出す意味がまったくない。
>後から拡張されたり、独自に埋め込まれた未知のデータを
>テンプレート無しでどうやって読み飛ばすのか説明してくれ。
てゆうか、そんなファイル読み込んだところで受け側で対応できてないんだから意味無いでしょ。
っていうのが俺の主張なんだけど?
テキストだけなら別に読み飛ばすとかそういう問題はどうでもいいしね。
つーかね。Xファイルで将来云々心配すること自体ナンセンスだと思うんだけど。
正直、あんまり上手くできたフォーマットじゃないしね。
スキニングに対応しててたまたま吐き出せるツールがXファイルに対応してるってだけで
それ以上の特典は全く無いわけだし。 受け側が対応していなくても、例えば独自のデータを定義して埋め込み、
MeshViewer等で確認するときに独自のデータは無視していいから、
形状だけ確認したい場合に読み込んでくれなかったら困るだろう。
そもそもテンプレートの存在意義について無知を晒していたから、
その馬鹿さ加減を教えてやっただけの話なんだが、何故そこまでアホなんだ?
X-Fileが合理的かどうかは関係ない。
テンプレートはX-Fileで必用、何故必用なのか分からなかったのは無知だから。
ただそれだけの話なんだが、自分は使わないという言い訳は見苦しい。 >>143
>受け側が対応していなくても、例えば独自のデータを定義して埋め込み、
>MeshViewer等で確認するときに独自のデータは無視していいから、
>形状だけ確認したい場合に読み込んでくれなかったら困るだろう。
これはテンプレートの利点じゃなくてデータチャンクがあるデータならなんでもそうでしょ。
テンプレートの存在意義はさっきから全然説明できてないじゃん。 論点をすり替えるな。
テンプレートが無いとバイナリの場合データが読めないんだと言っているだろう。
利点の話などしていない。
X-Fileではバイナリだとテンプレートが定義されていないと未知のデータが読めない。
もう一度言う。
X-Fileではバイナリだとテンプレートが定義されていないと未知のデータが読めない。
頭の悪いお前のためにもう一回。
X-Fileではバイナリだとテンプレートが定義されていないと未知のデータが読めない。
それを知らずに使い方が分からないと言うから、どういうときに使うか示しているのだが、
頭が悪いにも程がある。 テンプレートの利点は汎用パーサを書いたときなどに、
たとえば小数点だったら小数点のデータがパーサから、
簡単に引き出せるように作れることです。
あらかじめテンプレートの形式通りにデータの固まりを作っておけば、
受け取り処理はその固まりから、自分の確保したメモリー上にコピーするだけで済みます。
その場所に応じていちいち読み込みのコードをカスタマイズする必要が無くなります。 昔カスタマイズをカニタマイズとギャグで言ってみたら・・・ >>145
それじゃ、テキストのXファイルの冒頭に定義してあるテンプレートはやっぱり無駄なんだな? テキストの読み込みだけしかやっていないのが井の中の蛙だと存分に理解できただろう。
自分に必要なければ他人が必用とするかどうか考えず、勝手に必要ないと思いこんで無知を晒す。
頭の悪い奴はこれだから困る。 >>149
結局、テキストのXファイルの冒頭のテンプレートは全く意味がないんでしょ。
ありそうにいうなよ。 意味を付けるかどうかはパーサの実装次第。
X-File自体にはテンプレートが必用で、テキストを読み込んでいただけの井の中の蛙には必要性が分からなかった。
ただそれだけの話。
本当に頭が悪いな。 >>151
アンタDirectX関連スレで
よくスレ荒らしてる人? >>151
テキストのXファイルのは意味無いだろ。
テンプレート部分まるまる削除したってもんだい無いぞ。
必用ねーじゃん。 テンプレートの使い方に関してはきちんと書いたのですが、
スルーされているのは何故でしょう?
テンプレートの仕組みがないとデータを読み出すのが非常に不便ですよ。 >>154
不便もなにも、そもそもMSの提供するtiny.xからいって
template XSkinMeshHeader
template VertexDuplicationIndices
template SkinWeights
の3つしか定義されてないんだよね。
こういう中途半端なのもあれば、
テンプレートの定義がまったく無いXファイルも存在するわけだしね。
それともバイナリのXファイルの話してる? わたしのためにカスタムテンプレートを書き込む時のことも考えてあげてッ >>155さんはご存じないのかもしれませんが、標準のテンプレートは、
SDKのヘッダファイル中にあらかじめ定義されています。
それを利用しているプログラムに関しては、
テンプレートがファイル中に存在しなくても問題ありません。
ですのでSDKのサンプルをご覧になれば分かると思いますが、
テンプレートを利用していないわけではありません。
また、カスタムテンプレート以外にも理由として、
X-Fileの初期はスキンに関するパラメータは存在しませんでした。
今後のバージョンアップで新たに標準仕様としてテンプレートが追加されるとも限りません。
しかしテンプレートに対応した読み込みのコードを書いておけば、
それらを利用するプログラムを書くのが容易になります。 D3DXの場合、libだった昔のバージョンだとよく分かるのですが、
D3DRM_XTEMPLATESがリンク待ちの状態になっています。 絶対役に立たないもんの擁護によくそんなに必死になれるなw
まあ、それは置いておいて、今週の報告だな。
ちなみにそろそろ「チラシの裏にでも書いてろや」とか言われそうだが、
俺のレポートが俺と同じことをしようと考えてる奴の役に少しでも役立ったらいいと思う。
まあ、あんまり進捗具合がよくないのは花火だとか祭だとか色々あったせいだろきっと。
今週はメッシュデータを読んでみたが、こいつもすんなり読める形じゃ保存されてねーな。
一番面倒臭いところがマテリアルとその他のデータの関係だな。
マテリアルが複数あるタイプのメッシュだとマテリアルごとにわけねーと駄目だよな。これ。
使うシェーダも別かもしんねーし。
なんだって、いっしょに入れてあんだよ。
メッシュごとにマテリアル1つにして、マテリアルが別のデータは別メッシュにしてくれればよかったのに・・・。 XFileはDX9でまたいくつか拡張されたが、
それに関する情報、サポートは無いに等しい。
(本来ならrmxfguid.h、rmxftmpl.hの拡張を用意するべきだが
そんなものはない。)
MSの意図としては、XFileはMSの用意するフレームワーク又は
D3DXMesh経由で使って欲しいんだろう。
はっきり言って今がXFileを捨てる時期だな。
WGFが正式に発表されたら、一緒に代替フォーマットも発表されそうだしな。 >>160
Xファイルスレでいうのもなんだが、
俺が考えるにその頃にはゲームPGが描画出力ルーチンに関していじることは
ほとんど無いとおもうぞ。
シェーダなんて所詮モデルに貼り付けるか、画面に効果入れるかぐらいなのに、
汎用化するのにいつまでかかってんだよ的なものは今の時点ですらある。
誰もが感じてることだと思う。
国内でもコンシューマの方でゲームエンジンを積極的に使う動きがでれば、
当然、CGWORLDなんかを通して、PCの方でもみんなに
「そういうものを使えばこんな苦労なんざしなくてすむ」的なことが行き渡るでしょ。
いままで、そういうことを阻んできた原因にPCのスペックの問題があるけど、
MSの新OSがDirectX9標準装備ということでこれは一気に解消されそうだ。
なんとノートPCの方でもすでにATI、NVIDIA共に新OS対応済み。完璧。
問題は新OSが普及して、ゲームエンジンでメジャーな物が選定されるまで時間がありそうだということ。
(もちろん国内でという話ね。日本語のドキュメントがあって、扱いやすくて云々)
#あ、WGFなんて当然スルーね。もう、そういう時代じゃないだろ。
なんで、それまでの間の暇つぶしとしてXファイルでも読んでモデル表示して
なんか記念に(?)フリーソフトのゲームでも一本出せたらいいな。とか考えてるわけ。 >>159
理由をきちんと説明されても目を閉じ、目をふさぎ、
ひたすらテンプレートの存在を否定比続ける。
自分が間違えたことを間違えたと認められないとは憐れすぎる。
今回もまたアホなことを言ってるし。 今回も言わせて貰えば、マテリアルごとにメッシュが別れていないのは、
分ければ重複頂点が増えてデータが無駄に増えるからです。
ファイルに記憶されているデータはどちらにせよ、
座標やUV等の組み合わせでデータそのものを再構築する必用があり、
マテリアルの割り当てだけ組み合わせを作っておいても何の意味もありません。
どちらにしても読み込んだ後に最適な形に直す必用があります。
といってもテンプレート同様、また他人の言うことには耳を塞ぐんだろうなあ。
こういう人ってはっきり言って成長しない。 いい加減放っておけ。こういう物事の価値をさっさと決めて、
それに関わる連中を馬鹿にする輩には関わらないほうが良い。 >>163
>マテリアルの割り当てだけ組み合わせを作っておいても何の意味もありません。
おいおい、たかが重複頂点ごときでマテリアルごとにわかれてるメッシュを
わざわざくっつける方がどうかしてるだろ。
これは俺の経験だけど、マテリアルごとにわかれてるモデルは扱いやすいよ。
何の意味もありませんとかいってるけど、後、どんな手間を想定して何の意味も無いって言ってるの?
それとXファイルって重複頂点気にするほどファイルサイズって重要か?
もし、こんなこと気にしていまのフォーマットなら制作者のセンスないと思う。 >>161
どうだろうねぇ、
例えば、3DAPIの一個上のシーングラフものとか
いろいろ出てるけど、あんま流行ってなさそうだしねぇ。 >>165
重複頂点を気にする必用がなければ、インデックスすら必要なくなる。
もう支離滅裂で見てられない。
どこにマテリアルごとにメッシュを切り分けて出力するファイルフォーマットがあるんだよ?
少なくともMAXやLWに標準で出力できる形式にそんなフォーマットはない。
そもそもファイルはあくまで保存用データであって、レンダリング直前データではない。
扱いやすいも何も、必用ならデータを自分で並び替えればいいだけだし、
その程度のことで、わがままとしか思えない自分勝手な文句を書き込む理由が分からない。 >>167
>もう支離滅裂で見てられない。
はぁ?支離滅裂なことなんて言って無いじゃん。
君がそういうことにしたいだけでしょ。
だいたいここまでの流れだって、俺が
「面倒だねぇ」
っていってるところに
「それはお前が馬鹿だから」
ってつっかかってきて
結局、君の変なアドバイスで何1つ特になったことは無いよ。
で、しまいにゃ
>そもそもファイルはあくまで保存用データであって、レンダリング直前データではない。
この↑発言。
「そうなってるんだから仕方がないだろ。文句ばっかいってうるせーんだよ。」
とでもいいたいのだろうか?
既存のフォーマットの無駄なところを探して、もっといい方法を考えるとか絶対なさそうだね。君。
すでにあるもので思考停止してるみたいだし話しても無駄だし。
なんの利益にもならないからもう消えていいよw >>167その他は中傷が多すぎるし、
とにかく言い争いに勝つことだけが目的になってるし
もういい加減やめて欲しいんだけど。
>>168
結局無駄なところを探すどころか、無駄な物を増やそうとしているし、
> もし、こんなこと気にしていまのフォーマットなら制作者のセンスないと思う。
マテリアルごとにメッシュの切り分けているファイルフォーマットの方が、よっぽどセンスが無い。
そうでなければならない理由があるならともかく、面倒だからというのは理解に苦しむ。
そもそも新しいフォーマットを作ろうにも、例えばMAXでプラグインを作るとすると、
メッシュに対してマテリアルが割り当てられているデータが入っているので、
結局出力時に並び替えるか、読み込み時に並び替えるかという違いでしかない。
面倒は変わらないのに、わざわざ無駄なデータが増えるファイルを作る必用がない。
読み込む人のためとか主張するかもしれないが、そういう部分が面倒な人のために、
LWのように読み込み用のソースコードを提示するという手段もある。
重複データの固まりのようなフォーマットを作る必用はない。
そうなった理由がきちんとあるのに、それを考えようともせず、
他人のフォーマットにセンスがないと言い放つ。
それがもっといい方法を考えるということなのか。 >>170
はい!先生!
>メッシュに対してマテリアルが割り当てられているデータが入っているので
こんなデータ必要なら、あらかじめマテリアルごとにメッシュをわけておけばいいのではないでしょうか?
それに余計なデータ云々の話をするなら、Xファイルの法線データの存在も疑問が残ります。
なぜ、こんなものついてるのでしょうか?
その場で頂点から生成すればいいのではないでしょうか? >>172
> それに余計なデータ云々の話をするなら、Xファイルの法線データの存在も疑問が残ります。
>なぜ、こんなものついてるのでしょうか?
>その場で頂点から生成すればいいのではないでしょうか?
これ、もう致命的なんだが。
ポリゴンの仕組みすら理解していないのだから、話が通じないのも当たり前。
モデルデータを読み込む以前の知識が足りていない。 >>173
どうせ、鋭角なエッジがどうのこうのっていいだすんだろ?
さらに、こんなどうでもいいことで「致命的」ね。
あいかわらず、人を馬鹿にしないと会話ができないのか。 だな。面白い議論なのにもったいない。
発言内容から察するにいい大人なんだろ。
もう少し冷静になれ。 >>172
法線は、接線・従法線に垂直であるってのはその通りなんだけど
必ずしもそうでなければならない訳でもない。
そこら辺モデル作った人が好き勝手やれるようについているんだろう。 >>176
じゃあ、好き勝手やった部分だけ保存しておけば容量減るじゃん。
俺は有益な人間だから今の話がようわからん人のためにリンクまでとってきちゃうよ。
http://hell.razor.jp/column/09.html 自分的に疑問なのはSkinWeightsテンプレートのmatrixOffset。
これ何の為にあるんだろうか?
最初、これが無いと回転できないからと思ってたけどそんなことないよねぇ。
また、XFileから得られる情報だけで
それぞれのボーンの始点-終点(間接から間接)の座標が得られる方法って
どうやればいいんだろうか? XFileで定義してるのはあくまで面法線のみだからね。
そっから先はローダーしだいよ。 >>177
つまり法線情報が必要ないといった間違いを認めるというわけだね。
そもそも法線が必用なのは鋭角なエッジの場合ではなく、面に対して対応する法線が不揃いの場合。
何故鋭角なエッジという言葉が出てくるのか意味が分からない。
好き勝手に法線を生成する以外にも、球体等を普通に扱っていれば>>172のようは発言は出てこない。
また法線に関してはスムーシング情報を保存する形式のフォーマットも存在するが、
法線とスムーシング、どちらかの情報は必要になる。
ちなみに紹介している内容は、データを加工する話で、
法線が存在しない場合の対応措置ではなく、今回の件とはまるで関係がない。
>>178
通常通りフレームの階層をたどってボーンの行列を作ったら、
ウエイトが割り当てられているメッシュを出力する前に、matrixOffsetに掛けて使う。
それがメッシュ側のフレームの行列のかわりをするので、元からあるメッシュのフレーム自体は無視する。 そもそも法線がオプションになっているのは無視ですか。 データそのものが必要なければ出力しないのはあり。
今言っている話は、法線が無かった場合、スムーシングに関する情報も無しに、
モデルデータを作った人の意図通りに復元することが出来ないということ。 >>180
>面に対して対応する法線が不揃いの場合。
これって具体的にどういう場合なの?
球体でそんな箇所あるっけ? >>180
わかった。
面に垂直ではなくて球の面に対して垂直な法線を作るっていってんのね。
で、それはポリゴンだけの情報では作れない法線だと。 >>180
>つまり法線情報が必要ないといった間違いを認めるというわけだね。
認める認める。
>ちなみに紹介している内容は、データを加工する話で、
>法線が存在しない場合の対応措置ではなく、今回の件とはまるで関係がない。
正直、すまんかった。
>好き勝手に法線を生成する以外にも、球体等を普通に扱っていれば>>172のようは発言は出てこない。
これはどうだろね。
俺みたいにただモデル読んでそれっぽく表示できてりゃ満足な奴だと
ほとんど気にしないと思うけどね。 ということで煽りすぎたのを反省して消えることにする。
サラバ。 つーか、まだ読み込みやってるんだけど、Xファイルって面倒だな。
やっぱり、面倒なネックがマテリアルごとにわかれてないメッシュと
描画直前まで加工されてないデータだな。法線とかウェイトとか。
頂点ごとにしなきゃなんねーし。
いままで、誰もさわんねーわけだよ。コレ。
これのおかげで一度バラしながら読み込んでデータ加工して
描画しやすいデータに吐き出すってことをせにゃならん。
そうするとわざわざXファイルを読み込む意味ってなに?
って疑問がでてくるわけだ面倒臭ぇ。
やっぱり、描画直前データであるべきだったよなぁ。
仮にもリアルタイム専用なわけだし。(ゲーム目的なんだろ) とりあえず、わかったこと
・スキンメッシュの描画に必用なデータは、
@1つのメッシュに影響するボーンのマトリクス(メッシュに対して7本のボーンが影響するときは7つ)
Aボーンの1つの頂点への影響具合(ウェイト:頂点とボーンでセットで1ついる。
つまり、1つの頂点が複数のボーンに影響があるときはウェイトの数が増える。
ウェイトは頂点ごとに影響するボーンの数だけ必要。)
B頂点とセットなボーンのインデックス(つまり、@でこの頂点に影響するボーンのインデックス)
だ。多分。
んで、よくわかんねーの。
・XSkinMeshHeaderの上2つが何のデータなのかわかんね。
必要あるのかどうなのかもいまのところわかんね。 >>187
Xライブラリのメッシュクラスには、オプティマイズとかメンバ関数があり
貴方の言う所の描画直前データにする機能があるよ。
他の3Dソフトのフォーマットでも、そうだけど
そのフォーマットはそのソフトで使う思想設計のフォーマットであって
自分の必要な内容のフォーマットだとは限らない。
それを、自前で自分の欲しい情報を取得したり、生成したりする手間で
文句言っちゃいかんでしょう… >・XSkinMeshHeaderの上2つが何のデータなのかわかんね。
> 必要あるのかどうなのかもいまのところわかんね。
これはまあ参考用で要らん子だな。
>>189
そうはいってもだな。
もし、Xファイルplus(仮)なる描画直前のデータがあったりしたら、
俺は今頃Xファイル(通常バージョン)なんかに要はないぞ。
>>190
おお、やっぱ、いらんデータ?
ヘルプも書いてある意味がよくわからなかったな。俺は。
まあ、それはいいとして、今日の成果。
よくわからんことだけで終わってしまった。
・Xファイルってメッシュごとにマテリアルあるけど、モデル単位でみてマテリアル同士が重複してる場合って
同じマテリアルであるとどうやって判断すればいいんだろ?
#つまり、複数のメッシュで1つのマテリアルが呼ばれてる場合ね。 てゆーかなんでXファイル弄ってんの?
手持ちのツールがXファイルしか出力できないとか、
D3DXで楽したいとか以外に選択する理由がないと思うけど。
てゆーか3Dモデルのフォーマットなんてどれ選んでも面倒くさいけど。
マテリアルの共有に関しては、トップレベルに名前付きのMaterialを吐いて、
各MeshのMeshMaterialList内ではその名前を参照することはできる。
個人的にはテンプレートの型毎に参照用の名前空間が
わかれていないのがXファイルの一番嫌いなところ。 やっぱこれからはCOLLADAなのかなぁ。
XMLの勉強にもなるし、俺はこっちの対応を考えてみるかな。
>>192
いやー、なんでXファイルって手を出しづらいのかと思ってさ。
ずいぶん前からあるし、今頃、直でいじってる奴の1人か2人ぐらいいてもいいだろうと。
つーか、構造自体よくわかってねぇとやっぱりマイクロソフトの用意したクラス使っても
結局は何もできずに終わるだろうと考えた。
で、今日の報告。
わかったこと
・ボーンについて意識しとかなきゃいけないこと云々。
@モデル全体にあるボーン
A1つのメッシュに関連するボーン
B1つの頂点に関連するボーン
Cアニメーションで意識するのは@
Dシェーダで意識するのはAとB
Eシェーダで渡す必要があるのはA(マトリクスをいくつ使うか?とかそういう話)
FXファイルを一度すべて読んだ後にAの情報を出さないといけない(メンドー)
G頂点情報で必要なのはB
わからんこと
・実際にアニメーションするときってなにを動かすんだろうか?
アニメーション情報に基づいてすべてを動かすのか?
その場合、元のフレームの情報だのってのはどこへいくんだろうか?
ボーンとフレームが混在してるモデルってのは無いのだろうか? 今日は、マテリアル読んだ。
問題なぞおこるはずもなく読めた。
しかし、毎度毎度思うんだけど、
DirectXの方だとアンビエント、スペキュラ、エミッシブって簡単だけど
モデリングソフトの方だと設定項目はこんな単純じゃなくて、
もっとわけわからん名前のパラメータがたくさんある場合がほとんどなわけだが、
一体、この辺のパラメータってどうなってるんだろうね。
俺等はモデリングソフトにできるだけ近くなるようにしてほしいわけだけど、
なんか読み込んでみるとイメージと違くていつもメタリックだよなw >>195
XFileは元はDirect3DRM用のフォーマットだよ。
CGソフトよりゲーム寄りの仕様なのはむしろ当然だよ。
画像がメタリックなのは、君のエンジンのライティングモデルの所縁だろ、
BRDFにでもすればまた違ってくるよ。 >>198
BRDFとはなんぞや?と思ってぐぐってみたら、
t-potさんのところのBRDFに当たったけど、メタリック化にさらに磨きがかかってたぞw
つーか、今のところ、物体にはっつけてるシェーダは
どれも(といってもバンプ、環境、屈折ぐらいしかないけどw)メタリックだぞ。
シェーダをかけるとメタリック化が進むのは俺だけか? >>199
BRDFっつーのは、物理的に本物っぽいライティングモデルのことだ。
よくフレネル係数って聞くだろ、湖面を真上から見ると底が透けて見えるけど
水平に近い角度で見ると周りの風景が反射して見えるっていう、これもBRDFに含まれる。
BRDFの鏡面反射成分の式には面の粗さとその方向が係数として含まれる。
この粗さに大きい値をとれば、ガサガサして金属っぽくならなくなるわけだ。 ■ このスレッドは過去ログ倉庫に格納されています