明日の自分へ

主にUnityのゲーム開発に関することを呟いていく予定

【Unityゲーム制作】自作ゲームを教材に制作講座風にリメイクする#1 (Unity1week202102)

自作ゲームを教材に、ゲーム制作の流れを眺める企画。
ということで、ほぼ思い付きですがやっていきましょう。
こんにちは、M橋です。

自分の制作の流れを振り返るのが目的ですが、
記事を見て頂く方にも有益になるように、
制作講座という形式を目指してみようと企んでいます。*1

1回目となる今回は以下の内容になっています。

  • 題材とするゲームについて軽く概要を掴む
  • 全体の制作の流れを決める

※今回はまだ制作の中身には入りません。

ゲームの概要

f:id:e684-creaim:20210306213656p:plain
完成イメージ図(※Unity1Week投稿作品の画面)

投稿したゲームについてはこちらの記事にリンクを張っています。
これを説明すると次のようになります。


ひたすら落下する球体を、
重力の向きを変えることで障害物を避けつつ、
短い時間でゴールを目指すゲーム


ここから、主要な要素として次のモノが分かります。

  1. ひたすら落下する球体を

 → 落下する球体がゲームの主人公である

  1. 重力の向きを変えることで

 → 重力の向きを変えることがプレイヤーの操作である

  1. 障害物を避けつつ

 → ペナルティを生む障害物がある
(それに触れないように注意することが求められる)

  1. 短い時間で

 → 時間がゲームの達成度である

  1. ゴールを目指す

 → 球体がゴールに到達することがゲームの目的(クリア条件)である

1、2、5は、ユーザが何か操作をして、ゲームが何か反応することに関する要素です。
3,4は、ゲームへの達成感やプレイヤーの前に立ちはだかる障害に関する要素です。

次に、これら要素を実現するための流れを次に見ていきます。

※ここに挙げた概要は、次の動画の内容を参考に自分でつけてみました。
www.youtube.com

制作の流れ

上で上げた5つの要素を実現するための作業項目や
取り掛かる順番を確認します。

作業項目

ここで挙げる作業の一部はUnityの標準機能で十分なものもあるので、
全てを自前で準備することにはならないでしょう。
なお、ゲームとしての作りこみ部分*2は省略しています。

  • 落下する球体
    1. 球体を作成する
    2. 球体が落下する処理を実装する
    3. ステージとの衝突処理を実装する
  • 重力の向きを変える*3
    1. ステージを作成する
    2. ステージを回転させる処理を実装する
    3. プレイヤーの操作を受け付ける処理を実装する
    4. プレイヤーの操作と、ステージの回転を紐づける
  • 障害物
    1. 障害物を作成する
    2. 球体との衝突処理を実装する
  • 時間
    1. 時間を計測するタイマーを作成する
    2. 時間を表示するUIを作成する
  • ゴールに到達する
    1. ゴールを作成する
    2. 球体がゴールに到達したことを判定する処理を実装する

作業順序

個人的な感覚ですが、小規模のゲームであれば
思い通りに動かせる小さなモノ
徐々に大きくしていくというスタイルが良いように思っています。

大雑把に言えば次のような流れです。

  • プレイヤーが操作できるものを作る
  • とりあえずクリアできるようにする
  • クリアを難しくする障害を作る
  • ゲームの達成度の指標を作る

なので、今回だと次のような作業順序を想定しました。

  1. ステージを作成する
  2. ステージを回転させる処理を実装する
  3. プレイヤーの操作を受け付ける処理を実装する
  4. プレイヤーの操作と、ステージの回転を紐づける
  5. 球体を作成する
  6. 球体が落下する処理を実装する
  7. ステージとの衝突処理を実装する
  8. ゴールを作成する
  9. 球体がゴールに到達したことを判定する処理を実装する
  10. 障害物を作成する
  11. 球体との衝突処理を実装する
  12. 時間を計測するタイマーを作成する
  13. 時間を表示するUIを作成する

この流れで、今回投稿したゲームを作りなおしていきます。

まとめ

今回は概要と流れを掴む内容となったので、ゲーム制作の中身には入りませんでした。
ただ、Unity1Weekに参加する前と今とで、既に考え方の違いを感じています。
参加する前は、出来上がるゲーム画面のイメージからゲームの要素を抽出し、制作の流れを考えていました。
参加した後の現在は、ゲームの説明から要素を抽出し、流れを考えました。
どちらのアプローチが良いのか、或いはどちらもイマイチなのか。
それを、この連載ではっきりさせられればと思います。

次回からは実際にゲームを作っていきます。


それでは、今回はここまで。
お付き合いありがとうございました。

*1:なお、私自身はゲーム開発歴1年未満の若輩者です。この形式にすること自体も挑戦ですね。

*2:タイトル画面やステージ切り替え、一時停止等。

*3:今回はステージの向きを回転させることで、間接的に重力の向きを変えます。