見出し画像

UnityCreativeCoreの学習⑧音楽について

音楽は後回しにされがちな仕事ですが、下手に実行したり、完全に忘れてしまった場合には、ユーザーがゲームから我に返る原因になります。

だ、そうです。今回もがんばりましょう!
まとめはこちら

さてなんにせよ、音楽を再生するので、シーンビューで音が出るようになっているかチェックしましょう。

シーンビューのサウンド再生

もちろん、OSそのものの音も再生可能なようになっている前提です

windows11であれば、タスクトレイ、言語バー付近をチェック

ゲームの中で音楽をどのように考えるべきか

・サウンドスケープ(音の風景、音環境)を作る
・シーンのニーズを把握し、必要な音を見つける
・イベントでどのようにトリガーするかを検討する
・サウンドスケープ構築の中で、最終的にオーディオのアクセシビリティ(利用しやすさ)を考慮、検討する。
・特殊効果を適用して環境のビジュアルを反映させ、新しいシーン用に独自のオーディオサウンドスケープをゼロから作成する。

こういったことができるようになれば、学習は成功であるといえるでしょう。

ダイジェティックサウンドとは

サウンドにおける「ダイジェティック」と「非ダイジェティック」の違いは、以下のように説明できます:

  1. ダイジェティック

    • ダイジェティックなサウンドは、物語や映像の世界内で発生する音を指します。

    • つまり、キャラクターが聞くことができる音や、シーン内の出来事に関連する音がダイジェティックなサウンドです。

    • 例えば、キャラクターがラジオを聞いている音や、戦闘シーンで銃声が鳴る音などがこれに該当します。

  2. 非ダイジェティック

    • 非ダイジェティックなサウンドは、物語や映像の世界外で発生する音を指します。

    • つまり、視聴者やプレイヤーに対してキャラクターやシーンの内外で流れる音楽や効果音が非ダイジェティックなサウンドです。

    • 映画やゲームのBGM(背景音楽)や、ナレーション、さまざまな効果音などがこれに当たります。

簡単に言えば、ダイジェティックなサウンドは物語の中で起こる音であり、キャラクターや出来事と直接関連しています。一方、非ダイジェティックなサウンドは物語の外部から来る音であり、視聴者やプレイヤーに対して追加の情報や雰囲気を提供します。

オーディオエンジニアの責任

オーディオ エンジニアは、エクスペリエンス内ですべてが良好なサウンドであることを確認する責任がありますが、そのサウンドがどこから来るのかにも責任があります。

どこから聞こえるか、と同時に、著作権を侵害していないかなど含め、既存のサウンドライブラリを使用したり、それを重ねたり、最初から作成したりします。以下のようなツールがよく使われます。

  • Wwise Spatial Audio : より高度な空間オーディオエフェクト用のプラグインで、インディーズスタジオとAAAスタジオの両方で同様に使用されています。

  • Audacity : オーディオエフェクトを録音および編集できるオープンソースのオーディオアプリケーション。既存のサウンドに小さな編集を加える場合に特に便利です。

  • Beepbox : 楽器のメロディーを作成するための無料のオンライン ツール。

オーディオリスナーとオーディオソース

この二つのコンポーネントが、オーディオのカギです

ユーザーの耳であるAudio Listener と、シーンビューでオーディオファイルを保持するAudio Source。

AudioListnerはカメラに自動的に組み込まれ、AudioSourceは組み込まれたオーディオクリップを再生します。

Unityで現在使用できるオーディオ形式

は以下です。

  • MPEG (Moving Picture Experts Group によって開発)。.mp3

  • Ogg Vorbis - オープンソースの汎用オーディオ。.ogg

  • WAV (波形オーディオ ファイル) - Microsoft と IBMによって開発。.wav

  • AIFF (Audio Interchange File Format) - Apple によって開発。.aiff

空間の感覚をもたらす音

アンビエントミュージック、環境音楽は、ゲームにおいて重要です。
試しに、練習がてら自分の周りの音に注意を払いましょう。
現時点で聞こえる音はなんですか?

・お湯の沸く音
・外を歩く靴音
・壁の中のモーター
・隣人が扉を開ける音
・鳥の鳴き声
・車の音、遠くのサイレン

そういったものを知っておくことが、環境音楽を決定する上で重要です。

プレイヤーに足音を追加しよう

足音をつけるのは簡単だと思う?

芝生、水、アスファルト、それぞれ違う足音になるはずです。

これらは、アニメーション イベントを使用して編集します。

画面のスケルトンには、すでにアニメーションが登録されている。
ということは、プロジェクトウィンドウでanimなどで検索すると、サウンドのこともわかりそうですね。

animで検索してみて、Walkの入っているものをインスペクターでチェックしてみる。

インスペクターでanimationタブを開いて

animationタブを開く

イベントセクションを開きましょう

イベントセクションだ

[イベント] セクションには小さなタイムラインと、送信できるさまざまな種類のデータのリストが表示されますが、最初のイベントを追加するまではグレー表示され、使用できません。

一番下の、アニメーションプレビューウィンドウを大きくしましょう。


カーソルを動かして足が地につくフレームを探します
そのタイミングでイベントを追加し・・・青いフラグが立つ
PlayStepを実行させる。
編集したら適用します。

着地音なので、左足だけでなく右足着地と、ジャンプの着地、走るアニメでの足音、なども発見して、おなじように関数を実行できるようにしましょう。

他のアニメでも同じ音を出す

スクリプトに音をアタッチしよう

スクリプト内で、以下のように、場所にあわせて足音を変えてアタッチしている

ヒエラルキーウィンドの中でプレイヤーを探し、PlayerArmatureにスクリプトをアタッチします。

アーマチュアは構造、骨組みのことである。
さらにオーディオソースを追加する。

自分自身の足音なので、キャラクター自身のオブジェクトに。

骨組みに、AudioSourceを追加

スクリプトには、このような形でアタッチできる。

Grass,Water,Caveそれぞれ別の音をアタッチさせる

PlayStepは、ランダムな音を出す。廊下や石畳なら同じ音でも良いが、草原や水場、洞窟であれば同じ音では不自然だ。

PlayStepはこのように定義している

アニメーションのイベントの関数に入れたものはこれを呼び出しているが、なぜそうなるのだろうか。今のところ謎。

OnControllerColliderHitの関数が、今どこのサーフェスの上を歩いているかを判定してくれる。

床にタグを定義しているのだ

床にタグをつけましょう

草のフィールドにはGrassのタグをつけてみましょう

音楽を入れて、歩いてみる

歩くのだ
各足音はすべて1種類だけで。

最初は良いけど飽きる・・・

オーディオファイルを複数選択して、各項目にまとめてドラッグしましょう

これで、音に変化があらわれます。単調なのよりずっと良いですよ!

そういう訓練をしっかり身につけておきましょう

音源のライセンスの確認をしましょう

チュートリアルで参照されている Unity Asset Store やその他のリソースに加えて、Open Game ArtFreeSound.orgでも多種多様なサウンドエフェクトを見つけることができます。オーディオ デザイン全般に興味がある場合は、携帯電話でオーディオを録音して独自のサウンド効果を作成してみることを検討することもできます。

オーディオを入手する方法に関係なく、オーディオにどのような種類のライセンスがあるのか​​、また自分のプロジェクトで使用できるのかを確認してください。Open Game Art からわかるように、信頼できるリポジトリにはオーディオ ファイルのライセンス タイプが明確にマークされています。

これはCreativeCommons4.0の表示

CreativeCommon4.0の場合

  • Attribution(表示):このライセンスでは、適切なクレジットを表示することが求められます。つまり、オリジナルの著作者に適切なクレジットを与える必要があります。クレジットの方法は自由であり、著作者の指定に従うこともできます。また、クレジットにはリンクを提供し、ライセンスの詳細を示す必要があります。また、もし修正を加えた場合は、その旨を明記する必要があります。

  • No additional restrictions(追加制約なし):このライセンスでは、以下のことはできません

    • 追加の法的条件や技術的な手段を使って、他者の作品の利用を制限する。

    • 作品を利用することでライセンスの条件を侵害する。

このようなライセンスは、作品を共有し、再利用するための柔軟性を提供しますが、同時に著作者の権利を保護します。

気をつけておきましょう。

滝の音を追加する

では、続いて、滝に近づいたら水の音が聞こえるようにしたいですね。

ヒエラルキーウィンドウでオーディオソースを追加。

Watafall Audioなどの名前をつける
場所を滝つぼに移動してっと
オーディオクリップを追加
ループを有効にするのだ
まあ、聞こえるけど…近寄ったら大きくなるようにしたいのですよね。


立体音響ブレンド(spatial blend)の値を1に近づけますと・・・
シーンビューの球体が機能するようになります
最短距離、最長距離を修正することで2重の球を修正する
距離にあわせてボリュームを変更させる

右耳、左耳の差がありますね。
ユーザーの右に水場があるか、左に水場があるのか。
なかなか素晴らしい機能ですが、環境音というものは、そういうものではないです。聞こえたと思ったら両耳で再生するべきでしょう。

スプレッドを180にすると、左右の差がなくなる

ボリュームロールオフを調べよう

対数的なロールオフ

対数的なロールオフは、現実世界に似ている
最大50にした場合、遠ざかるほど→ 音は小さくなる
3Mほどで最大に変わるようにして10M以降は聞こえないようにしてみる

減衰率は、0.3からは下がりません。減衰率です。音量ではないのです。
こんな風に、最大距離を小さくすると、あまり良い状態にはなりません。

実際にプレイしてみて、どれくらいの距離で聞こえはじめるか、メモしてみましょう。

線形的なリニアロールオフ


名前の通り、まっすぐ減衰する。

自然にうっすら聞こえてるのではなく、近寄るごとにどんどん大きく。
これは、自然のものというより、そこに注目させるために使います

Logarithmic Rolloff、対数的なロールオフの方が、今回の場合は優れているように感じられますね。

カスタムロールオフ

アニメーションの時のように、グラフをカスタマイズすることができます。

キーの接線を編集することもできる

オーディオリスナーの位置を変える

実は、キャラクターではなく、カメラにオーディオリスナーがついていたので、キャラクターよりも遅く滝の音が聞こえていました。
そこで、キャラクターにオーディオリスナーを変更しましょう

MainCameraのオーディオリスナーを削除し

右の3つの点をクリックして削除を選ぶ
PlayerArmatureでAudioListenerを追加する

ドップラー効果

ドップラーレベルを変更することでドップラー効果も実装できる

オーディオリバーブゾーンの作成

エコーがかかるゾーンがある。というお話

洞窟内の足音はエコーがかかってほしいですよね。

エコーかかってほしい

ヒエラルキーでオーディオリバーブゾーンを作成し

滝の裏の洞窟に限定

プリセットを洞窟に設定

洞窟にしてみる
リバーブされてます。響きますね!

こうなると、洞窟内でパシャパシャ水音も聞きたいです。

オーディオソースを追加して、リニアロールオフで。
滝の音が混ざるので、今回のロールオフは適当でよいです。

聞こえた気がする・・・

もっと強調させるために優先度を変えます。デフォルトは128

洞窟内サウンドの優先度を100と、より優先的にします。
洞窟に入ると、リバーブゾーンの影響を受けた水滴を聞くことができます。

エフェクトを追加します

[オーディオ ミキサー]ウィンドウを開くには、メイン メニューに移動し、[ウィンドウ] > [オーディオ] > [オーディオ ミキサー]を選択します

何もないオーディオミキサーの画面が開く

+ボタンで、新しいミキサーを作り、名前を[master]にする。

masterを作った状態
グループに行追加、Waterと名付ける。今からここに、水と滝を割り当てる
ヒエラルキー上のオーディオソースを持つWaterの出力項目にこれを割り当てる

水滴にもわりあててあげよう。

再生モードで編集と選択したら、編集可能。ボリューム変更や、エフェクトの追加ができる。


Echoを追加したら
インスペクターでその詳細を調整できる

さまざまなエフェクトを体験してみましょう。

アクセシビリティのベストプラクティス

インタラクティブ エクスペリエンスのほとんどにおいて、オーディオのアクセシビリティ オプションを追加することは難しい作業ではありませんが、制作プロセスの早い段階で考慮する必要があります。
あらゆるタイプの字幕やキャプションの目標は、ユーザーが音声を聞くことができなくても、エクスペリエンスの全範囲を確実に理解できるようにすることです。これを達成するには、少なくとも次のような経験が必要です。

  • あらゆる会話に字幕を付けます。

  • 重要な音声イベントの見出しや説明文、キャプション

  • 画面上で読みやすい字幕および説明文のキャプションのフォント (読みやすいフォントと適切なサイズを含む)。

  • 簡単に読めるよう十分な長さにわたって画面上に残る字幕/見出しや説明文、キャプション

専用の設定 UI メニューを作成することで実現できます。アクセシビリティ ガイドラインと優れた字幕のヒントについて詳しくは、イアン ハミルトンのプレゼンテーションに基づいて、セオドア ニキティンが執筆した「ゲーム アクセシビリティ ガイドライン」の「聴覚」セクションと「ゲームの字幕に関する 10 の黄金律」をご覧ください。

ゲームの字幕黄金律10について抜粋
1. 精度(ユーザーは声優の声を間違えて聞き取るかもしれない)
2. 包括性(すべてがそうなっているか、ムービー画面ではつかなかったりしないか)
3. 字幕を一元化する。同じ場所に表現されるか、他のインターフェイスと間違えられはしないか
4.画面表示の、ルール、一貫性はあるか

5.発言者は指定されるか
6. 音の方向は大丈夫か
7.読むのに適した時間かどうか、速すぎない?
8. クリアフォント読みやすい
9. 重要な音にキャプションを付ける

10.字幕オプションがあるか、文字サイズなども含めて

注意をはらいましょう。

クローズドキャプションデータベースを作成する

Project Audio フォルダーで右クリックし、[作成] > [クローズド キャプション] > [CCDatabase] を選択します。

メニューを日本語に変更していてもCCDatabaseと表示される
できました
適切な名前に変えて・・・
ダブルクリックして出るのがCCDatavaseEditerこれに音をドラッグしよう
NewLineをクリック
増えたラインに名前をつける

これで、滝に近づくと、[Waterrushing]の文字があらわれる。
ための
クローズドキャプションのセリフになります。
が、今はデータベースに入っているだけなので、あせって再生したりしても、何も出てきません。

クローズドキャプションのシステムプレハブを作ろう

サンプルのCCSystemには2D表示用のCanvasを持っている

これをヒエラルキー上にドラッグして、内容を編集する。

スクリプトに設定が必要な項目は4つ

先ほど設定したCCDatabase,画面表示のCanvas,CCIndicatorPrefabと、追跡が必要なオブジェクトを設定する項目があるので、CCDatabaseとTracked For
Posに対して設定してあげる。

Databaseは先ほど作成したもの。
Tracked For PosはMainCamera

AudioSourceにそのオブジェクトを追加する。

どのクローズドキャプションデータベースを使用するかはわかったが、どの滝に対してそれを行うかは画面のオブジェクトは知らない。

滝オブジェクトを選択して、コンポーネントの追加。
CCSource(スクリプト)を追加してみよう。

最長距離を15にする

Canvas Prefabにはすでにオブジェクトが入っているが、入っていないようなら、プロジェクトフォルダからドロップしてあげよう

CCCanvas Prefabが、Canvas Prefabになる

こういった設定をして、滝に近づくと、文字が出る。

なにがなにやらさっぱりだ。
Always Trackedにチェックを入れると・・・
15の距離に行く前から矢印が出る。

便利かもしれないが、何がなにやらさっぱりだ。
しかし、こういった機能も実装すると、ユーザビリティの向上になる。


なんとか、アセットを保存しつつ、いつかこういう場面に出くわしたら設定できるように検討しておきましょう。

お疲れさまでした。
いよいよ最後の単元、UIですね。

次回もがんばりましょう

まとめに戻る


この記事が気に入ったらサポートをしてみませんか?