「よし、久しぶりにゲーム作るか」ということで、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がエラーを起こしたり、スクリプト関連でわちゃわちゃしつつ何とか動画を仕上げる。

このまま救急車のゲームも作れてしまいそうである。
開発ではなく環境関連でエラーが起きたり、数日間の大きな寄り道となったりしてしまったが、新しい成果物を仕上げられたので良かった。
この挑戦に至った経緯(11/1)
「今日の分の動画を作っただけで過労で動けなくなる」という絶望状態を脱し、少し時間が余ってきた。
動画をこれ以上作るのは退屈だが、何もしないで過ごすには長すぎる時間。
せっかくなのでゲーム開発に復帰していくぞ。


