kumaryu日記
2009-12-08
_ さむさむ
最近寒くてなかなか起きれませんな。目覚ましセットしわすれてるだけだけど。
最近は配信でうぇぶうぇぶしい物しか作ってないな。Webアプリとかめんどくてほんと嫌だわ。どうでもいいけど、うぇぶうぇぶしい、って発音しようとするととてもいいづらいです。
Expression Studioを入れてみたけど、さすがにメモリ4GBのMac上のVMのVistaで動かすと厳しい。仕方なくメモリ注文したけど4GBモジュール2枚で4万7千円もしたよ。しかも受注生産っぽくてなかなか届かない。
しかしExpression Blendは便利そうなのでうれしいぜ。さようならHTMLのクソ野郎。
うぇぶうぇぶしいついでにOpenIDとか使ってみたけど難しすぎた。しかもだいぶ意味わからないのでこれは流行らない。結局、Yahooのアカウントで、mixiのアカウントで、はてなのアカウントでログインできます、って主要なOPだけ対応して終わりそう。OpenIDでログインできますって言われてもどうすりゃいいのかさっぱりわからんよ。
これまた関係ないけど、SIGGRAPH ASIA 2009行きます。Khronos DevUとか気になるけど午後いっぱいかよ。COLLADA Updateだけ気になるんだがどうしたものか。
ちゃんとプログラム見たら盛り沢山すぎるね。いつどれに行くか決めておかないとまずいわ。 誰かと手分けして行ければきっといいんだろうけど、ひとりでふらふら行くからなぁ。
_ [Ruby][COLLADA] Ruby/DAE作成中
前から作ってたRubyでCOLLADA DOMっぽいなにかを作りなおし中。
もう3回目か…。
最初はCOLLADAのxsdをパースしてなんとか自動生成できんかやってた。XSDの複雑さに死にかけながら適当にごまかしたんだけど、メンテ不能になったのですてすて。
2回目は、といっても最近なんだが、諦めてYamlで自分の必要な分だけのスキーマを手で書いて自動生成してた。まあ出来たんだけど、スキーマ書くのがだいぶめんどかった。あとあんまり使い易くもなかった。
3回目はxsdじゃなくてrelax ngを使うことに。COLLADAのrelax ngスキーマはないので半自動生成に手をいれてつかう。
使いやすさ的にはCOLLADA DOMを参考に属性と子要素をどちらもプロパティ的に扱えるようにした。前これやらなかったのはskin要素とかにsource属性とsource子要素が両方あったりするからだ。これ絶対名前失敗してるよな!
COLLADA DOMではどうしてんのかと思ったら、複数回数出てくる子要素はgetSource_arrayとか後ろに_arrayをくっつけたひどい名前になってるので辛うじて衝突してないようだ。ひどい解決方法だが、たしかに複数出る要素かどうかで配列だったりそうじゃなかったりわかりづらいので、アクセッサ名で分かるようにしてしまうのも手だ。ということでパクって、souce_aとかにした。_arrayは長すぎるだろRuby的に考えて。
あと不便だったのがIDREFとかanyURIで別の要素を参照してるところで、参照の解決がめんどかったこと。これはProxyオブジェクトを作って透過的にアクセスできるようにする。しようと思っていま作ってるところ。読み込みはいいんだけど保存がむずいかも。
さらに保存もちゃんとする。今まで名前空間とか適当だったので知らない要素とかあったらどうなってたんだか分かったもんじゃなかったが、今回はちゃんと保持されるようにしたい。
というのもRakeで一括コンバートみたいなコンテンツパイプラインをつくりたいからだ。
おまけでJRubyを使えばCOLLADA Refinaryの…なんていうんだっけ、プラグインみたいなの。あれも通せるようにすると便利だと思う。まあこれはCOLLADA Refinaryのクラス構造とか見てないのでいざやってみたら無理かもしれないからそれほど重視はしないが。Refinaryのプラグイン、微妙なのばっかりだしね…。
目標としてはRubyでRefinaryみたいなのを作れるようにしたい。ゆっくりやってるのでできるのは当分先の話ではあるけどね。