goo blog サービス終了のお知らせ 

モデリング第七天

拠り所 なんのためにかと自問する

DirectXの挑戦

2007-09-18 21:01:55 | DirectXの研究
アニメーションの書き出しでちょっとトラブルがあったものの作業はおおむね順調。
モデル(メッシュ)の書き出しに関しては、ほぼ問題はツブしたと思うのでいずれ資料にまとめて3D班のメンバーに伝達しようと思う。
…いや、種明かしをする前にみんなにも原因究明をしてもらおうかな。
こういうトラブルの原因を突き止める作業って大切だから。
このブログでもそれなりに種明かしはしてきてるからそんなに難関ではないはず。
うん。いいかも。

目下の懸案はメッシュとアニメーションを別々のファイルにして、同一のメッシュデータに対して必要に応じてアニメーションデータを切り替えられるかどうか。
これはいまTk原君にデータを渡してあるので、そのデータを使って出来るかどうかの検証待ち。出来ないようなら、またファイルとにらめっこをする事になる。

これが出来れば、もうエクスポートに関しては何も問題はないので、あとはアニメーションパターンをひたすら作っていくだけ。

今の時点でさしあたって作ろうと思っているもの

①停止もしくは待機姿勢(基本姿勢でのループ)
②走りのループ
③走り始め(①から②へつなげるためのモーション)
④走り終り(②から①へつなげるためのモーション)
⑤立ち攻撃モーションA(立ち状態での射撃系攻撃(魔法)モーション)
⑥立ち攻撃モーションB(立ち状態での近接系攻撃(剣戟)モーション)
⑦走り攻撃モーションA(走っている状態での射撃系攻撃(魔法)モーション)
⑧走り攻撃モーションB(走っている状態での近接系攻撃(剣戟)モーション)
⑨ガードモーション
⑩ダメージモーション
⑪転倒モーション
⑫ジャンプモーション(ジャンプはどうするかな?ジャンプをつけるとジャンプ攻撃AB、ジャンプガード、ジャンプダメージのモーションもおのずと必要になるよね)

とりあえずこの辺を作れば最低限はそろうのかな?
あとは、ダミーでもいいから背景を一個作ってみよう。

…そうだな、ここまでの作業を今月中には仕上げよう。
そうすれば、来月あたまにはなんとなくゲームの片鱗のようなものが出来上がるはず。
もちろん、それはTTM君とT田君の作業が上がればの話。
上げられなかった人にはなんか罰ゲームをするようにすれば、きっと面白くなるはず。たとえば、ジュース一杯おごるとかね。

NOTHING

2007-09-18 11:12:05 | DirectXの研究
とりあえず何もないシーンを出力してみました。


xof 0303txt 0032

template XSkinMeshHeader {
<3cf169ce-ff7c-44ab-93c0-f78f62d172e2>
WORD nMaxSkinWeightsPerVertex;
WORD nMaxSkinWeightsPerFace;
WORD nBones;
}

template VertexDuplicationIndices {
<b8d65549-d7c9-4995-89cf-53a9a8b031e3>
DWORD nIndices;
DWORD nOriginalVertices;
array DWORD indices[nIndices];
}

template SkinWeights {
<6f0d123b-bad2-4167-a0d0-80224f25fabb>
STRING transformNodeName;
DWORD nWeights;
array DWORD vertexIndices[nWeights];
array FLOAT weights[nWeights];
Matrix4x4 matrixOffset;
}


Frame Frame_SCENE_ROOT {

FrameTransformMatrix {
 1.000000,0.000000,0.000000,0.000000,0.000000,
 1.000000,0.000000,0.000000,0.000000,0.000000,
 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;
}
}


この赤字の部分はテキスト付属のファイルにも自分で書き出したファイルにもすべて記述されている。

XSkinMeshHeaderはボーン変形をスキン(メッシュ)に変換する際のヘッダ情報
VertexDuplicationIndicesはメッシュ内の頂点の重複情報
SkinWeightsは各ボーンのメッシュに対する重み情報

Frame Frame_SCENE_ROOTはシーンのルート(基準点)情報ということになる。
ここまでは共通情報でここから先、メッシュデータ(形状のためのデータ)とアニメーションデータ(動きのためのデータ)では持っている情報が何を持っているのかをサンプルと自分の作ったデータを見比べていけばいいということになる。

…な~んだ、簡単じゃん。…簡単じゃん、ははは。ふぅ。

DirectXの探求

2007-09-18 10:26:15 | DirectXの研究
今日の目標はXファイルの中身をマジメに読むこと。
F3DチームのほうではXファイルの中身をずいぶん解析してるみたいだけど、僕は僕なりに中身を読んでみようかと思う。
書き出し時の設定やらファイルやらをいじることで何が何を指しているのかを調べることができるのは僕だけだから、これはたぶん僕の仕事。

Direct.X実用編?

2007-09-17 20:14:46 | DirectXの研究
メッシュのみで書き出したもの
→X_A_BASE.x

アニメーションのみで書き出したもの1
→X_A_001.x

アニメーションのみで書き出したもの2
→X_A_002.x

アニメーションとメッシュで書き出したもの1
→X_A_001m.x

アニメーションとメッシュで書き出したもの1
→X_A_001m.x

(X_A_BASE.x)+(X_A_001.x)=(X_A_001m.x)
か?

アニメーションとメッシュで書き出したもの2
→X_A_002m.x



アニメーションとメッシュを別々にエクスポートする実験中

2007-09-16 23:27:43 | DirectXの研究
Tk原君のブログに書いてあったけど、今後の方向性を決める上でゲームシステムの決定はすごく重要な問題だ。
まあ、本来ならまずゲームシステムありきで、そこから製作が始まるんだけども、今回の場合は根幹部分が技術的に出来るのかできないのかがわからないから、結局ゲームシステムが二転三転するということになっている。
その根幹的技術は通信の可否。
通信の可否が何でゲームシステム全体にかかる問題かといえば、通信が不可能という事はつまり一台のマシン上でゲームをするという事で、複数プレイを前提としている以上、それはつまりカメラが第三者視点に限定されるという事を意味するからだ。
以前から何人かの人に対して行ったヒアリングの中で「通信」を扱うのは難しいのではないか?という意見が多かった。僕は素人なので良くわからないけれども、それでも、サーバーを立てたりしてデータのやり取りを行うとなれば、ゲームとなったときにデータの転送上で遅延が発生したりしたらの問題が「ゲーム」を成立させる上で致命的なことくらいは想像する事はできる。
他にもきっと色々な問題があるのだろうとか思うと、やはりスタンドアロンでのゲーム、つまりシステムで言えば対戦格闘が現実的なのかなとか思ったりしていた。
ところが先週末にtk原君と話していたら、どうも彼はヤル気みたいで場合によっては、ネットワーク対戦も充分ありえると言う考えのようだ。

そうなると、ゲームシステムについても全く話が話が変わってくる。一人一台ずつのプレイとなれば、カメラが各人一人称視点でのプレイが可能になるからだ。
そうなった場合、ゲームシステムは格闘よりは射撃戦のほうが相応しくなる。
そうなるとキャラクターは基本飛び道具を装備する事になるわけだから、現状のファンタジーにあと一要素加える必要が出てくる。
まあ、これは各人魔法の光弾をもって戦うとかっていう様な世界観にすればいいだけのことだからさして問題ではないけれど、3D的に考えて一番の問題はモーションの問題だ。格闘ゲーとFPS(First Person Shooter)ではキャラに持たせるモーションの種類が全く変わってくる。まあ、FPSのほうが原則モーションパターンは少なくなるから3D的には非常にありがたい事ではあるのだけれど、データ作りの時点(たとえば骨の入れ方とか)から双方では違いが出るのでそいうった意味でも早く、ヤルのかヤラナイのかをはっきりさせなければならない。個人的にはFPSの方が楽しそうだし、将来的な拡張も色々出来そうで魅力的だと思う。あと、FPSはステージさえ変えれば全く新鮮になるし。
どうなのかな?
これはF3Dのメンバーの意気込み次第なのだろう。3人が3人とも時間を惜しまずに取り組めば出来るんじゃないのか?Tk原君はそんな口調だったけど…。
ん~、楽しみ。

DirectXの希望

2007-09-14 19:58:20 | DirectXの研究
三日分の停滞がたった20分の間に一気に解決した。
理由は
①UVマップがついていないポイントがあったこと
②ウェイト値0%のついたポイントがあったこと
③ボーンの数とウェイトの数が1:1でなかったこと
の二点
①は「細やかなチェックが必要」の一言に尽きるが②はちょっと盲点だった。


わからない

2007-09-12 05:44:10 | DirectXの研究
ポイントセットに残っていたグル^プ情報を全て消したら落ちずにエクスポート出来るようになった。ただ、喜びも束の間SDKのビュワーではエラー表示。
くっそー!

昨日は久々に昇格フラグが立っていた(BCで昇格)んだけど見事にDでした。中距離とかって絶対無理。どうやったら弾が当たるのかわからないし。ガンキャノンはいまだにDしかとったことがない。

DirectXに意地を張る男

2007-09-11 23:33:34 | DirectXの研究
学校で散々落ちまくってたエクスポート。
もしかしたら、家の環境でやったら案外すんなり出来るかもという淡い期待を持って、家で試してみる…。
ハイ、落ちました。
学校と全く同じ症状。
がっかりしたようなホッとしたような。
手のメッシュを除外して出力してみると、問題なく出力できます。
手が原因なのはわかったが、まだ理由がつかめず。
今日はこの理由を解明してから寝る事にしようと思う。

テクスチャの闇

2007-09-11 08:01:10 | DirectXの研究
何とか出かけるまでに問題解決した。
まだ何が悪かったのかまではわからないけど、結局目のテクスチャが原因でPSD形式で2のべき乗じゃなかったのをTGA形式の2のべき乗にしたらあっさり出力された。
ファイル形式が悪かったのか、画像サイズが悪かったのか…。