アサシンクリード買ってきた! やりたい! めっちゃやりたい!
……COLLADAを読む仕事に戻るお…
とりあえずgeometry以下をさっくり読めた。
プリミティブは頂点とか法線とかのデータへのインデックスを持ってるから、読んだ瞬間に展開しちゃおうかと思ったんだが、skin付きだとあとからウェイトとかのデータを当ててあげなきゃいけないんだよね。
ん?何故かマテリアル付きとマテリアル無しで同じプリミティブが2回出現してるんだけど、なんだろう、これ。もしかしてBlenderから出したfbxの時点でこうなってたりするんだろうか。まあどっちか無視すればいいが。
読んだgeometryをインスタンス化しようかと思ったけど、nodeから直接インスタンス化されてないな。controller読まなきゃだめか。
でも思ったより簡単だな。visual_sceneとかから一気に読もうとするとかなり大変だけど、深い所から細かくちょっとずつ読んでいけばそうでもないな。あと、いまあるファイルだけ読めればいいやと思えばそれほど大変でない。
つっても何回か読み込むコードは書いてるから、ある程度構造を把握してて早いってのはあるか。
よしよし。skinも読み込めた。まあ読み込めただけなんで、ちゃんとした処理はこれからなんだが。
あとnodeからJOINTのツリーを拾ってこなきゃならんのか。めんどいわぁ。 でもJOINTの逆行列は埋まってるから計算が楽だね。
そういや、COLLADAの仕様書見るのにLeopardのプレビュー.app使ってるけど、これ便利だな。検索バーに単語入れるとインクリメンタルでヒットした単語がリストアップされるんでHTMLヘルプのインデックス検索みたいにつかえる。
meshで検索するとmeshより先にconvex_meshがヒットするとかちょっとヒット率がおかしいんだけど、ほとんど問題無いしね。
なにより軽いのが嬉しいぜ。