ユニティちゃん迷路(試作品)に音を付けるなどしました

シェアする

  • このエントリーをはてなブックマークに追加

こんばんは。

先日に引き続き、今日はユニティちゃん迷路(試作品)にテクスチャとBGMをつけ、ステージ遷移などの機能を追加しました。

それがこちらです。※音量注意!Chromeは非推奨なのでFireFoxなどでPCからアクセスしてください!

http://kyuuko.s7.valueserver.jp/unity/Maze2/index.htmlユニティちゃん:© Unity Technologies Japan/UCL)

操作方法は、矢印キーの左右で方向操作、上下で前進・後退です。

ゴールはピンクの床で、踏むと音が鳴って、1秒後に次のステージへ移り、BGMが変わります(難易度は全く変わりません)。

ステージは3段階あります。3つめをクリアすると、特に何も起こらず再び3つめのステージが始まります。ここの挙動は考え中です。

参考書籍:

以下、使用した素材などを書きます。

使用素材

床と壁にテクスチャ(表面の模様)を付けました。使用したのはIndustrial Textures(Arkham Interactive)のFactory_ConcreteFloorとFactory_SmoothWallです。コンクリートっぽく。

BGMは、Chiptune Rock Pack 1(Grumble Labs)のPuzzle Boxの3種類を使いました。3段階で盛り上がっていくBGMは楽しいですね。難易度は3段階で変わっていないのですが。

ゴール時の効果音は、FREE Casual Game SFX Pack(Dustyroom)のDM-CGS-45を使いました。

足音は、生活[1]|効果音ラボの「アスファルトの上を歩く2」と「アスファルトの上を走る1」を使用しました。前者が後退用、後者が前進用です。Audacityという波形編集ソフトで音量を6dB上げてから使用しています。

技術的な話

ソースコードはいずれ公開しますが、とりあえず概要を。(ここに書くのはUnityをある程度触ったことがある人向けの解説です)

ステージ変化(と見せかけてリスタート)は、GameManagerというGameObjectの中のBeginGame()とRestartGame()のメソッドをpublicにして、Goal(ピンク色のパネル)に設定したBoxColiderのOnTriggerEnter()でRestartGame()を実行することで実現しています。

Restart()は、全てのオブジェクトを破棄(Destroy)して、BeginGame()を実行します。

BeginGame()は、ユニティちゃんと迷路のプレハブをインスタンス化します。迷路はインスタンス化されたとき、迷路の形状を自動生成します。サイズはとりあえず11x11固定です。

また、GoalのOnTriggerEnter()では、自身の色を赤くして、設定された効果音を鳴らすという動作も組み込まれています。

Goalを踏んで(GoalのBoxColiderに突入して)1秒後にリスタート、というのは、コルーチンを用いて実装しています。詳しくは「Unity コルーチン」とか「Unity 秒後 実行」とかで検索してください。

効果音は、BgmSourceというAudioSourceの、public AudioClip変数3つにあらかじめ設定しておき、BgmUpdate()メソッドが呼ばれる度に次のBGMに切り替えて再生するようにしています。LoopはONです。

現在のBGM番号をprivate int bgmNumで保持しています。最初は0で、BgmUpdate()の中でインクリメントしています(2のとき、すなわち最後のBGMのときはインクリメントせず)。

足音は、ユニティちゃんにアタッチしたPlayerFootstep.csの中のpublic AudioClipにあらかじめ2つ設定しておき、Update()の中で、Input.GetAxisRaw()の値が+1か-1になったらそれぞれ前進・後退の足音を鳴らすようにしています。Input.GetAxisRaw()が0になったら音を止めます。

もちろん、音を鳴らすもの(ユニティちゃんとGoal)にはAudioSourceコンポーネントを設定しています。

以上が今回の追加要素の概要です。全体についてはまた後日ちゃんと書きます。

それでは、本日はこの辺で。

スポンサーリンク
レクタングル(大)
レクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする