右スティックは試作中のゲーム
Linehard公開の直後から試作を始めたゲームが少しずつ動かせるように
なってきた。
動かせるようになった・・・と言うだけでゲームらしさは微塵もないが、
ゲームとして成立するかどうか及び技術検証も含めての試作なので
ゲームとして完成するかどうかの見通しは不透明。
タイトルはBtUB(仮)・・・構想自体は実は1~2年前からあったもので
いずれ試作してみたかったゲームの一つ。全方位シューティング。
今回のチャレンジポイントはジャンルが全方位シューティングと言う事で
操作方法の候補としてツインスティック系も試したかった事もあり、
今まで使った事のなかった右スティックの研究から始めた。
cf2.5で右スティックを使うにはXBOXコントローラーオブジェクトまたは
Joystick2オブジェクトを使用する必要があるのだがキャラを移動させる為に
スティックの角度を取得しようとして軽く壁にぶつかった。
Joystick2オブジェクトの『Right Stick Direction』では右スティックの角度が
取得出来ない。他のキーやトリガは反応するかと少し試しているうちに
Right Stick Directionで取得できるのは左右トリガーである事が判明した。
この時接続していたのはXBOX360コントローラー。
PCで使えるPS系のコントローラーが手元に無かったので確認していないが
PS系(Direct input?)とXBOX系(X input)のコントローラーでは右スティックと
トリガーとが逆に配置されているらしい(確証なし)。
XBOXコントローラーオブジェクトの『スティック右 水平・垂直位置を取得』
ならば値を取得出来たのでPS系の検証はコントローラーを入手してからにして、
一先ずXBOXコントローラーのみ対応で右スティックの研究を開始。
上記コマンドで取得できる値が中央値が0で水平・垂直それぞれ-100/100、
これをどう角度に変換するのかで若干悩んだ。
こう言っては何だが数学は苦手だ。
数学的な考え方は嫌いではないが学生時代まじめに授業を聞いていなかったので
一般常識としての数式すら、ろくに頭に入っていない。
入力方向を北東・北西・南西・南東の4つに分解した時、水平と垂直の値を
結ぶ線分A(斜辺)を辺の一つとする直角三角形を思い描き、辺Aの中間地点と
スティックの根元を結ぶ直線の角度を取得すれば多分右スティックの方角が
測定できると思うのだが・・・ごく普通に使う入力デバイスの処理ごときに
そんな面倒な計算をいちいちしてるのかと言う疑問が湧き、小一時間考えた末に
検出しているのはスティックの角度ではなく速度であると結論付けた。
傾斜が深くなればなるほど、速度が増すのだ。
垂直と水平の速度を合成すれば+90度方向以外の移動距離も解る(気がする)。
キャラを移動させる方向と速度ではなく、1フレーム毎に移動するピクセル数を
割り出して1フレーム毎に当てはめればそれっぽくなるのではないか・・・
と言う事でその考えが正しいかどうかは解らないが右スティックでキャラ(照準)を
動かせるようになった。
キーボードで操作する時はWASDキーで上左下右に移動しマウスでエイムと
射撃を行ない、XBOXコントローラー使用時は左スティックまたはD-PADで
キャラを操作し、右スティックでエイム、LBとRBで射撃。ここまで確定。
ただ、ここまでは操作系の検証で技術面。本題はゲーム性の検証となるのだが
こちらの検証を行なうには敵キャラの配置とステージの仮組みが必要となり、
もう少し時間がかかりそうだ。
完成して世に出るかすら判らない試作中のゲーム。
思えばマキシマム2もそんな試作品の一つだった・・・
本筋も寄り道も、続報はまあもう少しお待ちいただきたい。
『今やりたい事をする』レガシスウェアはそう言う方針で回しています。
※追記:前回の記事で触れたLinehardのプレイ動画をBunaguchi氏よりも
投稿いただいております。しかも5面クリアまでのプレイ!!感謝です。