質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3032閲覧

unityの立体音響について

yosugi

総合スコア18

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2018/10/31 05:33

編集2018/11/03 07:14

現在、unityで立体音響の実装に取り組んでいる者です。
立体音響のサポートとしてsteam audioを使用しています。
それを使って家のような箱を使用し中にaudio sourceのobjectを置いています
それを使用してみると反響的にはリアルに近いものとなっているような気がするのですが問題があり、その箱の外に出てもなお、音が流れ出ている状況にあります。
音響的には外に音が漏れることはおかしいことではないのですがまるで壁を感じさせないように音が大きいと思うのでどこかで計算や使用方法の間違いがあると思うのですがわかりません。教えてください
また、steam audio以外の立体音響サポートのスクリプトでよりよいものがあれば教えてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく遮蔽関連の設定が不適切なんじゃないかと思います。
どうやらデフォルトでは音の遮蔽は無効になっているようですので、Steam Audio Unity Plugin 2.0-beta.16の「Occlusion」の節をご参考に設定を見直してみてはいかがでしょうか。

その家のような箱に関してですが、考慮するべき事項として、部屋にドアのような可動開口部はあるでしょうか?

「Steam Audio Custom Settings」の「Ray Tracer」がデフォルトの「Phonon」の状態で「Steam Audio Source」の「Reflections」をオンにすると反射音が考慮されたリアルな音響になるようですが、ゲーム実行中に開口部を閉じても遮蔽構造は変化せず、閉じたドアを貫通して音が聞こえてしまうようです。

Phonon

一方「Ray Tracer」を「Unity」にすると、Unityのレイキャスティング機能を使って遮蔽判定を行うようになり、ドアを閉じると音が聞こえなくなりました。
ただし「Reflections」は使えなくなってしまうようで、反射音が届かなくなるため、音源が入り口の壁に隠れただけで静かになってしまいました。

Unity

投稿2018/11/04 00:59

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yosugi

2018/11/05 04:14

返信ありがとうございます。 最新のプラグインの導入をしてみたいと思います また、箱のような家に関してですがドアはあります なので参考にさせていただきます。 ここで新たな疑問なのですがsteamaudioのアップデートはどのように行えばいいのでしょうか? そのまま入れてみてもなにかエラーを吐いてしまいます 公式を調べて見てもアップデートの方法が載っていなかったので
Bongo

2018/11/05 07:58

私の場合、今回ご質問を拝見して初めてSteam Audioを試してみたところでして、いきなり2.0-beta.16をインストールしたため、すみませんがアップグレードの場合どうなるかについては未確認です... あとで調べてみたいのですが、その際の参考として、どのバージョンからアップグレードしたか、アップグレード前の旧バージョンではシーンをどのようにセットアップしたか(参考になさったWebサイトなどありましたらご提示ください)、どのようなエラーが発生するか、といったことを教えていただけますとありがたいです。
yosugi

2018/11/19 06:59

ver13から16にアップデートしてみました その際無理やりにアップデートしようとパッケージ開くとエラーがでてアップデートできたかわからない状態になりました. なので,キャンセルをしてみたのですがそれ以降 EntryPointNotFoundException: iplLoadScene SteamAudio.Scene.Create (SteamAudio.ComputeDevice computeDevice, SimulationSettings simulationSettings, IntPtr globalContext) (at Assets/SteamAudio/Scene.cs:127) SteamAudio.GameEngineState.Initialize (SteamAudio.SimulationSettingsValue settings, SteamAudio.ComponentCache componentCache, GameEngineStateInitReason reason) (at Assets/SteamAudio/GameEngineState.cs:138) SteamAudio.ManagerData.Initialize (GameEngineStateInitReason reason, AudioEngine audioEngine, SteamAudio.SimulationSettingsValue simulationValue, System.String[] sofaFileNames) (at Assets/SteamAudio/ManagerData.cs:23) SteamAudio.SteamAudioManager.Initialize (GameEngineStateInitReason reason) (at Assets/SteamAudio/SteamAudioManager.cs:87) SteamAudio.SteamAudioSource.Awake () (at Assets/SteamAudio/SteamAudioSource.cs:38) のエラーがでてそれ以降steamaudioが機能することはなくなりました 公式にも解決方法は出ておらずどうしていいかわかりません
Bongo

2018/11/19 11:33

ひとまず、Steam Audioインポート時にインストールされたAssets内のファイルをすべて削除してみてはいかがでしょうか(「SteamAudio」フォルダと、「Plugins」フォルダ内のファイル...もし他のアセットをPluginsに入れていないなら、Pluginsフォルダごと削除してしまっていいでしょう)。 さらに、一旦Unityを終了してから、エクスプローラー上やFinder上でプロジェクトのAssetsフォルダを覗いてみてください。もしかすると、削除したはずのプラグインファイルが残っているかもしれません。 新バージョンインポート時にエラーが表示された可能性として、旧バージョンのプラグインが動作中だったためにファイルを上書きできなかった...ということもありそうな気がします。 Unityが起動していなければ、それら残骸も削除できるかと思いますので、それらを削除したのち再びUnityを起動、プロジェクトを開いて、新バージョンのSteam Audioをインポートしてみてください。これでもしインポート時におかしなメッセージが表示されなければ、おそらく正しく新バージョンが動作するかと思うのですが...
yosugi

2018/11/22 05:35

ありがとうございます。 おかげでエラーが消えました Ver16に変更できましたが音が反響しなくなるなどの見えないエラーが出るので設定しなおしてみます
yosugi

2018/11/22 06:08

すいません scene Export でPre-Export sceneしても反響が反映されないのですがunityのverのせいとかあるんでしょうか?
Bongo

2018/11/23 01:04

2018.2.17f1で試してみましたが、少なくともこのバージョンと2.0-beta.16の組み合わせではちゃんと動作するようでした。 念のため、シーン上の「Steam Audio Manager Settings」を削除してから、メニューの「Window」→「Steam Audio」を開いてマネージャーを再作成させ、さらに「Pre-Export Scene」を行ってみるとどうでしょうか? あるいはSteam Audioのバージョン移行の際に、なにかの設定が元に戻されてしまった...といったことがあるのかもしれません。「Edit」→「Project Settings」→「Audio」の「Spatializer Plugin」が「Steam Audio Spatializer」になっているか、音源の「Direct Sound Occlusion」が「On, No Transmission」(またはその他意図通りの設定)になっているか...あたりをチェックしてみてはいかがでしょう。
yosugi

2018/12/03 04:19

どうやってもバイノーラルにならないです・・・ いろいろ考えてくれているのに申し訳ないです いわれてみたこととその他設定の再確認を行いましたがやはりうまくいきません
yosugi

2018/12/03 04:20

unityのバージョンは2018.2.2f1です
Bongo

2018/12/03 20:55

音源の周りを歩き回ってみても左右の聞こえ方に変化がないということでしょうか。 バイノーラルにならない...ということは音源側の設定の異常でしょうかね?音源のインスペクタでの「Audio Source」の「Spatialize」はオンになっているでしょうか。 また、音の減衰には異常はないでしょうか?音源から離れるとちゃんと音が小さくなるでしょうか。 設定項目が多くて各所に分散しておりやっかいですね...ご質問者さんに不都合がなければ、プロジェクトファイルを丸ごとどこかにアップロードしていただいても構いません。直接プロジェクトを見てみれば何か分かるかもしれません...
yosugi

2018/12/04 13:56

そうなんです 左右の聞こえ方に変化がなく、全くリアル感がなくなってしまいました 音の減衰なども一切起こっていないです。Spatializeはオンになっています。 プロジェクトファイルをアップロードすることは出来るのですがどのような形式でアップロードすればいいでしょうか?
Bongo

2018/12/04 20:16

減衰もないですか?音源の「Spatial Blend」は1...完全に「3D」になっていますよね? プロジェクトをご提示いただけるのでしたら、プロジェクトの名前が付いたフォルダ(中に「Assets」フォルダや「Library」フォルダ、slnファイルやcsprojファイルが入っている)を丸ごと圧縮してアップロードしていただくのがよさそうです。今の状態をなるべくそのまま見てみたいので、https://docs.unity3d.com/ja/current/Manual/HOWTO-exportpackage.html で解説されている「パッケージの出力」は、今回は避けた方がいいかもしれません。
yosugi

2018/12/06 04:16

「Spatial Blend」が0になってました・・ 1に変更したらうまくいきました こんな初歩的なことで躓いていて本当に恥ずかしいとともにここまで相談に乗っていただいて感謝しかありません 本当にありがとうございます
yosugi

2018/12/06 05:37

現在前のように反響するようになったのですが音源と自分の直線上に壁を置くとき音が完全に遮断されるようになりました。 あまり現実的な反響ではないなと思ったのですがよりリアルな反響にするためのコツみたいなのってありますか?
yosugi

2018/12/06 05:38

音源と自分の直線上に壁を置くというよりオブジェクトを挟む感じです
Bongo

2018/12/06 22:04

回答の中で言及しました、「Steam Audio Manager Settings」オブジェクトにアタッチした「Steam Audio Custom Settings」の「Ray Tracer」を「Unity」に切り替えた状態になっているということでしょうかね? このモードだと、回答で申し上げたように可動オブジェクトには対応できるようになるものの、反射・反響音に対応できなくなるようですので、うまくごまかしを加えてやる必要がありそうです。 一つ目の案としては、「Ray Tracer」が「Unity」でも「直接音の障害物透過」は表現可能らしいので、まず音源の「Direct Sound Occlusion」を「On, Frequency Independent Transmission」に変えてみてください。 さらに、その直線上に挟んだオブジェクトに「Steam Audio Material」をアタッチし、「Material Preset」を「Custom」に、「Low Freq Transmission」「Mid Freq Transmission」「High Freq Transmission」を適当な割合...例えば全部0.5にしてやれば、50%だけ音が透過するはずです。 二つ目の案としては、音の透過はオフのままで、音源に大きさを持たせて遮蔽率によって音量を変えさせる...ということも可能そうです。 音源の「Occlusion Method」を「Raycast」から「Partial」に変え、その下に出現する「Source Radius (meters)」を適切なサイズに変えてみてください。このモードだと、音源が設定した半径を持つ仮想的な球体になり、自分から見て音源がどれだけ遮られているかを複数回のレイキャストを行って判定してくれるようです。 試してみた感じでは、単純に透過率を操作する一つ目の方法の方が負荷は小さそうでしたが、視界に音源が入る・出る瞬間に急激に音量が変化してしまい、リアリティの面では劣る感じでした。 一方、二つ目の方法ではあたかも音が障害物を回り込む...回折しているような聞こえ方になり、より自然な印象でした。ただし、より複雑な遮蔽判定を行っているぶん負荷は大きくなりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問