Unity Create a Game Series (E25. Finishing up)をやってみました。

とても長いチュートリアルで途中苦しかったですが無事にチュートリアルを完了できました。23回目、24回目でAudioの設定、25回でメニュー作成、26回でスコア、ヘルスメーター、最後にImageEffectsを追加してこのゲームを動かすことができました。

全体の感想

Sebastian LagueさんのProcedual cave generation tutorialは、Unity公式チュートリアルに載っていてYoutubeでいくつか動画チュートリアルを配信してくれています。

このチュートリアルは、トップダウン・シューティングゲームを作るために最もお勧めできるチュートリアルでした。ただしある程度プログラミングが分かっている必要がありました。実際に、再生数が回を重ねるごとにユーザーが減っているのを見ると、動かなかったときに自分でgithubのプロジェクトと比較したり、プログラミングのエラーを自分でつぶす能力がないと、フィードバックはあまり期待できないので先に進めない状態になっているようでした。

また、ウェーブ生成や各種アニメーションは、コルーチンやUnityの機能を使わず、プログラミングで各種アニメーションの基礎を実現しました。例えば銃のリコイルやリロードのアニメーションなどです。実装してみればそこまで難しいことではないので経験になり、Unityのアニメーション方法と、基本的なイージングやアニメーションをプログラミングで実装する方法の2つの選択肢を手に入れられました。しかし、これは初心者向けのチュートリアルと思っていたので、ちょっとこれは難しすぎるのではとも感じました。

レベルの自動生成は、何も知らないと実装に苦労するところなので、チュートリアルの中でかなりの時間を割いて説明してくれたのが大変良かったです。またこの部分の動画とソースコードが独立して切り出せるので、他のプロジェクトにすぐ適用できそうです。

クラス構成について

最初にクラスの全体像などが分からないため、こうしたほうがいいのでは?と途中に何度も思いながら実装しました。ただゲームの複雑な仕組みを学習していくうちに、Unityでは、C#スクリプトはオブジェクトの振る舞いを制御するための部品の1つなので、デザインパターンや高度なC#の使い方(Linqなど)や、立派なクラスデザインより、とりあえず動かせるスクリプトを作って誰でも読めるものを用意すればよいかなと考えるようになりました。手軽に読めて、ゲームが面白ければそれでよいかなと。。。

チュートリアルと公式のソースコード

https://github.com/SebLague/Create-a-Game-Source

Unity5の3Dサウンドについて

このゲームでは、ゲーム中はプレイヤーに、音が出る部分(リスナー)が付いているので、そこから音が出て3Dサウンドになります。3Dサウンドは単純に音声再生時に、座標を指定するとそこから音が出るようになります。

uGUIのDynamicな値とStaticな値

Unityでメニュー画面を作るときにボタンやスライダーなどを使いますが、スライダーなどは、入力された値をプログラムに渡すことができます。このとき、ユーザーがUIのスライダーを変更したDynamicな値を渡す方法と、どんな時も固定値を渡す方法(Static Parameters)の2種類が選択できます。

以下の画像のように、上部にDynamicなメソッドが表示され、下部にStaticなメソッドが表示されます。よくあるミスで、Dynamicな値を渡したいのに、Staticなメソッドをイベントハンドラーとして設定してしまう場合があります。注意しましょう。

スライダーのメニューの上部がDynamicな値
スライダーのメニューの上部がDynamicな値

最後の回でヘルスメーター作成

下の赤線がヘルスメーター
下の赤線がヘルスメーター

最後の回で、ヘルスメーターを作成しました。今後メーターを作るときに別途サンプルを探す必要がなくなってよかったです。

スコアを見やすくするアウトライン(Outline)

Unityには、テキスト表示の他にOutlineコンポーネントがあります。これにより輪郭エフェクトをつけることができます。ほかにもShadowがあります。Unityで初めてゲームを作る場合、Outlineを使わずデフォルトフォントのため何かパッとしないゲームになってしまいます。ちょっとした装飾をすると印象が変わるので、お手軽ですしおすすめです。

005
Outlineなし
006
Outlineあり

007

Unity5の強力なImageEffects

このプロジェクトの最後の数分でImageEffectsを適用しましたが効果が絶大でした。Unity5であれば、Standard Assetsをプロジェクトにインポートすればすぐに使えます。

008
ImageEffectsなしの状態
009
Vignette and Chromatic Aberrationのみ適用。角にいくほどボケて黒くなる。
010
Screen Space Ambient Occlusion(SSAO)のみ適用。キューブの上と右に影が表示
011
Color Correction Curvesのみ適用。色補正
012
上記3つのImageEffectsをすべて適用

UnityはImageEffects(≒ポストエフェクト)を設定するだけで、劇的な変化があるため今後ゲーム制作で積極的に使っていきたいです。公式マニュアルはちょっと重たいですが、気が向いたときに、ImageEffectsの一覧を見てみるとよいです。

http://docs.unity3d.com/ja/current/Manual/comp-ImageEffects.html

このプロジェクトの配布

http://hajimete-program.com/games/Unity Create a Game Series (E25. Finishing up).zip

Assets/Scenes/Menu.unityをUnity5.3で開けばタイトル画面(メニュー画面)が表示されます。

まとめ

インベントリー管理は別途学習する必要がありますが、玉転がしでアイテム取得は行ったので、それを応用して簡易的なインベントリー管理を作成すれば、このゲームに組み込めそうです。

このチュートリアルで、ガンシューティングの実装方法と動作するプログラムは入手できたので、次回からは、MagicaBoxelで作ったキャラクターのガンシューティングを作っていきたいです。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA