thaseponのチラシ裏

気が向いた時や詰まっていたバグなどを解決した時に書いたりしてます。twitter : twitter.com/thasepon1023

本日のOMGな話

XAudio2の

Sourcevoice->DestroyVoice();

の部分がEXCEPTION ACCESS VIOLATIONを起こしていて謎だったけど今日解決したっぽいので。

 

簡単に理由を言うとstd::functionを使用してfadeout/inの処理をしていたのが問題だったみたいだ。

 

詳細はここ XAudio2で出てくるエラー - ぼく用あれこれまとめ - アットウィキ に書いてあるのだが、同一スコープ内で処理をしないといけないらしい。

更にここにはDestroyVoice()でと書いてあるがどうやらSetVolumeなどのSourceを触ることが厳禁らしい。

 

そうだったのか・・・

 追記~

どうやらSetVolumeを使用した時にDestroyでエラーを吐くのはXAPOFXが関係しているみたいだ、試しに機能を外してみたら動いた

 どのエフェクトが悪さをしているのかまではまだ確かめていないがEQなのかなぁって思っていたり。

聞いたことはないのだがGainを全部落とせば最悪fadeは出来るのでそれでやろうかと思っている、もしかしたらそっちの方が正しいのかもしれない。

 

追記2~

不思議なことにどうやらDestroyVoiceの直前にSetVolumeで(1.0f)を入れ直してあげるとエラーを吐かずに終了してくれる。謎の原因まではわからないがおそらく非同期処理をしているからそのあたりがエラー吐いてるのかなーって感じです。

XAudio2周りは唐突によくわからないエラー吐くからすごい困る。

イントロカットループ

interactive music hierarchyを使っててここ数日悩んでいたことについて

 

簡単に言うと「イントロカットループの機能なくない?」ってこと。

 

これが探して見つからなくて凄い困った、Actor-mixerにはRegion-loopがあってそれを使えば簡単に実装できそうな感じだったのだがinteractive musicにはそれがない、もしかしたら調べ方が悪いのかもしれないけど見当たらない。

 

試しにメールをしてみたところ

Understanding Interactive Music

Lessons

この二つを見てほしいとのことで見てみた。

 

わからない…

これを見て思ったのはそもそものサウンドリソースをintro部分とmainの部分で切り分けたほうが早いのでは?って事、確かにそれでも解決するにはするけど。

 

でも、もしかしたらいい方法があったりするのかなぁっていう現状。

先日のこと

先日Wwiseを使ってエフェクトをかけていた時のことです。

音楽知識や楽器知識のほとんどない私なのですが疑問に思う項目が…

「GainとVolumeって何が違うんだ…」

ってことです。

 

一応友人に聞いたり調べたりして

「ゲインは入力した音を増幅する」機能で

「ボリュームは出力した音を大きくする」

という感じで覚えたのですが正直まだ差をよく感じていません…

今後もおそらくこういう事が沢山あると思うのでなにかエフェクトの種類やその用途の例なんかがまとめてあるサイトなどがあればいいなと思うこの頃。

Wwise始めました

題名の通り最近Wwise (Audiokinetic | Industry Leading Interactive Audio Solutions)

の勉強を始めました。

 

ただ触っていくうちにすぐ障害にぶち当たりました、それは海外製であること。

まだ英語の部分が多々あり、今までは機能を把握するのに時間がかかってました。

「公式ドキュメントあるしそれでいいじゃないか」と思う方も多いと思いますが、なんかしっくりこないこともあって何か教科書みたいなのないかなと思って調べていたら

 

https://www.audiokinetic.com/download/documents/WwiseProjectAdventure_ja.pdf

 

なんてものがあるじゃないか。

これ2014年のpdfみたいなのですが全編日本語なうえ、各シチュエーションごとにまとまっているのでとても分かりやすいと高まってました。

それでも関数や構成などは英語などで頑張らないといけないのは間違いないのですが…