最近どうも深く息を吸うとせき込むなあと思っていたのだが、ふと思い立って、しばらく舌を思いっきり前に突き出してみたらなんとあっという間に改善した。喉の調子が悪いとかそういうのではなくて、あまり舌の奥に力を入れないで過ごしていた結果垂れ下がって喉をやや圧迫していたらしい。こんな物理機械的な理由だったとは。
この前「ソング・オブ・ロマンシア」の歌詞の文字起こしをやって、一部聞き取れない部分があったのだが、今日ようやく全体にこれでいいだろうという文字起こしが出来た。
くすくす笑い声 風のいたずらなの
目覚める光には 愛があふれている
真夏の夜の夢 それは幻だよ
涙の後に 感情を消して微笑む人その手を差し伸べて 愛に触れてみたり
ガラスの靴はもう 胸の中に捨てた
魔法の呪文から 覚めた恋人たち
愛のメロディー奏でるのは風のシンフォニー不思議の国 そよかぜのロマンシア
待ち続けてたパラダイスくすくす笑い声 風のいたずらなの
愛のメロディー 奏でるのは風のシンフォニーひらひらひらめいて 踊る子ねずみたち
心のオアシスは 輝きはじめるの
あなたの微笑みも いつか飛び跳ねるか
そんな気がする ときめいたら愛のデジャブ不思議の国 そよかぜのロマンシア
待ち続けてたパラダイスくすくす笑い声 風のいたずらなの
愛のメロディー 奏でるのは風のシンフォニー不思議の国 そよかぜのロマンシア
待ち続けてたパラダイス
- 4行目「涙の後に」の後がずっと聞き取れないでいたのだが、恐らくこれだと思った。ここだけ特に暗い歌詞だな。
- 8行目「奏でるのは」の後もよく分からなかったのだが、RiJで歌ってるのを聞いたらシンフォニーと歌っていたのでそれに倣った。
- 14、16行目は未だに自信がない。が、他の聞き取りが思いつかない。
ゲーム制作ライブラリのオーディオ関係の設計に悩んでいる。
まず既に行ったグラフィック関係の設計として、描画先が明確化されるような形になっている。image.draw(x,y)
とかではなくrenderer.draw(image,x,y)
みたいに書くのだ。オーディオもこれと同じように出力先が明確になるような形にしたいと思っている。player.play(audio)
みたいな。
ここでいくつか問題がある。
- 複数同時再生をどう扱うか
- ストリーミング再生をどう扱うか
- フィルタ機能も付けたいと思っているが、どう扱うか
まず複数同時再生の問題。いわゆる単発の効果音しかないのならいくらでも同時再生させればいいのだが、世の中BGMというものがある。再生したり「止めたり」したい。止めたりしたいとなると、「この音声を止めたい」というのを指定する必要がある。そうするとそれをどう指定するかが問題になる。
Siv3DとかDXライブラリとかを見ると、どうも「同じ音声ファイルは基本同時に2つ鳴らさない」という世界観の下で「どの音声ファイルを再生する」「どの音声ファイルを止める」という形になっている。つまり音声オブジェクトは「音声ファイル」であると同時に「音声プレーヤー」でもあるのだ。しかし自分はこれが気に食わない。音声ファイルは音声ファイルであってプレーヤーではないはずである!AudioSourceとAudioClipが分かれているUnityの方がマシだ。
なおSiv3Dは.play
と.playOneShot
という分け方をしており、playOneShot
で再生した場合は重ねて再生できるということになっている。その代わりループはしないかつ特定の再生を指定して止めることはできない。まさに効果音向けだ。自分は気に食わない。「ループするorしない」ということと「同時発音可能or不可能」というのは別の話のはずだ。どうやらこの点についてはUnityも同じ設計らしい。なんかもうちょっと良い塩梅の設計に出来ないか。
ストリーミングの扱い方の問題は同時発音数の問題とほぼ同時になる。なぜならストリーミング再生は基本的には同時に2つ鳴らさない想定の技術だからだ。というか、データの読み込みと再生が一体となった技術なので、音声オブジェクトが「音声ファイル」であると同時に「音声プレーヤ―」でもあるという設計にここについては正当性がある。だが、ここだけ特別扱いをするのも良くないので、多少違う書き方という程度で済ませたい。
最後フィルタ機能の取り扱いについて。フィルタはなんかplayerのメソッドで適宜なんでも設定できるようにしたいと思っている。問題は内部実装や細かい仕様で、フィルタオブジェクトみたいなのを作ったとしてそれを値セマンティクス的に渡すのか?それとも参照を渡すことにしておいて渡した側が適宜操作出来たりするようにするのか?
あとは録音の扱いとかも考えたいな。ゲーム目的なので録音機能の優先度は低めではあるが。
Categories: 未分類