三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XMLパーサー

作り直し作り直し。


以前Colladaパーサーを作ったのですが、
自分で書いたパーサーでメンテをしにくかったので作り直して、ついでにデータ形式を変更しようという魂胆です。
ColladaはXMLなのでMSXMLを使用することにしました。



COMを使ってるらしいので
アプリケーション開始時にCoInitialize、終了時にCoUninitializeを。
このあたりはお約束。


MSXMLを使うために以下のコードを追加

//includeのようなもの
#import "msxml6.dll" named_guids


こいつはdllから自動的にヘッダファイル(のようなもの)を生成してくれます。

//ドキュメントインスタンス作成
MSXML2::IXMLDOMDocument2Ptr pXMLDOMDocument;
pXMLDOMDocument.CreateInstance(CLSID_DOMDocument);




// XMLファイル読み込み
pXMLDOMDocument->put_async( VARIANT_FALSE ); // load関数がロードを完了するまで待つようにする。
hResult = pXMLDOMDocument->load( InFilename);



これでXMLインスタンスで解析できるようになりました。

あとはColladaの仕様に沿って解析していくのですが、
まあ・・・、自分の使って無い部分は作らなくてもよいので・・・ 必要な場所だけ・・・


Colladaは見た感じ

COLLADA
├asset
├library_cameras
├library_materials
・・・
├library_visual_scenes
└scene


となっているようです。

今回欲しかったのはモデルデータなのでlibrary_geometriesノードから探索して、頂点情報、マテリアルIDを取得。
そこから参照しているところを芋づる式にlibrary_materialsとかとかからデータを抽出しました。


・・・、というコードを書いたところで今日は終わり。
確認作業はこれからです(´ω`;)


スポンサーサイト

あんなゲームを作りたい

作り直し作り直し・・・

◆trpr
先週にも書きましたが、プログラム部分作り直し作業中です。
ゲームエンジンを差し替えて一応起動できるまでいきました。
これから今まで作った部分を載せなおします。
ちゃんとうごくといいなあ・・・
それと必要な部分の切り離しも。

スクリプトエンジンは作り直したくないけど、
前作っていたものにべったりだしどうしたもんでしょうかね・・・

教訓:プログラムは細かいパーツごとに作ってお互いの依存性を極力下げるようにする。

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。