【1日20分】Unityゲーム開発、AIでどこまで行ける?

「よし、久しぶりにゲーム作るか」ということで、C#プログラミングを用いたUnityのゲーム開発をやっていくことにする

↓ゲームそのものの開発記録

タイムライン

1日目(30min):Unityのインストールと3Dチュートリアル

最初に入っていたサンプルプロジェクトを起動。

チュートリアルになっていた。自分が高校生の頃はこんなの無かったのに…

ぜんぶ英語だが体が覚えているのでサクサク進む。

ステージにオブジェクトを追加しながらロボットを動かしてスターを回収するだけのゲーム。

2日目(60min):roll a ballチュートリアルへ,ボールが動くようになる

roll a ballというボールを動かすゲームのチュートリアルに移行。

数年ぶりにC#のプログラミングへ。

3日目(160min):ゲームの基本機能実装,アイテム収集,敵AI,勝敗処理など

この日で既にゲームの中核が完成した。

カメラをプレイヤーに追従させる、回収対象のアイテムの設置,設定、回収対象との当たり判定実装など、敵を避けながらアイテムを集めるゲームが完了した。

敵キャラを置き換える処理やアセット探しなども進め、本格的に自作ゲームへと入ろうとしている。

ちょっとしたガイド記事も書き残していく。

4日目(100min):テキストコーディングのチュートリアル

スクリプトでトラックを動かしながら木箱を吹っ飛ばしていくゲームのチュートリアルを一通り終えた。

VisualStudioを導入したことで補完機能が使いやすくなった。

フォントが好みではないし慣れないが、長期的にはこっちのほうが良いだろう。

5,6日目(90min):ベースインベーダー風シューティングゲーム

旅行中の車内でもゲームを作っていく。

プレイヤーを動くようにして、弾丸を撃てるようにして、敵が降って来るようにして。

モバイル電源の電池が無くなりそうだ。

7日目:(70min):疾走ゲームのジャンプやアニメーションなど

おじさんが疾走するゲームを作っていく。

ジャンプしたり、障害物に当たったらぶっ倒れたりする。

8日目(90min):パワーアップアイテムやUI

ボールを転がすゲームのチュートリアルを終える。

なお時間計測は面倒くさいし、労力と成果は単純には比例しないので省くことにする。

9~11日目(~1/10):3DCG学習開始。チュートリアル完了

完全に勘が戻ったので、Unityのチュートリアルばかり行うのはこれで終わり。

Blenderを用いた3DCGコンテンツの学習も開始。

12日目(1/11):ゲームの要件定義

本格的に自作ゲームを作っていく。そのための過程としてアイデア出しの記事を作成↓

13,14日目:(11/13)3DCGの学習とアイデア出しと開発フロー作成

3DCGにおいては、テクスチャ=静止画から適当な3Dオブジェクトを生成できるようになった。

粗末だが自分で背景・街並みを作れるようになった。

ゲーム開発においては,やることリストというかプランを作成。

15日目(11/14):3Dモデリングに区切り、ゲーム開発開始

個人的にモデリングにこだわることは労力の無駄だと思っているため、かなり作業や学習をケチった。

その結果の成果物がこれ↓

ゲーム制作の方も進める。キャラクターキャラを配置して動かす。

16日目(11/15):ゲームの基本を実装

プレイヤーキャラとスマホ対応のインプット処理で沼り、数日間をドブに捨てそうな気配があったのでサンプルアセットを流用して突き進む。

・自分のキャラが走り回る(スマホ入力対応)

・敵キャラが追いかけて来る処理

過去の教材を流用しつつ20分くらいでパッと実装。

この勢いでMMDにも触ってみることにする。

買った記憶しかなかった数年前の本を引っ張り出してくる。

とはいってもこの本、ゼロからモーションを作るような内容ばかり。

そんな車輪の再発明を頑張っても、100時間単位の膨大な時間が溶けて下位互換品が完成するだけ。

モデリング、振り付けなどは全て成果物を買ってくるべきである。

とりあえずMMDについては当分は商用・私用含めて利用目的がないので、配布アセットをパッと付けて適当に一枚作って終わり。

↑この一枚まで一時間ほど。だいたいの勝手は分かった。

他ごとに流されているといつまで経ってもゲームが完成しないのでMMDは当分お休み。

Unityのほうもゲームオーバーとリトライまで実装した。

17,8日目(11/16,17):3DCGと現実映像を合成する処理

この日は朝2時に起きて、起きてから90秒以内にスパッと仕事開始。動画が2本一瞬でできた。

だが旅行に行ったのでそれ以降の仕事は無し。

17日。朝イチでBlenderのトラッキングを練習。

画面の記号をトラッキングしてカメラの三次元的な動きを3D空間上に再現し、3DのBlenderオブジェクトと2Dのカメラ映像を重ねられるようになった。

除外領域の設定が思ったようにいかずに沼っているが、何とか進めていく。

19日目(11/18):広告挿入の処理、エディタ更新

広告挿入の処理を終えようしたが、パッケージ導入で沼る。

結局エディタを全部消して入れ直すことになる。もどかしい時間が続く

またblenderを早速自分の動画チャンネルに活かす。直7エンジンを強引に作り、アニメーションやカメラの移動まで入れる。

20日目(11/19):広告の処理、画面奥の世界作り込み

ライティングを合成したことで画面の奥に空間が広がっているようなテイストが強くなっていく。

最終的にはコインが降って来る動画にしたいので、スキマ時間でコインのモデルも探す。

Unityについてはエディタの再インストールの手間の都合で時間が掛かる。

なんかとトラブルを乗り越えて復帰。広告の挿入に成功

21日目(11/20):敵のスポーン処理,スコア表示,多数の敵を実装,実機テスト成功,カメラアングルの感度調整,広告表示間隔調整

敵が時間経過で増えていくようにした。

バグを修正しつつ、経過時間をスコアとして記録できるように。

多種多様な税を実装した。

実機テストにも成功した。

カメラアングルがぐわんぐわんになるという過敏すぎるトラブルに対処。

またリトライするたびに広告が出るのは不適切なので、短時間で広告連打にならないようにした。

迷わないようコメントもしつつ、一旦広告ナシでリリースするためのワンタッチ切り替え処置もしておく。

このままリリースしようと思ったが、あまりにもゲームが簡素で完成度が低いため先送り。

22日目(11/21):画面手前に張り出してくるオブジェクトを作る

この日の作業は旅行前の2時間だけ。

動画のストックが10本単位であり、移動中に原稿作りをするため朝はblender作業のみ。

UVエディタを用いたテクスチャ貼り付けも一通り慣れてしまった。

数日前は意味不明だったのに。

例によって自分のメインはモデリングではないので、多少は適当に流して効率重視。

一応は画面の奥から箱が落ちて来るようにできた。

23日目(11/25):Blenderチュートリアルを終える

いつまで経っても終わらない&今からやりたいことからズレる&必要になったら学べばいい&最初から触りだけやりたかった という理由でblednerのチュートリアルを終わらせる

24~27日目~(11/28~12/2):救急車のモデルと動画を作る

いちいち記録を取るのが面倒くさくなった。

習慣が付いたので節目で節目で追記していく。

ここから数日はハイエースの先端にGTA5のファントムウェッジのようなくさびを付けたモデルを作り、その動画をyoutube用に仕上げる工程がある。

とある動画のために救急車の改造を開始。

モデルを書き出してさっそくUnityに取り込み。

昔買ったことさえ忘れていたアセットを漁り、使えそうな素材を集めて来る。

それっぽくセットアップが完了。

いざとなればこのシーンをこのままゲーム版のタイトルにもできそうである。

とりあえず改造するところから作りたいのでアニメーション関連のあれこれをセットアップ

しかし複数のオブジェクトのキーフレームを1つのタイムライン上で扱う方法が見つからずに迷走。

Blenderアニメーションに鞍替えすることにする。

子オブジェクトの設定に時間が掛かったが、何とか完了。

今後の管理のためにオブジェクト内の親子関係を分けたが、この作業にとんでもなく時間を喰った。

映像が寂しいのでmixamoなるサービスを使ってみることに。

ダンサー登場☆

その後12月2日まで、Unityがエラーを起こしたり、スクリプト関連でわちゃわちゃしつつ何とか動画を仕上げる。

このまま救急車のゲームも作れてしまいそうである。

開発ではなく環境関連でエラーが起きたり、数日間の大きな寄り道となったりしてしまったが、新しい成果物を仕上げられたので良かった。

12/6 :税のゲームを仕上げていく

操作性が悪かったので画面の右半分を触るだけでカメラを動かせるようにした。

色々な処理がケンカして、これだけでも2時間くらいかかってしまった。

マップを交換するが、読み込んだアセットのシェーダーにエラーが起きたのでテクスチャを決め打ちで当てはめていく作業へ。

マップを迷ったので自分で作ることにした。

適当にペイントソフトで書いたものを地面に貼り付け。

さて、国会議事堂の良い感じのデータが無かったので自作することにした。

3/10 再始動:目的地の表示処理

あれからこの記事の更新はやめたが、税から脱げるゲームはリリースを終えた。

救急車のゲームもほぼ完成し、最後の調整をしている。

時間が取れないので、1日20分限定の100days系チャレンジ企画として続けていくことにした。

さて今日の作業だが、複数の目的地が上手いこと連携されていない。

具体的には2個目以降の目的地が非表示にされない。

その修正作業を行っていた。

明日やること:

最後の目的地を取った後にテキストが被る
目的地が見つけづらいので目立たせる

3/11 テキスト表示の被りを治す+目的地強調+目的地配置

終わりが見えないので体験無料版はこの日で完成とする。

目的地関連の処理を終える。

3/12 直上復帰+目的地設定

スタックした際の脱出に関する処理を治す。

目的地到達時の処理を見直す。

明日やること:子オブジェクトの当たり判定処理を親に持って行く

ーcoolider,rigidbody,スクリプトなど

3/13:目的地obj&当たり判定編集→Steamリリース準備

目的地オブジェクトのPrefabを編集して親子構造を見直し、バグりづらくする

またプレイヤーの当たり判定を調節して快適にプレイできるように。

またSteamでリリースするための準備も進めることにした。

明日やること:

PV撮影用のカメラを一個追加し、Cボタンで切り替えられるようにする

EScキーメニューに操作説明追加

左上あたりにESC :Menuみたいな表示を追加

デモ版をSteamにリリースする準備

3/14:Pauseガイドと三人称カメラ→ビルド

前日に決めた通り、三人称カメラとメニューを実装。

そしてついにビルドを掛けた。

翌日:ゲーム終了ボタンの実装

上部へスクロール