この本については前も書いたのですが、PC環境が整って2Dゲームのサンプルを実際に作って試してみたので再度レビュー。
初心者でもわかるように非常に詳細に一つ一つの工程が書かれています。なのであまり迷子にならずサンプル等を完成させられる。(マックの画面を元に説明しているのでWindowsだと微妙に違う場合はあります。)
また本に掲載されているサンプルは単純ですが、そこから発想して自分であれこれできるような具体的な例が挙がっていると思います。キャラの動かし方、当たり判定の方法など。
当然ながら、これを読んで分かった気になっても、実際に何か本にないことをやろうとすると不明点は多々出てきます。そういう時は素直にネットで解決策を探しましょうw
プログラムをしていた人でもUnityの用語は新しいですよね。ゲーム関連の何かをしていれば既知の概念かもしれません。
私はUnity初心者なので、これが馴染みがないんですよね。
Prefab(プレハブ):設計図のようなもの。例えばシューティングゲームなら敵機や弾が無数に必要ですが、それ作成するために必要。これを元にジェネレータースクリプトを書いて量産するみたいなイメージ。
少数ならコピーして作ってもいいですが、色や挙動等を変えたければ全てについて変更しなくてはならない。設計図なら1箇所の変更で全てに反映されるみたいなことです。
これはプログラマの考え方として非常に重要です。力業でやらない。(一度くらいならいいが、結局何度もやることになって、最初にひと手間かけた方が楽だった…となる。マクロとか組むのはそういうことなので。)
Physics(フィジクス):物理エンジン
Rigidbody(リジッドボディー):物理シミュレーションを適用するために力の計算をする
Collider(コライダ):当たり判定に必要なオブジェクトに紐付ける図形
Mecanim(メカニム):アニメーションの作成から実行まで。パラパラアニメ
下に載せたサンプルにありますが、「歩く時」と「ジャンプ時」の二つの状態があり、その状態遷移を図で矢印を引くように指定したりするんだね~。その後、右側のウィンドウで設定したり、ソースにプログラムを追加したりすることはあるけど。でも例でやった以外はどういう遷移になるのか調べながらやってみない分からん。
あと、サンプルプログラムでエラー処理などはほぼ触れてないので、プログラム自体が初の人はどういった場合をはじけばいいのか等は想像しにくいかもしれません。
開発環境の日本語化に関してはネットをみれば一発です。
ただ本書はサンプルプログラムで「Image Type」を「Filled」のように書いてあるので、開発環境を日本語化していると、どこだっけ?となる場合があります。日本語化したものは「Filled→埋めてある」となってました。
まあ、わかりますけども、ただでさえ慣れない開発環境なので戸惑うことはあるかも。「Preferences」「環境設定」メニューから日英表示を瞬時に切り替えできるので問題はないですが。
Unityで書くC#については、名前でFind関数を呼べばオブジェクトが返ってくるみたいな都合いい書き方で、高級言語すぎて戸惑う。なんでそんなことが出来るのかという感じ。SendMessage()でpublicの関数が呼べるし。GetComponent<>()でアタッチされたコンポーネントを読んで、その機能を使えるし。
ということで、Webに載せて大丈夫なのかわかりませんが、本に載っていたサンプルを二つ、以下に置いておきます。
(*Web公開するためにターゲットをWebGLにしてビルドする必要があるのですが、かなり時間がかかった。私のPCで10分弱。ハングしているかと思って何度かタスクマネージャーで落としてしまった。
もう一つはエラー終了する。一度Unityを2018年版にダウンコンバートしてビルド失敗、その後2019版に戻すアップコンバートをしてビルドしたら成功した。)
Unityは最新版を使ってしまいましたが、LTS版(Long-Term Support 変更しない安定版)を使った方がよさそうですね。
以降、サンプルゲームです(環境により動作しなかったらスマソ)
Web公開用としてWebGLでビルドしましたが、基本的にPCのWeb用です。スマホやタブレットだとブラウザがWebGLをサポートしておらず基本的に使えないです。スマソ。
でも「WebGLサポートしていない」旨のボタンでokを押すと、何となく動作する場合があります。私のスマホは一応動きました(画面からはみ出したりしますが)
慣れないので色々と問題はありですがとりあえず。
『CatEscape』
・遊び方
キーボードの左右カーソル押下、または左右矢印クリック/タップでネコが移動します。上から落ちてくる矢印に当たると円形のヒットポイントゲージが減少します。サンプルなのでただそれだけです。HPゲージが0になってもそのままで終了とかはありません。
・私が独自に追加した部分:
実行と同時に矢印が落ちっぱなしだったので、左上に「Push Start/Stop」ボタンを追加。最初は何もせず、ボタンを押すと上から矢印が落ちてきます。HPゲージもリセットされます。もう一度押すと停止します。
『ClimbCloud』
・遊び方
雲に乗れるのでジャンプしてどんどん上に行って下さい。
PC:スペースキーでジャンプ。左右カーソルキーで移動
スマホやタブレット:画面タップでジャンプ。左右(横向きは上下?)にスマホを傾けると移動(横向きにすると変?x座標の問題?)
動きました?
あと、本には3Dのサンプルが載っていて、それをやってみるのと、自分で何か簡単な仕様を考えて作っていってみるということですね。
時間が潰せ過ぎる。
広告とか
-- 記事一覧ページへ --