Unityに関連する記事です

2Dトップビューアクションの設計を考える


 Unityのバージョンは2021.1.xf1、あるいは2021.2.xf1 以降のバージョンにて製作を行う前提です。
 
 ゲームのジャンルは2Dゲーム、PC、あるいはスマホで遊ぶアクションゲームです。
アドベンチャーゲームにも利用できます。

 基礎設計が出来上がれば、あとはモデルを自由に差し替えたり(キャラ以外のものに変更)、ステージ用の背景を変えたり、
新しいルールや機能を追加していくことでオリジナルアプリとして製作することも出来ますし、最終的にはポートフォリオとして頂くことも出来ます。

 少なくても以下の内容について、詳細な設計を考えていく必要があります。

・ゲーム性(ゲームシーンとCanvasでゲームを製作する、快適な操作、など)

・画面のデザイン(UIの配置、ゲームの世界観に沿ったUIのデザイン、など)

・必要なシステム・機能(移動方向と移動アニメーションの同期、カメラの制御、など)

・演出(DoTweenによるアニメーション、画面のエフェクト、など)

・ゲームのサイクル(ゲームの流れ、追加要素を設計して実装する、など)

 それでは1つずつ設計を行っていきましょう。


・ゲーム性

1.ゲームシーンとCanvasでゲームを製作する


 2Dのトップビュー型のゲームですので、今回はゲームシーンとCanvasとを組み合わせて製作するようにします。


2.快適な操作


 まず最初は PC のキーボードにて遊ぶことを念頭に置き、シンプルな操作で快適に遊べる設計を考えます。

 1.十字キー(AWSDキー)によるプレイヤーキャラの移動
 2.ボタン操作でスタータスの確認ウインドウの表示/非表示

 上記のような挙動のシステムを実装する手順を考えます。


 

・画面のデザイン

1.UIの配置


 仕様として検討している情報のうち、常にゲーム画面に固定して表示しておきたい情報と、そうではない情報とを精査して決定しましょう。
色々なゲームを参考にしながら、どの部分にどんな情報があれば便利なのか、邪魔にならない場所なのか、という視点で考えながら設計しましょう。


2.ゲームの世界観に沿ったUIのデザイン


 各画面のUIは常にゲーム中表示されていますので、そのデザインや、文字に使用するフォントの種類が見にくかったりするとユーザーは疲れてしまいます。
世界観に凝ったデザインもよいですが、見やすさ、読みやすさも一緒に考えて、バランスを保ちましょう。
 

必要なシステム・機能(移動方向と移動アニメーションの同期、カメラの制御、など)

1.移動方向と移動アニメーションの同期


 プレイヤーキャラの移動に際して、キャラが右方向に移動する際には、移動用のアニメーションも右方向を向いて歩いているアニメーションに切り替える必要があります。
この制御を BlendTree とスクリプトを利用して設計ロジックを考えます。


2.カメラの制御


 プレイヤーキャラの移動に合わせてカメラを追従させて、常に画面の中央にプレイヤーキャラが映るようにします。
ただし、ゲーム画面の端まで移動した場合にはカメラの移動を止めて、製作されていない画面を映さないように制御を行います。

 オートバトルの開始と終了に合わせて、カメラのズームインとズームアウトを自動的に制御するようにします。


演出(エフェクト)

1.DOTweenを使用してアニメーション演出をする


 DOTween(ドットゥイーン)とは無料アセットの1つで、広く使われているTween(トゥイーン)系のアセットです。
Tweenとはゲームオブジェクトの途中経過情報を補間して表現することを言います。
例えば、Aというゲームオブジェクトが現在の地点から別の地点に移動するに際し、その移動する間の情報を補間して表現することが出来ます。
この補間表現機能を利用することにより、様々なアニメーション演出を実装出来ます。

 またDOTweenには、この機能が終了するタイミングを待って別の処理を呼ぶことや、途中で補間処理を中断したりといったことも出来ます。
Transformコンポーネントに対しての補間機能が多くありますが、それ以外にも使用方法は多岐にわたります。

 今回は、バトルに合わせて HPゲージを表示して、終了と同時に非表示にする処理や、
ゲーム内の数字の表示をカウント表示する処理などにこの DOTween の機能を利用しています。


2.画面のエフェクト


 画面をフラッシュさせたり、暗転させたりといったものだけではなく、キャラクターをアクションさせたり、画像を一瞬だけ大きくしたりなど
画面を通じて行える演出はたくさんあります。これらは場面に応じて適した内容のエフェクトを適宜いれていくことで、ゲームの臨場感や没入感が変わってきます。
 
 やりすぎず、少なすぎず、バランスを見ながら考えて実装しましょう。

 今回は発展編で学習予定です。


ゲームのサイクル

1.ゲームの流れ


 ロールプレイングゲームであれば、フィールド画面を移動して、バトルを行って、というようにゲーム内での処理の流れが決まっています。
これをすべて書き出して、どの部分の処理と処理がつながっているかをしっかりと考えてからゲーム全体の流れを作成していくようにします。

 ゲームの設計・仕様、それを実装するためのロジックを考えることが非常に重要になります。
そのため、スクリプトを書くのは最後になります。設計などが完了していないうちに書き出してしまうと修正を余儀なくされるためです。


2.追加要素を設計して実装する


 上記の内容をふまえて、ベースとなるシステムに追加するべき設計を行い、自分で考えた機能を実装してみましょう。



 設計の項目については、以上になります。詳細については実装する際の手順内にて説明を補記していきます。
また、これら以外にも用意するべきものがあるのであれば、それらも考えておきましょう。


 以上でこの手順は終了です。

 => 次は 実装手順を考える です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます