見出し画像

#30『CUBE CLONES』から学ぶゲームデザインの引き出し(3)「画面回転に連動したUI」

本記事は遊んだゲームから、一つのアイデアに注目してゲームデザインの実例を勉強していく連載記事です。

ゲーム開発のプランナーやプログラマー、ゲーム制作を志す方、アイデアのインプットのための引き出しとしてご活用ください。

前回:#29『CUBE CLONES』から学ぶゲームデザインの引き出し(2)「ルビ付きの操作説明」
前々回:#28『CUBE CLONES』から学ぶゲームデザインの引き出し(1)「タップ待ち無しで進むクリア画面」

今回題材にするのは小規模でとてもシンプルなパズルアプリですが、そんな中からも勉強できるアイデアはあるものです。

今回は3Dゲームでよく出てくる画面の回転UIの連動についてです。

ゲームの紹介

『CUBE CLONES』は、ブロックを動かして、ゴールスイッチを全て踏めばクリアという3Dパズルゲームです。
iOS/Android用で、¥370(執筆時点)の有料買い切りアプリ、広告は無し。

画像1

CUBE CLONES / Yusuke Nakajima

本作の特徴はタイトルにもある通り、任意のタイミングでブロック自身を「クローン」出来ること。

クローンで増やしたブロックは全部同じ動きをするので、上手く障害物に引っ掛けたりしながら、ゴールスイッチを同時に踏ませるように操作します。

(詳しい紹介は、前々回の記事に)


視点を回転できる3Dゲーム

『CUBE CLONES』は立体パズルのため、3Dの画面構成となっています。

3Dゲームを制作していると、2Dゲームではあまり発生しない問題が出てきます。画面の視点(=カメラ)によっては、物陰になる部分がよく見えないという現象です。

3Dゲーム制作では、この視点の問題はどうしても付きまとってくるもので、開発者はよく頭を悩ませることになります。

本作はシンプルなルールのパズルゲームのため、ストレスを感じることはほとんどないのですが、いくつかのステージでは、壁の向こう側が床なのか穴なのか確認したくなる場合があります。

そのため、プレイヤーが視点(カメラ)を自由に回転できるようになっており、物陰部分をいつでも確認できるようになっています。


視点が変わったとき、どっちが「上」?

さて、視点を回転できることで物陰が見えない問題は解決しました。次に問題になるのはそのときの移動方法です。

よくある据え置きゲーム機の3Dアクションゲームのように、キャラの移動がアナログスティック操作になっている場合は、あまり問題になりません。

直感的に移動したいと思う方向にスティックを傾ければ、その方向にキャラは移動してくれます。

ですが、本作のように、マス目で区切られて「上下左右」にしか動けない場合、そして移動をカーソルキーで行う場合は、視点の向きと移動方向をどう対応させたら良いでしょうか。

もっとも近い角度に向かって移動させる、というのが無難な案かと思いますが、45度の境界線を境にしたときに、ちょっとした角度の差で移動方向が変わってしまうかもしれません。

画面の回転に合わせてUIも

さて、本作『CUBE CLONES』でどういう解決が図られているかというと、なんと、視点の回転に合わせてカーソルキーも一緒に回転させてしまうという方法が取られていました。

画像2

確かにこれなら、移動したい方向と移動ボタンの向きが常に一致しますね。

これはスマホのバーチャルパッド(物理コントローラーの上下左右キーではなく、画面上に表示された移動ボタン、という意味です)ならではの解決方法ではないでしょうか。

この回転が実現できるように、円形と矩形を組み合わせたUIデザインになっているのもポイントですね。個人的にはあまり見たことの無いUIだったので感心してしまいました。


考えてみよう

このように、画面視点の回転に合わせて変化するUIというのは、どういうものが考えられるでしょうか。

真っ先に思いつくのは、3DアクションゲームやRPGなどによくある「ミニマップ」でしょうか。画面の視点が変わる度にミニマップもグルグルと周り、地形や敵などの位置が分かる、といったものです。

これにもいくつかの実装パターンがあり、適切に使い分けた方がよいです。

ミニマップ自体が視点に連動してグルグル回るときは、自分の周囲の状況は分かりやすいのですが、どちらが「北」か「南」か、といった全体的な方向感覚を失いやすくなります。

マップの「上部」の方にあると思って進んでいた目的地が、途中で敵と乱戦になっている間にマップが回転し、いつの間にか目的地が「右下」の方に表示されていて迷子になった……ということがおきるかもしれません。

RPGの街マップのように、目的地の位置関係を提示したい場合は、ミニマップ自体は回転させず、その中に表示したプレイヤーアイコンの向きが変わるという実装がいいかもしれません。

逆にアクションゲームのように、敵が右からくる、後ろからくる、といったように、自分から見た相対的な位置関係だけ分かればいい場合には、ミニマップ自体を回転させるのがよいでしょう。

また、ゲームによっては、ミニマップと全体マップのように、2種類のマップを切り替えることができるというのも案でしょう。


あなたの開発しているゲーム、構想しているゲームで、
・3Dゲームの場合、見えない物陰はあるでしょうか?
・視点の回転操作は必要でしょうか。
・2Dゲームの場合、画面を回転するギミックは盛り込めるでしょうか。
(ステージの上下が反転するようなアクションゲームは稀に見かけますね)
・それらの場合、画面回転に連動させた方がよいUIはあるでしょうか。

考えてみましょう。


プログラマーの視点

このようなUIの回転を実装するとなると、視点なりキャラクターの現在の「角度」を算出する必要が出てきます。

プログラム的には、カメラやキャラクターに直接角度を保持させている場合はその角度を参照すればいいですし、「向きベクトル」で保持している場合には、X方向とY方向成分を元にして、atan2(アークタンジェント)を使って角度を算出することが多いでしょう。

「三角関数なんて社会に出ても役に立たない」という話題を見かけることもありますが、(特に3Dの)ゲームプログラムの世界においては、三角関数・ベクトル・行列あたりの知識は日常茶飯事ですね。


皆さんも一緒に色々とアイデアを考えて、より良いゲーム作りのための鍛錬を積んでいきましょう。

本記事がゲーム制作をする皆さんのインプットに役立てば幸いです。

この連載が、ゲーム開発のインプットに役立つと感じていただけたら、是非評価やシェアをよろしくお願いします。


本連載の趣旨については下記記事をご覧ください。


他の連載記事はハッシュタグ「#ゲームデザインの引き出し」からどうぞ。

(※本記事中のゲーム画像は、「引用」の範囲で必要最低限の範囲で利用させて頂いています)