2007/03/28 ま〜う〜す〜

マウスで使っていい部分。
・左ボタン
・右ボタン
・Zホイールの縦回転
以上。(私的見解)

Zホイールボタンは使って良いのか悪いのかわからん。
あったら便利、無くても問題ない補助的な位置にしておく。

Zホイール横軸はどうだろう?
付いてないマウス使ってる人もまだ大勢いるよね?
自分は付いてても使ってない。
なのでこれも補助的な位置にしておく。

サイドのボタンは無しの方向で。


てなわけで使える部分は3箇所。
この3箇所でどれだけゲームを操作することができるのか?
今のところはこんな感じ。

3D空間での操作時
・左ボタンクリックで決定、キャラの選択
・右ボタンクリックでキャンセル(戻りきった状態だと3Dカーソル操作と2Dカーソル操作の切り替え)
・Zホイールの縦回転でカメラの距離調整
・左ボタンドラッグでカメラの回転操作(コレが曲者)

03_28.jpg
キャラクターの移動先を決定する際に移動可能マス(青マス)上で
カメラの回転操作を行おうとすると移動先決定になってしまう。(移動可能マス上じゃなければ問題ない)
このゲームの性質上、移動先決定の際にカメラ操作をできなくするわけにはいかない。
まいった。
残されているのはシングルクリック、ダブルクリックの判断しかないみたい。
ダブルクリックで移動先を決定にすればこの問題は簡単に解決される。

今までダブルクリックは封印していた。
理由は「ダブルクリックはシングルクリックより疲れる」から。
ダブルクリックはパソコン使ってると当たり前のように行う操作だけど意外と手に優しくない操作方法。
頻繁にはやりたくないんだよね。
でも、「決定という意志」が強く反映される操作であることも事実。
というわけで渋々。
まあ、キーボードによるショートカットも用意するのでこれ以上考えすぎてもしょうがないかな〜と。

他にも、ボタン押してる長さで判断とかもあったり。

2007/03/21 敵の思考

自分の場合は複雑になりそうなソースはまず日本語で組み立てます。
フローチャート作りたくないので。
それはもう大雑把に。
日本語で組み立てるといっても「ひまわり」じゃないよ。


敵の移動目的マス座標を決める思考

・ターゲットユニットが居るところが目的マスの基点

・現在居るマスからターゲットのマスに行くまでにかかる最短の歩数と道を出す

・もしその歩数が移動範囲−1以内ならば
{
	・ターゲットの向きを調べる

	・移動可能なマスで尚且つ攻撃が届く場所がみつかるまで基点から探索を続ける(武器の射程を考慮する)
	{
		・ターゲットの後ろ、横、前の順番で移動可能か探索

		・キャラによってはターゲットの前、横、後ろの順番で移動可能か探索

		・どこもダメならば次の内どれか
		{
			・他の行動を行えるかチェック
			・ターゲットにできる限り近づく
			・ターゲットとの間合いを計りターゲットの攻撃が届かない場所にできる限り移動する
			(絶対に何かの行動をとらせる)
		}
	}
}
・そうではないならば
{
	・頭の悪いユニットは最短ルートを移動できるところまで移動する

	・頭の良いユニットはターゲットの移動範囲と攻撃範囲を考慮して間合いを決め移動する
}

・他、作りながら追加と調整。



日本語で書くとそんなでもないみたいだけど、これをプログラムするには様々なデータが絡んでくる。
向きもデータだし、攻撃が届くかどうかなんてのも武器データとか地形の高低差データとか絡んでくる。
そもそもどうやって探索するん?って昔は思ったものである。
SRPGの敵の思考ルーチン、挫折するほどではないけれど色んな部分が絡みすぎて予想外にめんどいわ。
移動という行動を決めるだけでテンパってますよ。

この思考に入る以前にどの敵に行動をさせるのか?
ターゲットユニットをどういう条件で決めるのか?
どんどん複雑になっていくぅ。

指定マスに座標移動するプログラムは既にできてるんだけどねぇ。
多分、敵の思考ルーチンをクリアすれば今回のプログラムで悩むところはなくなるはず!!
・・・そう思いたい!!