全ゲ連

第4回に行ってきた。別にまとめ記事とか作ろうというわけではないが、思ったことを。
・ハウリングって効果音に使えそう
・面白さを体系的に考えるべき
・見やすい画面って色々ゲームをやっているうちに身についていた
Androidに大きな期待を寄せすぎないほうが良さそう
・テクスチャ重い
・今の同人世代はBASICから始まっているな

陰陽シュー

ここしばらくアイデアが全くわかない日々が続いていたが、今日久しぶりにアイデアが浮かんだので記念メモ。作る気はない。

主人公が陰陽師で、敵と、陰陽師の攻撃には陽と陰の属性がある。そしてステージにも陽ルートと陰ルートがあって、それはステージの進行中に特定の行動(アイテム取得やボム使用など)を取ることで任意のタイミングで切り替わる。陽ルートと陰ルートは表裏一体となっていてどちらが正規ルートというようなこともない。陰陽師の攻撃属性も特定の行動(これもアイテム取得を想定)で切り替わり、敵の属性と一致するか否かでスコアリングが異なる。

カスタムエフェクトでのテクスチャ

シェーダをいじり始めて、モデルのテクスチャを描画しようとしたところでつまずいた。
http://social.msdn.microsoft.com/Forums/ja-JP/xnagameja/thread/377561e2-783c-4be2-8337-69364080f1bb
にあるように、ひとつのモデルに複数毎のテクスチャがあるとカスタムエフェクトで描画するときに、コンテントパイプラインでいろいろやる必要があって簡単にはできない。で、いろいろ調べて次のような方法をひねり出した。
まず、モデルを読み込んだ後にこんな処理をする。

foreach (var m in model.Meshes)
{
	foreach (var mp in m.MeshParts)
	{
		mp.Tag = ((BasicEffect)mp.Effect).Texture;
		mp.Effect = effect;
	}
}

そして描画するときにはこうする。

meshPart.Effect.Parameters["MainTexture"].SetValue((Texture)meshPart.Tag);

デフォルトのモデルインポーターだとメッシュにBasicEffectを設定して、そのときに使用するテクスチャの情報も一緒に設定する、という仕様を利用した。
しかし、この方法ではバンプマップのようなマルチテクスチャには原理的に対応できないので根本的解決にはなっていない。

モデリング

3週間ほど更新が止まっていて、実際作業が止まっていた。そして今もなお怨霊の制作は止まっている。
XNAをいじる機会があって、シェーダーをいじりたくなったのでテスト用のモデルを作っていた。適当でいいと思っていたのに、テクスチャ張り始めたらやたらと大変になった。その分UVマッピングのやり方を習得できたからいいが。
作ったモデルは、図書館で読んだモデリングの本に載っていたサンプルを適当に再現したもの。