くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | プログラム | | 模型]

2007-01-08 めんどいな

_ 引っ越し

引っ越しのためにいろいろ住所変更の手続きをしといた。

で、土曜日に東京電力から電話があって電話中だから取れなかったんだけど。

確認することがあるから電話してくれと留守電が入ってた。で、電話すると平日しか受け付けてないからかけなおせとな。

土曜日に電話かけてきたのはそっちじゃねぇか…。

引っ越し後には光にしようかと思ったが、工事に時間がかかるかもしれんのでまだちょっと様子見。

引っ越して落ち着いたらにするか。

_ [XNA][Blender][COLLADA] COLLADA読み込み

BlenderでCOLLADAのアニメーション書き出しが出来るようになったんで、XNAで読み込んでみるかと。

COLLADAのContentPipeline読み込みプラグインはCOLLADAのフォーラムにあったんで拾ってきた。

まあアニメーション読み込みはできないんだけど、それは自分でいじってなんとかするつもりで。

で、書き出して読み込もうとしたらエラー。

何かと思ったらBlenderで書き出したdaeファイル、XML Schemaでの検証通りませんよ。

なんでもtexture要素にtexcoord属性が必須だけどついてないよと。

リファレンス読んでもよくわからなかったが、texcoord属性はセマンティック名を自分で作ってつけとくものらしい。

で、instance_material内でbindを使ってこのセマンティックとUVを参照するsourceを結びつければいい…

と思ったんだがサンプルを見たらbind_vertex_input使ってるものがあるな。こっちの方が良さそうだ。

これでOKかと思ったら。こんどはtexture要素のtexture属性がおかしい様子。

texture属性はsampler2Dを参照しなくちゃいけないらしいが、image要素を参照してるな。しかしCOLLADA DOMのサンプル見てもimage要素を参照してるのだが一体…。

考えてたんだが、どうもCOLLADA DOMのサンプルが古かったらしい。 COLLADA Test Model Bankから拾ってきたサンプルは正しくなってたみたい。

もしかしてPatchとかで直ってたのかもしれんけどな。

さてsampler2Dなんだが。

<newparam sid="nanika-surface">
  <surface type="2D">
    <init_from>nanika-image</init_from>
  </surface>
</newparam>
<newparam sid="nanika-sampler">
  <sampler2D>
    <source>nanika-surface</source>
  </sampler2D>
</newparam>

と、こんな風に一旦surfaceを経由しなきゃならんらしい。遠いな。

そんなわけでテクスチャファイルを参照するには texture -> sampler2D/source -> surface/init_from -> image/init_from というとても長い道程が必要ってことだ。

いやー、さっぱりわからんね。さっぱりではないんだが、仕様書が分かりづらすぎだよ。サンプル見た方が早いってのがどうよ。

COLLADA本も薄くていまいち役にたたん…。

気をとりなおして、手でdaeを編集して直して読み込んだら出来た。ちゃんと表示できました。

さて、アニメーションを…と思ったんだが、daeファイルをよく見てみるとskinとかskeleton要素が無いですよ。

まさかスキニング対応してないんじゃ…と思ったがエクスポーター読んでみたらちゃんと書き出そうとはしてる。

どうもArmatureとMeshを関連付けるのにMeshをArmatureの子要素にしていたんだが、MeshのModifierとしてArmatureを追加して関連付ければちゃんと書き出されるらしい。

MeshをArmatureの子にするのが普通だと思ったんだがModifierついてからはこっちが正しいのか。確かにこっちの方が綺麗だね。

ということで今ここ。先は長そうだが…。

_ XML Schema

そういやdaeファイルを検証しようとして困ったんだった。

調べるとライブラリでXML読み込みの時に検証するというのはよくあるんだが、単体で検証ってのがあんまり見付からない。

で、xmllintってのが使えそうだしOSX 10.4.8に付いてるしと思ったらCOLLADAのxsd読み込みでエラー。

困ったんだが、念のためDarwin Portsでxmllint新しくしたら*1それで通った。

xmllink --scheme xsdfile --noout xmlfile

こんな感じで検証できました。

*1  xmllintはlibxml2に入ってるんでlibxml2の新しいのを入れたんだけど

_ コメントとか

そういえば、コメントとかいじりました。

Hikiの方はスパムが入ってたんでhttp://を含むコメントを弾くようになりました。ttp://でなんとかしてください。

つか編集されたら無意味なんだけど、その時には俺しか編集できないようにするよ。

あと日記の方がスパム対策で日本語含まないツッコミを弾いてたんですが、それを外しました。

スパム対策用のプラグインてのがあったんでそれを入れてみました。手動スパムには無意味なんですが、ロボット対策にはなるはず。これもしばらく様子見ます。

_ .NETとセキュリティ

もういっこそういえば。

XNA GSEでプロジェクトをネットワークドライブに置いてMacで編集してWindowsマシンでビルド&デバッグしようとしたんだけど。

プロジェクト開いた時に信頼されてない場所だから制限かかるよー、と言われんだよね。

で、実行するとセキュリティ制限で実行できないとな。

まあ言ってることは分かるんだが、どう解除したものか。

アセンブリ一個ずつ信頼してやってもいいんだが、それもちょっと馬鹿らしいなぁ。

とはいえ良く分からなかたんで、アセンブリ一個ずつ信頼しようとしたら、そもそもセキュリティの例外でアセンブリハッシュが作れないよ!ということで信頼できませんでした。

いや、だから信頼しようとしてるんだが、そんなこと言われても…困る。

他の方法を調べてみたらゾーン毎の設定を変えて全て信頼することにしてやりゃいいらしい。

ユーザー毎に設定しようと思ったら、ローカル以外は全て信頼にできないじゃん。

あ、ユーザー毎の設定はマシン毎の設定を上回れないのか。確かによく考えたらそうかもしれんな。

マシン毎の設定でイントラネットを全て信頼するに変更して、上手く行きまし…あ、あれ? 上手く行きませんよ?

全部のゾーンを全て信頼するにしたら行けたんで、どのゾーンか調べたら、どうもインターネットのゾーンになってるらしい。

いやぁ、MacのWindows共有をマウントしてるだけなんですけど、インターネットなんですか。

仕方ないんでインターネットゾーンだけ全て信頼にしておいたけど、もうちょっと細かく設定できないもんなんだろうか。

Vistaもそうなんだけどセキュリティって厳しくすると不便になっちゃうんだよねぇ。


ページのトップへ | トップ «前の日記(2007-01-04) 最新 次の日記(2007-01-11)» | 編集 | kumaryu.net by kumaryu