読者です 読者をやめる 読者になる 読者になる

馬子のだらだら日和

ゲーム業界で働きたいプログラマ(プランナー)志望の専門学生♀がだらだらゲーム感想やらプログラム関係とか呟く場所

Unity5馬子流チュートリアル:入門3DRPG編_01

※基本的に自分の学校の後輩に向けた内容であくまで自分流です。
筆者自身まだ未熟なので間違えている部分も多くあると思うのでご注意ください。

Unity5の環境の作り方は別途紹介するかもしれない。

お品書き

馬子流の考え方、勉強方法

専門学校入学から約3年間で学んだことをまとめておく。
あくまで自分流なので、これが全てで決してないです。

Unityを使う場面

モック作り

Unityは2Dも3Dも簡単に作る事ができる。

Cocos2d-xやUE4、その他フレームワーク等でガッツリ作る前に、 簡単にテスト版(モック)を作るときに気軽に利用できると思う。
テスト版は、考えたロジックが破綻していないかなどの確認がメイン。
ロジックが成立した上で、本当に面白いのか、頭の中のイメージと違わないかを動くものを見て判断する。 それらのチェックをしていないと、学校制作の数ヶ月開発期間の中で、チェックが甘く設計がガタガタ、
後二週間しかないって時点で、一から書き直しなんてことになったらとてもつらい。
寝る時間がないなんてことに……。
ロジックが成立していれば、メインのエンジンで書いてもそこまで手間はかからないと思う。
(多少メインのエンジンの機能を把握する必要はある)

プランナーと連携

テスト版以外のメリットは、プランナーも気軽にいじることができるところ。
例えば、プログラマーがUnityのエディタ上でキャラクターのパラメータを変えられるようにすることで、
いちいちプログラマーが書き換えてプランナーを呼んで実行してっていう手間がなくなる。 後は、バランス調整だけっていうところまで作れたら、プランナーにおまかせすればいい。(仕様書がしっかり出来ているのが前提だけれども……)
エディタ上でなくても、Excelでマップのデータや味方・敵キャラのパラメータ、スキル、ドロップアイテムなどなどを作ってもらって、それを読み込むとかでもOK。

Unityで開発するときの考え方

ガンプラに例える

ガンプラを想像してください!(ガンプラ知らない人はごめんなさい)
目の前に買ってきたばかりのガンプラ(MS)があります。 箱を開けると、パーツと説明書があります。
説明書は仕様書
パーツはスクリプトソースコード)やモデル(グラフィック素材)、サウンドなど
と思ってください!

説明書どおりに組み上げて、胴体、腕、足(足があるMS)、バックパック、武器……と大まかなパーツに分けて作り、それらを合体させると一体のMSが完成します。
自分はUnityでの開発をガンプラ作りに脳内変換して考えてます。

例えば、A1(モデル)とPC1(スクリプト)、B1(当たり判定)を組み合わせて、キャラクターが出来上がる。それをプレファブ化(一つにまとめる)すると、いちいちまた作らなくても、キャラクターが取り出せるし、複製も楽ちん。

出来上がったパーツ、キャラクター、敵キャラクター、カメラ、フィールド、ゲーム管理(ゲームクリア/オーバーなど)などの大まかなパーツたちを組み立てると、一つのゲームが出来上がる。
だいたいそんなイメージです。

勉強方法

調べ方

ネットで調べる!

これが一番大事。というか全てと言っても過言ではないと思う。
先輩や先生に聞こうと思っていることはだいたいネットに情報が転がっている。

ネットで調べる=人に聞くなって言うことではない

例えば、調べたらこの情報が載っていて、これはどうやって使えば良いんですか?と応用方法を聞いたりするのはむしろしてほしい。
何も調べていなくて、こうしたいと言われても、頭の中のイメージは全く別物の可能性があって、教えていくうちにこれ違うってなるのが結構ショック。
イメージの共有のために、どんなことを調べたのかを見せるのが有効だと思うし、調べていくうちに知識が深まる。

ネットで調べる以外に、デジタルから離れるということもかなり有効。

紙とペンを用意。
紙にどうしたいのかを図にして書く。 数学で言えば数直線やグラフをとりあえず書くのと一緒。
紙とペンでなくてもiPadスタイラスペンで手書きメモソフトに書くでもOK。

付箋を使うのも有効。
付箋にやりたい項目を書き、紙に貼る。それを実現するためには、これとあれが必要で……と、マインドマップのように矢印を引いて項目を上げていく。 ある程度まとまった項目をまた付箋に書いていく。項目が出尽くしたら、その付箋を新しい紙に付箋同士の関係を明確にして貼っていき書き込む。
長方形の付箋や、正方形の大きめの付箋、テープタイプの付箋など100円ショップにたくさん種類があるので、どんどん試すのがおすすめ。
(将来的にUMLが書きやすくなったり、タスク管理がしやすくなるかも)

自習のとき

自習でゲームを作るときの最大の注意。(学校制作にも共通する)
壮大なゲームを企画しない! 大体コケて(挫折)自信を失くし、今後に影響する。
プロジェクトだと、一つ間違えば友情崩壊的な負の連鎖を初めてしまう可能性がある。
手頃なゲームを再現してみるところからやってみて、どんどんそのゲームをカスタムしていくのが手頃。
とある先生の考えを借りると、アナログのゲームはデジタルでだいたい再現できる。トランプや簡単なボードゲームを再現してみるのが良いと思う。

ゲーム一本作るのも大事。次は作るのに慣れたら、今後も使いまわせる機能を作っておくのもいいと思う。
就活の時期になったらポートフォリオとして使いやすいかもしれない。
例えば、PlayerPrefsを使わないセーブ機能を作るとする。

  1. ゲーム画面でテキストデータを生成してみる。
  2. テキストデータを端末上に保存してみる。
  3. 端末上のテキストデータを読み込んでみる。
  4. セーブするデータのクラスを作ってみる。
  5. Jsonに変換してみる。
  6. Jsonデータを端末上に保存・読み込みをしてみる。
  7. Jsonデータを暗号化してみる。
  8. Jsonデータを復号化してみる。
  9. Jsonをクラスに戻す。

こんな流れでどんどん進めてみるのが自分がやってきた中で勉強になった方法。

まとめ

Unityはとりあえずゲームを作りたいというときに最適なツールだと思う。
まずは、難しい技術(シェーダーがどうこうなど)のことは考えずに、ゲームを作るときの考え方を勉強するのがいい。
身近なものに例えて、噛み砕いて飲み込む。
考えるときは、紙に書くなどして、目に見える形で考える。
すぐ目の前の目標は身の丈にあったものにする。
レベル1の勇者で魔王に挑むなんてことは難しいのと一緒。

以上、馬子流の考え方、勉強方法でした。 次回は、基本的な使い方の予定。