Unity2019.2.2f1
Windows10
□
【UnityC#講座】3D人型モデルを三人称視点で動かす操作を改良
【UnityC#講座】ユニティちゃんに殴り合いをさせる【NavMeshAgent】
またこれらの記事の続きです。
今回はユニティちゃんアセットに入っているボイスを使ってみます。
攻撃とダメージを受ける時に声が出るようにしました。
完成したのがこの動画です。
ユニティちゃんのボイス使ってみました。
攻撃とダメージ時に言います。
しかしUnityRecorder録画中に音声出ないは何でだろう?#unity pic.twitter.com/Xo9OEbyH2c— イシゲー@UnityとBlender (@ishidahanta) November 22, 2019
■SEオブジェクトとSEスクリプトを作る
まず空のオブジェクトを出しSEと名付けます。
SEはSound Effectの略でボイスを扱うにはふさわしくないかもしれませんが、ボイスとSEのUnity上での扱いは変わらないので良しとしましょう。
次にSEスクリプトを作ります。
C#ファイルの名前をこちらもSEにしてください。
AudioSourceコンポーネントを追加・取得し、PlayOneShot()で鳴らします。
攻撃時にはAttackSound()メソッドを、ダメージ時にはDamageSound()メソッドを他のスクリプトから呼び出します。
Player、Opponentスクリプトに直接書いても良いのですが、手間を減らすためにこうしました。
続いて、SEスクリプトをSEオブジェクトにアタッチしたらInspectorから設定をします。
Soundに2と入れてインター押すと空欄が2つでき、そこに使う音声を入れます。
Element 0にuniv0001を、Element 1にuniv0012を入れてください。
ボイスの在り処はこちらです。
Project > Assets > unity-chan! > unity-chan!Model > Audio > Voice
■Player、Opponentスクリプトに追加する
次はPlayer、OpponentスクリプトにSEを呼び出す記述を追加します。
変数を宣言し、Start()でオブジェクトとスクリプトを取得、そして後は攻撃、ダメージ時に一度だけ呼び出される部分からSEスクリプトのメソッドを呼び出してやるだけで完成です。
Action.AttackとAction.Damageの時に呼ぶ条件にすると音声が連続して出てしまうので注意してください。
Player.cs
スポンサーリンク
Opponent.cs
これでボイスが出るようになったはずですがちゃんと出たでしょうか?
今回はこれで終わりです。
■関連記事
【UnityC#講座】ユニティちゃんをスカイリム風に操作する
この作品はユニティちゃんライセンス条項の元に提供されています
スポンサーリンク