レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
-
やっぱりゲームはUIが重要
ゲームでは重要なものの1つにUIがあるにょ。
プチコンはDSiウェアということでDSiのハードウェアボタンやタッチパネルを使用することが
できるにょ。
3DSでもDSiウェアとして動作するため3DS専用のデバイスにはプチコンは対応していないにょ。
画面解像度や立体視はまぁ仕方ないとしてアナログ入力が可能なスライドパッドは対応して
いるとゲームの幅が広がるだけに残念に感じている人も多いのではないかと思われるにょ。
それならば作ればいい・・・ということで「アナログPAD」ルーチンを作ってみたにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/tips/routine.htm#pad
仕組みはあえて説明するまでもないくらい単純なもので単純にタッチした座標を元に判断を
しているだけにょ。
一般的な手法だとATANでパッドの中心を原点として考えた場合の角度を求めてそれから
SIN、COSを使って求めるというものが考えられるにょ。
これはシューティングゲームでは誘導弾などでは常套手段だけどここで必要な角度は原点を
基準としたタッチ座標の角度であるためATANからSIN、COSを使って求めるのは二度手間に
なってしまうにょ。
そのためタッチした座標からそのままX、Yの移動量を求めているにょ。
この座標を一定数倍すればゲームのキャラの移動に使えるにょ。
ゲームに使用する場合はベクトルの向きと大きさを示すものよりもX、Yに分解したものの
方が圧倒的に多いためこの方が処理速度の面でも有利になるにょ。
角度がどうしても欲しい場合はATAN(X,Y)で求められるからね。
さて、こういったアナログ風の操作はレースゲームのハンドル操作でも使用できそうだけど
それならば最初からハンドル型のコントローラーを用意した方がいいにょ。
というわけで、「ハンドルコントローラ」ルーチンも作ってみたにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/tips/routine.htm#handle
ハンドルコントローラルーチンはアナログPADルーチンで代用できそうだけど両者には
決定的な違いがあるにょ。
それは絶対座標による入力と相対座標による入力の違いにょ。
絶対座標は原点を定めてそれからの距離で決まる座標系だけどこれはアナログPADの場合は
タッチした座標とX、Yの値は1対1で対応しているにょ。
そのため前回どこにタッチしたのか関係なく現在タッチしている座標ですべて決まるにょ。
しかし、ハンドルコントローラの方は前回タッチした座標との差分をとって相対的な値を
元に演算されているにょ。
例えばPCで絵を描く場合にはマウスは相対座標なのに対して一般的なペンタブレットは
デフォで絶対座標の設定(相対座標にも変更はできる)となっており、ペンタブ上でタッチ
した座標がそのままPC画面に反映されるにょ。
「どこを示すか」が分かりやすいのが絶対座標で「どれだけ動かしたか」が分かりやすいのが
相対座標にょ。
そのためポインティングデバイスやお絵かきでは絶対座標の方が都合がいいにょ。
ただし、ポインティングデバイスとして使用する場合には画面とポインティングデバイスの
サイズ差が非常に大きいため絶対座標の方がいいとは言えないにょ。
ドット単位の緻密な操作するためには相対座標によるものの方が都合がいいにょ。
ただし、アナログPADもハンドルコントローラも座標を出力するものではなく移動量を出力
するものなのでこのPCにおけるポインティングデバイスとは異なるものの相対座標と絶対
座標は操作感が異なるものであるということは分かるのではないかと思われるにょ。
ハンドルコントローラはどれだけ移動したかが分かりやすいためレースゲームに向いた
直感的な操作が可能になるというメリットがあるわけにょ。
ちなみにIF ABS(A)>1.57THEN〜の前の行にA=AN*T:SA=SGN(A)を入れると相対座標入力
から絶対座標入力へと変わるにょ。
これを実行すれば相対座標入力の方が操作しやすくてハンドルコントローラールーチンに
絶対座標入力をを行うならば上記のアナログPADの方が直線的で分かりやすいと感じるのでは
ないかと思われるにょ。
ただし、いくら相対座標入力で感覚的に操作しやすくなったとはいえタッチパネルを使って
擬似的に実現しているため実物のハンドル型コントローラと比べたら操作感では劣ってしまう
のはやむを得ないにょ。
それでも、一般的なハンドルのように回した際には元に戻ろうとする力が働くようなものを
再現しているにょ。
実際に力が加わるわけではないのだけどそのままの角度を維持しているとまっすぐ進むため
「0度の角度に戻す」という余分な操作が必要になるにょ。
かといって、離した瞬間に角度が0に戻ってしまうと操作ミスが頻発してしまうためその戻る
速度も適度と感じるものに調整してみたにょ。(最大角から100フレームで0に戻るように設定
しているけどこれは60fpsでの動作を元に作っているためそれより遅いゲームに使用する場合は
ハンドルが戻る角度はそれに比例した速度にした方がいいかも)
あと、ハンドルは隅(円周上)をタッチ操作しなくても円内であればどこであってもタッチ
操作は可能であるため見た目(線1本分の幅)ほどは操作性は悪くはないにょ。
しかし、あまり行わない操作であるためこれを使ったゲームは難易度がどうしても高くなって
しまいそうにょ。
試しにPETIT RUN mkIIに組み込んでみたのでどんなものかはそれをプレイして判断して
みて欲しいにょ。
http://twitpic.com/cfdchr
とりあえず、このハンドルコントローラールーチンは大喜利に投稿予定のレースゲームに
採用予定にょ。
まぁまだこのレースゲームは仕様を考えている段階であるため今後大幅な変更があり得るし
まだ採用すると決まったわけではないけどやはり一番の問題は処理速度にょ。
ボタン入力ならば15fpsあれば入力漏れはほとんど無くなるけどタッチパネルによる操作
だと15fpsではどうしてももたつき感が出てしまうにょ。
これは表示速度が遅いためなめらかさに欠けるというのも要因の1つだろうけど今後の
高速化がどこまでできるかが操作性に大きな影響を与えることになりそうにょ。
実はこのハンドルコントローラールーチンは先日「沈没ゲーム」の試作品を作ったときに
思いついたものにょ。
http://twitpic.com/cce1uj
まぁこれを作ったときはそんなことを全く考えてなかったのだけど・・・(笑)
DSや3DSではレースゲームがたくさんあるけどタッチパネルをハンドルに見立てて操作する
ゲームというのは私が知る限りではリッジレーサー(北米版)くらいしかないにょ。
これはハンドルは直感的な操作が可能とはいえタッチパネルとボタン操作の両立が難しい
というのが一番の原因ではないかと思われるにょ。
そうなると私が作ろうとしているレースゲームもその辺が重要になってくるかもしれないにょ。
|
|
|
掲示板管理者へ連絡
無料レンタル掲示板