PMDをUnityで読み込みたい(5) / C#におけるBinaryRead & Write

さてさてUnityでC#のFileStreamクラスを使うことができたので
早速PMDファイルを読んでみたい


でもPMDファイルはテキストではなくバイナリで書かれてるようだ
「えーっじゃあどうすんのよォ」って思ったら
C#のBinaryReader, BinaryWriterクラスがありました

こいつらを使えばバイナリ形式での読み書きは思いのままや!
ってなわけで使い方を検索してみると次のページがヒット
誠にありがたいことです

①未確認飛行 C:C# によるプログラミング入門>ファイル操作
http://ufcpp.net/study/csharp/lib_file.html


んで読んでみると、ウーンなにこれ
" using "っていうのが書かれてる。俺これ知らない
C#の何かの機能なんだろうなぁと思ってググッたら次のページがヒット
誠にありがたいことです

②.NET関連資料室:usingを使え、使えったら使え(^^)
http://www.divakk.co.jp/aoyagi/csharp_tips_using.html

usingを書いとけば、自動でDisposeしてくれる上に例外処理にも対応してくれるんですって
超便利!


と思ったけど、Disposeって何なのかしら(俺の無知を舐めてはイクナイ
これまたググッてみたら次のページがヒット
誠にry

@IT:.NET TIPS > 確実な終了処理を行うには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/027dispose/dispose.html

なーるほど。プログラマ手動で行う資源開放のインタフェースなのかな
"using"についての記述も一緒に書いてた。なるほどなるほど


自動に資源開放を行うための,言語ごとの機能の一つ「ガーベッジコレクション」では
「資源開放を行うタイミング」が言語によって違うんだそうだ
んで「俺好みのタイミングで資源開放できなきゃヤダ!」っていうニーズを満たすため
作られたのがIDisposeインタフェースらしい。ほうほう
(ちなみにガーベッジコレクションが何なのかよくわかんなかったのでやっぱり調べた)
(俺の無知を舐めては超イクナイ)
(ガーベッジコレクション=メモリ資源の自動開放機能なのね)


ガーベッジコレクション

    • >Dispose
        • >using

と知識をたどってきたので、ようやっと①のファイル操作のサンプルコードが
読めるようになったよ。っていうわけで読んでみたし理解した
(try, catchとかfor(;;)とかはなんとなく文脈で理解を補完)


フムーン


てなわけでバイナリ読めるようになったから、PMDも読めるようになったんだけど
読んだデータをどう解釈するか?どう使うか?が本質なわけで
今はようやっとベッドから起きて顔を洗い終わった、っていうレベル

データ解釈には当然PMDファイルの構造を知らねばならぬわけです
そのへんは既に有志の皆さんが開拓済みらしい


俺がホントに苦労するのはこっからや…