円の周りでユーザーフレンドリーな極座標運動を行うにはどうすればよいですか?


23

私は2Dゲームに取り組んでいます。このゲームでは、船で惑星に着陸し、船から出て歩き回ることができます。

これらの惑星は非常に小さく(時々350ピクセルの半径を考えてください)、横から見られます。そのため、一般的に画面上で惑星全体を簡単に見ることができます。

これはちょっと紛らわしいかもしれませんので、ここに写真を示します 宇宙ゲーム

AキーとDキーを使用して、それぞれ反時計回りと時計回りに移動しています。問題は、惑星の「上」にいる場合(上半分)、これは理にかなっていることです。Aは左に移動し、Dは右に移動します。ただし、惑星の「下」にいる場合(下半分)、Aは右に移動し、Dは左に移動します。

これをよりユーザーフレンドリーにするためのアイデアはありますか?


21
ユーザーにこの混乱を感じるかどうか尋ねましたか?私は確かにそうではありません-あなたはあなたのキャラクターを左右に動かしてキャラクターの視点から左に動かすために右を押します。これは、たとえば、ターンの途中でボタンを変更するよりもはるかに優れています(それを行う予定がある場合)。
チャラノール

回答:


38

私の最初の提案は、A=反時計回りとD=時計回りの動きに固執することです。これはあまり混乱せず、このような軌道運動に関しては「標準」(つまり最も一般的な)選択です。

別の方法は、ゲームの動きを変えることです。プレイヤーが惑星にいるときにプレイヤーを動かす代わりに、惑星を回転させることができます。これも非常に一般的な選択ですが、画面上に複数の惑星がある場合、プレイヤー以外はすべて回転する必要があるため、方向感覚を失わせる可能性があります。この方法を使用する場合は、惑星の一部のみを表示して、目で追跡する必要がある移動オブジェクトの量を減らすことができます。

惑星の上半分のみ

マウスを自由に使用できる場合は、常にマウスクリックを使用して移動できます。場所をクリックすると、プレイヤーはそのポイントに向かって移動し、自動的に最短の方向を選択します。円は「クリック」であり、矢印は最短方向です。

クリックの最短方向

追加ボーナスとして、ゲームをアプリとして公開したい場合、モバイルコントロールに簡単に変換することもできます。


3
カメラの動きに合わせて進む場合、進む方向とスピードを強調したい場合は、カメラを少し遅らせることをお勧めします。キャラクターは、移動している方向に5度または10度傾いているように見えます。
サティベル

16

キャラクターが船から出たら、キャラクターが惑星の上にくるようにビューの向きを変更し、キャラクターが歩き回るときにキャラクターとともにビューを移動します。このようにして、キャラクターは惑星上で常にビューに対して一番上にあるため、左/右のコントロールはどこに着いても一貫性を保つことができます。


3
注意しないと、これは非常に混乱を招く可能性があります。
ビーフスター

11

1つのアプローチ(多くの場合、非静的カメラを備えたスティックベースの動きのあるサードパーソンゲームで使用されます)は、入力が開始されるたびに(あなたの場合、キーが押されたときに)動きの基準フレームを確立し、入力が終了する(キーが放される)までのその移動フレーム。つまり、「A」キーは、キーが離されるまで、文字が「左」に移動することを意味します。円の下にある場合は時計回り、それ以外の場合は反時計回りに移動します。

残念ながら、円に制約されているため、キャラクターが円の左端または右端の範囲またはその近くにある場合、この手法はまだばらばらになります。どの方向に進むかを任意に選択するだけで機能させることができますが、ユーザーは混乱するかもしれません。既存の「Aは常に反時計回りです」というアプローチに単に固執しているだけの方が、おそらくより混乱します。


6
円の右側にあるとき、Sは時計回りに移動するはずです。
user253751

1
OPが2つのキーのみに言及しているため、私はそれを考えませんでしたが、それは良い考えです。
ジョシュ

1
また、このコントロールモデルが最も良いと感じるアナログスティックコントロールを考慮することも重要です。
ビーフスター

10

同様のコンセプトをご覧になることをお勧めしますが、3Dではスーパーマリオ銀河です。

スーパーマリオギャラクシースクリーンショット https://youtu.be/_8eJC4gIAm4?t=19m

短い動きでは、参照フレームは同じままで、宇宙は移動せず、宇宙が特定のしきい値を超えて移動/移動するため、参照フレームは中央に戻ります。

移動するときに宇宙を「移動ぼかし」して、より自然に見えるようにし、位置を移動する可動部分に目が集中しないようにすることができます。

任天堂はゲームプレイを可能な限りスムーズにするためにかなりの研究を行ったと思いますが、これは彼らが決めたものです。最大の快適さとプレイアビリティのためにR&Dに何かを投資することを望んで、私は常に大企業が理解したものを見るのが好きです。


7

使用A/ Dそれぞれ、惑星の左端/右端点に向かう方向にキャラクタを移動させる、及びW/ S最上/最下点に向かって文字を移動させます。

このようにして、プレイヤーは常に入力移動と同じ方向にキャラクターを移動します。たとえば、キャラクターの位置に関係なくDS常に右に移動、常に下に移動します。

キーを押している間、ゲームは同じクロック方向に進むか、制限ポイントでキャラクターを停止します。停止しても、大きな問題ではないようです。プレーヤーは、同じクロック方向に進み続けたい場合に入力を変更するための完全な象限を持っています。

また、円形W- A- S- DまたはW- D- S- Aかなり直感的なようだ惑星の一周における入力結果のパターン。

複数のキーを押したままにすると、最後に押されたキーが優先されるか、8つの制限ポイントがあるなど、より複雑な動作を使用できます。


1
スーパーマリオオデッセイをプレイした後、これは私が提案しようとしたことです。ただし、制御スキームの変更により、最初非常に直感的ではありませんでした。それがあなたの主な制御スキームである場合、おそらくそれは問題にならないでしょう
18年

3

これは、多くのゲームが被る2つの古典的な「メンタルモデル」問題の1つです。

すべてのプレイヤーは、ゲームコントロールがゲームアクションにどのようにマップされるかについて「メンタルモデル」を開発します。時間の経過とともにゲームのコントロールがますます類似するようになるにつれて、人々は、別々のゲーム用に別々のモデルを開発するのではなく、確立された精神モデルが新しいゲームに適用されることを期待し始めました。すべてのプレーヤーがコントロールの動作方法について同じメンタルモデルを持っているわけではないことを除いて、これは問題ありません。

例えば、他の古典的な「メンタルモデル」の問題は、ジョイスティック(ゲームパッドの通常右アナログスティック)上に押すことを意味する必要があるかどうかで調べるか、それが意味するかどうかを前傾(:探しすなわちダウン)。どちらのモデルも客観的に正しいわけではありませんが、ほとんどのプレイヤーはこれらの2つの可能なマッピングのいずれかを頭に保持しているだけであり、ゲームが自分が期待するものとは異なる何かをする場合は捨てられます。

あなたの質問はまったく同じジレンマです。ここでの「精神モデル」の問題は、操縦stickを右に押すことは「キャラクターの右に移動する」(バイオハザードのように)か、「画面の右側に移動する」(マリオのように)かを意味します。または、この場合、「時計回りに移動」(パドルからジョイスティックコントロールへの従来の変換を使用するときのテンペストのように)。

すべてのプレーヤーには、慣れ親しんだモデルが組み込まれているため、変更に消極的です(または変更が困難です)。このような「メンタルモデル」の問題では、問題の処理方法に3つのオプションがあります。

  1. 開発者は、ゲームに最適なモデルを選択して使用します。選択したモデルに問題がある人の苦情を無視します。彼らはただ適応する必要があります。そして、あなたのゲームが十分に魅力的であれば、彼らはそうします。
  2. 両方の可能なモデルを実装し、プレイヤーが使用するモデルを選択できるようにします。
  3. 誰かがどのメンタルモデルを使用していても、コントロールのマッピング->ゲームアクションが同じままになるように、ゲームを再設計します。

この場合のオプション3(「メンタルモデルが互いに競合しないようにゲームを再設計する」)は、プレーヤーと共にカメラを回転させることを意味するため、プレーヤーは常に画面上に垂直に表示されます。この方法では、「右は時計回りに進む」と「右は画面の右側に向かう」という意味が常に一致しています。これ以上競合がなくなり、コントロールがどのように機能するかについてのメンタルモデルに応じてプレイヤーが混乱することはありません。

オプション2は、両方のスタイルの制御を実装することを意味します。右に押すと画面の右側に移動し、右に押すと時計回りに移動し、プレーヤーが使用するコントロールスタイルを選択できるオプション画面があります。

ここでの選択はすべて有効です。異なるオプションは異なる量の作業を必要とし、ゲームに異なる制約を課します。テーマ上または芸術上の理由で、プレイヤーが惑星の「下」側を動き回ることがあなたにとって本当に重要な場合、オプション3は使用したくないでしょう。1または2を使用する必要があります。そうではない場合、おそらくオプション3が理想的な選択です。

「ジョイスティックを右に押すと、画面の右側に移動することを意味する」という小さな実装ノート:この制御スタイルを実装するときは、ジョイスティックの方向を時計回り/反時計回りの選択にマッピングしてから、プレイヤーが惑星の下側に移動しても、ジョイスティックが再び移動するまで、同じ時計回り/反時計回りの決定を維持します。つまり、惑星の上で右を押すか、惑星の右側で下を押すと、それぞれキャラクターが時計回りに動き始め、プレイヤーが移動するまでキャラクターは惑星の底の周りでも時計回りに動き続けますジョイスティックの方向が別の方向であると解釈される惑星の一部に移動した場合でも、ジョイスティックを再度。

この手法は、多くの場合、ジョイスティックコントロールの「ロック」と呼ばれ、カメラが突然回転するときに3Dゲームで使用されます(プレイヤーに突然方向を変えさせたくない場合)が、ここでも役立ちますカメラの動きによってプレーヤーの変更されていない入力が突然、以前とは異なる何かを意味する場合、2Dゲーム。


1
2本の指でラップトップのタッチパッドを下にスワイプすると、スクロールアップまたはスクロールダウンしますか?モバイルデバイスを使用している場合、(指とページが「接続」されているため)起動しますが、マウスの同じ方向がダウンします... Macを使用するたびにこの接続が切れるのを感じます...
Draco18s

@ Draco18sそれはもう一つの素晴らしい例です!Windowsでは、下方向のスクロール入力はドキュメント内をさらに下方向に見ると見なされますが、Appleは、下方向のスクロール入力はドキュメント自体を下方向に移動することを意味します(つまり、ドキュメントの上部に向かって表示されることを意味します)。しかし、デスクトップOSでは、Appleは多くの人がスクロール入力がどのように機能するかについて他のメンタルモデルを持っていることを知っていたため、両方実装し、各ユーザーが好みを選択できるようにしました。
トレバーパウエル

ええ、あなたはそれを変更することができます、私はちょうどそれをデフォルトでセットアップしている非常に多くの人々を知っています(「ドキュメントを下に移動する」)。ヘック、私が1か月前に仕事のために手に入れWindowsラップトップには、それがデフォルトとしてありました。すぐにオフにしました(代わりに「エッジスクロール」機能をオンにしましたが、遅すぎるので再びオフにすると思います。真剣に、スクロール領域の全高がスクロールします。 ...)
Draco18s

2

入力にW / S / A / Dを使用します(または上/下/左/右)。入力を8方向(斜めを含む)として扱います。

次に、有効な方向(時計回りまたは反時計回り)が押された方向に最も近いプレイヤーを移動します。


このソリューションはキーボードよりもジョイスティックの方が適していると思いますが、それでも可能なソリューションです。しかし、Waddで円を描くように指を動かさなければならない場合、手に取るのは非常に困難です。 1時間以上。
サティベル

2

1つのオプションは、キーと移動方向の間の関連付けを定義する代わりに、次のようにすることです。

  • 「前方」に移動する1つのキー(現在の選択方向)
  • 「向きを変える」ための1つのキー(方向を切り替える)

これには、キャラクターにはっきりと見える「方向」が必要です。

ここで他のオプションよりもはるかに理にかなっているという確信はありませんが、念のため...


1

ダウンは重力がある場所です。そのため、プレイヤーキャラクターが惑星にいるときは、プレイヤーキャラクターの動きと一緒にカメラを回転させ、キャラクターが常に惑星の上にくるようにします。

しかし、これにより惑星でのナビゲーションが容易になりますが、他の天体と比較してプレイヤーの方向感覚を損なう可能性があります。これは、自分で決める必要があるトレードオフです。


1

時計回り/反時計回りの動きを使用することを選択した場合、プレイヤーがシステムを直感的に理解しやすくするためにできることがいくつかあります。

キャラクターに際立った指示を与える

キャラクターの半分が青で半分が赤の場合、プレイヤーが覚えやすい向きになります。「時計回り」または「反時計回り」を識別する代わりに、プレーヤーは青の方向または赤の方向に移動します。キャラクターが常に一方向を向いている場合(好ましくは時計回り、直立しながら動きが最も直感的になるように)、英語を話す人(および左から右の言語を持つ人)が自然に「右」を関連付ける傾向があるため、さらに良い「前方」、コントロールと移動方向の間の接続を強化します。

キャラクターの動きを止めさせない

キャラクターを動かしている限り、コントロールの方向を維持するのは簡単です。結局のところ、移動している方向に移動し続けても、何のアクションも起こらず、移動を逆にしたいときは、選択できる他のキーは1つだけです。あなたが選択に直面するのは、停止した後に再び動き始めるときだけです。一時停止時間が長くなるほど、以前にやっていたことに基づいて再びピックアップするのが難しくなります。一時停止の頻度と一時停止の長さを減らすことで、プレイヤーが移動方法を忘れないようにすることができます。


0

これには複数のアプローチがあります。

1)私がこれにどのようにアプローチするかは、惑星のセクションを取ります:上部、左、右、および下部(必要に応じてさらに)。そして、ユーザーが方向を押した後、キャラクターはそのボタンを放すまでその方向に進み続けます。そのため、キャラクターが左側にあり、ユーザーが押し上げると、キャラクターは解放されるまで時計回りに移動します。このようにすると、キャラクターが動いている間に参照フレームの変更を心配する必要がなくなります。

2)別の方法は、「危険な時空の恋人」がどのようにそれに近づくかを望みます。ジョイスティックを使用すると、表面に依存する参照フレームを持つのではなく、ジョイスティックが「キャラクター」が止まるのに望ましい場所になるように角度が設定されます。そのため、彼らの参照フレームは「惑星」の中心にありました。私はキャラクターと惑星と言いますが、彼らはどこに行くか、すなわちスラスタが船を動かすためにどの方向に向けられるかを決める外側にモジュラー船の部品を持っていました。

3)現在の設計方法。少し使いこなすこともできますが、これまで見たことのないプレイヤーはいません。あなたはそれを編集することができますが、惑星が回転しているように見えるので、プレイは常に「上」にあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.