モデリング第七天

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

DirectXの憧れ

2007-09-25 11:35:42 | 雑文
やった!
Tk原君がモーションXとメッシュXを別々に読み込んで合成するプログラムを完成させてくれた!

これで、もう事実上3Dデータの受け入れ体勢は整った事になる。
あとは仕様に従ってファイルを提供するだけ。

プログラムって面白いよね。僕は言語は初歩的なスクリプト程度しかわかんないけど、考え方だけならわかるから、自分で高度な言語を操れるようになったらきっと楽しいんだろうと思う。

いいな~

ヒエラルキの憂鬱

2007-09-24 23:38:59 | 雑文
使いやすいRIG(人体構造)を求めてずっと色々考えていた。
僕の考える「使いやすい」の定義は二つ。
一つ目は手間が少ない、つまりゴール数が少なく簡潔である事
二つ目は意図するポーズがつけやすい事

ゴールを多くすれば意図するポーズをつけるのは簡単だけれど、その分手間がかかる。少ないゴールではなかなか直感的に意図するポーズはつけられない。
相反する二つの定義をクリアするためにはゴールの親子関係付けがとても重要だ。スクリプトとかませNullを使えばかなり意図するものに近い物はできるんだけど、なるべく汎用性の高いものが望ましいから、あまり特殊な事はしたくない。
そうなるとやっぱりゴールの親子関係…。

色々とわかってきた

2007-09-24 16:48:51 | DirectXの研究
①モーションXは書き出し時のファイル名とanmationSetが同名になるので書き出し後にファイル名を変えないほうがいい。

②モーションX用に書き出すためのダミーとなるMeshはNullではNG。NullだとそもそもMeshの記述が全て欠落してしまう。1ポイントオブジェクトをあらかじめモデラーで作っておいてそれと置き換えれば00メッシュを配置できる。

③標準IKはまだ未確認だけど各種モーションは一度、各ボーンのキーフレームアニメーションにに変換してからでないと書き出されない。BakeMotionを使うか、一度書き出してキーフレームにしたあともう一度書き出しなおせばOK

④モーションの再生FPSがイマイチ謎。60FPSらしけどサンプルのXファイルを見ると再生ステップが100FPSになっている。まあ、これは感覚で合わせればいんだろうけど。

でも、今回のファイルはわりと自信があるので早く試してみてもらいたい。
火曜ってライセンス朝からあるんだったっけ…?

きずな

2007-09-24 00:21:20 | 戦場の絆
今日(昨日)は昼に野良、夜にバーストで出撃した。
使用機体は周りの迷惑を顧みずガンキャ。
中距離をつかってる時は野良はいい。
味方の視線とかあまり気にしなくていいし、仲間の連撃のカットもちょっとした罪悪感でつい出来てしまう(笑)
レーダーに注意して適正距離さえ保ってれば、仲間に貢献できるかは別として自分のポイントを稼ぐのだけはとても容易い。
ミサイルがだいぶ天井で消されてしまうジャブ地下でも結構行けるのだから、地上になったらボーナスゲーな予感がする。ただし、前線がちゃんと実力があるときに限るけど。

夜はバーストだったけど無言で中距離即決×3。(一回は格祭りだったから格闘。)
さすがに身内とやるときに連撃カットはご法度だから、かなり神経を使って砲撃をするように心がけた。
そうするとやっぱり無差別砲撃ほどポイントを稼ぐのは簡単じゃなくて、何とかC~Bってライン。もちろんかなりの空気感が漂う。後衛で、自分がポイントを稼いでなおかつ味方の邪魔をせず、かつ、戦力に貢献する。
これは難しい。
でもまあ、前クールでは楽しみの一つもなかったジャブ地上に新しい楽しみが増えた感じはする。
来週は色んなことを総合的に考えて野良が多くなるかな…。

ヒテンミツルギスタイル お取り寄せ

2007-09-23 23:58:31 | DirectXの研究
今、自分のつくったXファイルを眺めていて、ふと気がついたんだけど、Xファイルの中にはIKのゴールオブジェクト用のNullも一つのフレームとして登録されている。ということはゴールのヒエラルキを入れ替えてもファイルの構造が変わってくるのではないのか?
そういえば先週の時点で用意したファイルはアニメーションを作りやすいようにとゴールのヒエラルキの試行錯誤と平行して書き出しをしたものなので、メッシュXとモーションXでは構造が違ってしまっている可能性も充分考えられる。

先週末に週明けには改善されたファイルを渡すよと大きい事を言ってしまってちょっと後悔していたけど、色々いじってみれば案外色んな手がかりがつかめた気がする。このファイルの是非を速く確かめてみたい。

わかったこと

2007-09-23 16:34:51 | DirectXの研究
メッシュXファイルとモーションXファイルにはそれぞれ以下のような事が書かれていた。(覚書程度なので未整理部分も多い)
この記事は後々書き足しをする予定。

(共通)
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;


メッシュXファイルのファイル構成

Mesh(ポイント情報)
MeshNormals(ポリゴン情報)
MeshTextureCoords(おそらくUV情報?)
VertexDuplicationIndices(ポイント数、ポイント番号の定義?)
MeshMaterialList(サーフィスが変換されるもの?)
 Materials
  1.000000;1.000000;1.000000;1.000000;;(この辺は恐らく光沢等の設定)
51.200001;
0.100000;0.100000;0.100000;;
0.000000;0.000000;0.000000;;
TextureFilename {
"Face_C.dds";(テクスチャの指定)
XSkinMeshHeader
SkinWeights(ここ以降各ボーンごとにどのポイントがWeightに何パーセントでアサインされているかの指定)
 F2_CTRL_C_Back
 F3_CTRL_C_Lowerlip
 F4_CTRL_C_Root
 F5_CTRL_C_Upperlip
 F6_CTRL_C_Waist
 F7_CTRL_L_Ankle
 F8_CTRL_L_Elbow
 F9_CTRL_L_Finger0
 F10_CTRL_L_Finger1
 F11_CTRL_L_Finger2
 F12_CTRL_L_Finger3
 F13_CTRL_L_Finger4
 F14_CTRL_L_Knee
 F15_CTRL_L_Lipside
 F22_CTRL_L_Thigh
 F25_CTRL_L_Toe
 F26_CTRL_L_Upperarm
 F27_CTRL_L_Wrist
 F28_CTRL_R_Ankle
 F29_CTRL_R_Elbow
 F30_CTRL_R_Finger0
 F31_CTRL_R_Finger1
 F32_CTRL_R_Finger2
 F33_CTRL_R_Finger3
 F34_CTRL_R_Finger4
 F35_CTRL_R_Knee
 F36_CTRL_R_Lipside
 F43_CTRL_R_Thigh
 F46_CTRL_R_Toe
 F47_CTRL_R_Upperarm
 F48_CTRL_R_Wrist
 F51_DEST_L_Breast1
 F53_DEST_R_Breast1
 F55_EFCT_C_Back
 F56_EFCT_C_Head0
 F57_EFCT_C_Head1
 F59_EFCT_C_Neck1
 F60_EFCT_C_Waist
 F61_EFCT_L_Ankle0
 F62_EFCT_L_Ankle1
 F63_EFCT_L_Ankle2
 F65_EFCT_L_Crotch0
 F67_EFCT_L_Crotch11
 F68_EFCT_L_Elbow0
 F69_EFCT_L_Elbow1
 F70_EFCT_L_Elbow2
 F71_EFCT_L_Finger00
 F72_EFCT_L_Finger01
 F73_EFCT_L_Finger10
 F74_EFCT_L_Finger11
 F75_EFCT_L_Finger20
 F76_EFCT_L_Finger21
 F77_EFCT_L_Finger30
 F78_EFCT_L_Finger31
 F79_EFCT_L_Finger40
 F80_EFCT_L_Finger41
 F81_EFCT_L_Hip0
 F82_EFCT_L_Hip1
 F83_EFCT_L_Hip2
 F84_EFCT_L_Hip3
 F85_EFCT_L_Hip4 
 F86_EFCT_L_Knee0
 F87_EFCT_L_Knee1
 F88_EFCT_L_Knee2
 F89_EFCT_L_Lowerarm0
 F90_EFCT_L_Lowerarm1
 F91_EFCT_L_Lowerarm2
 F92_EFCT_L_Lowerarm3
 F93_EFCT_L_Lowerarm4
 F94_EFCT_L_Shin0
 F95_EFCT_L_Shin1
 F96_EFCT_L_Shin2
 F97_EFCT_L_Shin3
 F98_EFCT_L_Shin4
 F99_EFCT_L_Shoulder0
 F102_EFCT_L_Shoulder20
 F103_EFCT_L_Shoulder21
 F104_EFCT_L_Shoulder22
 F105_EFCT_L_Shoulder23
 F106_EFCT_L_Shoulder30
 F107_EFCT_L_Shoulder31
 F108_EFCT_L_Shoulder32
 F109_EFCT_L_Shoulder33
 F110_EFCT_L_Thigh0
 F111_EFCT_L_Thigh1
~以下略
 F184_EFCT_R_Wrist1

Frame F185_ROOT(ルートの指定?)
ここ以下はボーンの階層構造と初期値
 


モーションXファイルのファイル構成
Mesh
MeshNormals
MeshMaterialList
XSkinMeshHeader
Frame F185_ROOT(ルートの指定?Mesh側と同じ数値)
ここ以下はボーンの階層構造(Mesh側と同じ数値)
AnimationSet AnimationSet_00R_Run(上で記述されているフレーム(F○○○で表記、ボーン)一つ一つに対して以下の書式でアニメーション値が記述されている)

Animation Animation0 {
{ F1_NULL_Layer1 }
AnimationKey {
4;
30;
0;16;1.000000,0.000000,0.000000,(以下数値は略恐らく座標値、回転値);;,
100;16;1.000000,0.000000,0.000000,(以下数値は略恐らく座標値、回転値);;,

Tk原君に依頼

2007-09-23 15:08:32 | DirectXの研究
今の問題はメッシュとモーションを別々のX-fileにした場合それを正しく読み込むことが出来ないということ。

理由がファイルの作り方に問題があるのか、それとも読み込むプログラムに問題があるのかそれがわからない。
F3D班のほうでも皆目見当がつかないって言っていたから、とりあえず今の僕に出来る事は、サンプルデータをひたすら解析してそのファイル構成のとおりに自分のデータを作る事ぐらい。

んで、ここからが要望なんだけど、ビュワーにモーションの切り替えの機能を実装して欲しい。
今のビュワーみたくEXEファイルと同一フォルダ内にメッシュXとモーションXを配してTXTでそのファイル名を指定し、実行するとボタンでモーションが切り替わるもの。これを作っておいてもらえばファイルのデバッグが3D班のほうで行えるから、イチイチ手を煩わせずにすむ。
お願いできますか?

半分下の続き

2007-09-23 01:32:34 | 雑文
で、10~5年ぶりぐらいに昔の知人や教え子なんかのHPを追跡調査してみる。
閉鎖されてるものとかが多かったけど、2、3あらぬ方向に進化を遂げていると思われるものもあってなんとなく凹む。

ゲーム・アニメ→→コスプレ→→ドールって見事な進化だと思われる。
ちょっと見てみたら、直視に耐えられないページから先に進む事が出来なかった。

あまり人のことを言えた義理ではないけれど…。

それから、閉鎖されてたりリンク切れしたりしてる人もHNなんかを頼りに色々検索してみたら、ブログとかで復活してるっぽい奴とか居るけど、なんか過去を隠してるっぽかったりでイマイチ確証はもてないんだけど文章とか読むと明らかに本人じゃね?とかって想像できて非常に楽しい。メールとか送ってみたいけど他人かもしれないし、いろんな意味で触らぬ神に祟り無しと思い自重。
さらに面白くなってきたのでmixiやいくつかのSNSとかでも探しはじめる。
もちろん偽装工作は万全。
そしてやっぱりネットは作業の敵。
肝心な事は何も出来ていない。
ちょこちょこネットをやってると作業の効率悪すぎ。

ガチだから

2007-09-21 10:47:15 | 雑文
今日の目標
連ザで2連勝する事。
最近あまり組んでいない、H川君かOち君を誘ってみたい。
どっちか僕と組んでくれませんか?(笑)

昨日から昇格を目指した戦いをはじめた。
…いきなりDをとったけど何か質問ある?