追加案 音声のパンニングの制御、他

Issue #305 new
Former user created an issue

シナリオ側で音声の水平方向の定位を指定できるようにするのはどうでしょうか? 可能なら音が左側から聞こえるなど、音を頼りに進むイベント等にいかせそうです。

ヘッドホン用にもう一つボリュームをつけてクリックで切り替えできる機能とか 新しいツクールがAAC(m4a)に対応するようなのでAACにも対応してみる等

AACは無理に対応しなくても問題は無いですがツクールが対応したのは大きいのですし、いずれ素材が出てくる可能性もあります、使える素材が多いに越したことは無いので如何でしょう?

Comments (28)

  1. k4nagatsuki repo owner

    ご提案ありがとうございます。

    テンポ・ピッチの変更は予定に入れていますが、パンは技術的に可能ではあるものの予定から外していました。CWはどちらかというとユーザの環境に多くを求めないゲームだと思ったからです。必要なモニタサイズは(時代的な理由もありますが)小さめで、高度なグラフィック性能は必要なく、入力装置も限定されず、音声も必須ではありません。音声をオフにするオプションがあるくらいです。

    そうしたゲームに、使われ方次第でモノラル環境では手も足も出なくなるような機能をつけるべきか迷った末、予定から外しました。しかしできることはできるようにして、それを使うシナリオはプレイ可能な人にプレイしてもらうという考えもあるので、完全にだめというわけではありません。これについてはもっと多くの人の意見を聴きたいです。

    AAC対応は、ライセンス的に難しいです。BASS AudioのAACアドオンはGPLです。これを使うソフトウェアはGPLで配布しなくてはなりません。他のライブラリとの競合など色々考える事がありますし、全く無理かもしれません。極端な話をすると、AACアドオンを自作すれば可能かもしれないのですが、技術的な事に加えて特許について調べなくてはならず、現実的に私にはできません。挑戦する人大歓迎。

    ボリュームの簡単な切り替えは、あると便利そうですね。ただそれだけのためにステータスバーにボタンを設置するのはあまり具合がよくないです。インタフェース面でいいアイデアが出るといいのですが……。

  2. Liar_cw NA

    ボリュームの簡単な切り替えは、あると便利そうですね。ただそれだけのためにステータスバーにボタンを設置するのはあまり具合がよくないです。

    パッと思いつくのは、この辺りでしょうか……。

    • 1.スキンのように設定を保存して、環境設定の中で切り替えられるようにする。ステータスバーやホットキーを節約できる。
    • 2.1の案の拡張。ホットキーの利用。FキーやCtrl+1やマウスのサイドボタンなど。ただし設定を切り替えたという通知が無いとユーザーが混乱する可能性が考えられる。
    • 3.右クリック中にマウスホイールを回転させる事で「マスター音量(仮)」の段階を変更できるようにする。可能ならば画面に通知があると良い。誤作動などを防ぐために、機能そのもののON/OFFがあると好ましい。

    追記:3の案の場合、タイトルバーに通知を表示するのも良いかもしれません。

  3. k4nagatsuki repo owner

    右クリック中+ホイールか、何かのキー(Ctrlとか)+ホイールでいいかもしれませんね。後者は色々なアプリケーションで画面の拡大・縮小に割り当てられていたりするので、感覚的にはそれなりに一般的な方式ではないかと思います。

    問題は音量変更時には音量表示を出さねばならず、そのスプライトを作るのが結構面倒そうなことなのですが……。それはまあ開発者が頑張ればいいので……。

  4. Liar_cw NA

    フルスクリーンでは見えないという欠点がありますが、 楽な方法となると、やはりタイトルバー辺りが無難でしょうか? 

    例:「CardWirthPy スキン名 - 宿名 シナリオ名 (音量 = 90)」

    • 音量100の時は表示しない。
    • 欠点として、宿名やシナリオ名が極端に長い場合は表示しきれない可能性が考えられる。

    こんなのも考え付きましたが、これではトゲの数が足りませんね……。 こういう考え方もある、という事で残しておきます。(画像は環境設定のアイコンを見真似て自分で作成したものです)

    案1.jpg

  5. k4nagatsuki repo owner

    Issue #306でこのIssueと一体の話が行われていますので興味のある方はご覧ください。

    pull request #1193で右クリック+ホイールの全体音量調節の試験実装を行いました。アイコンが赤くなっていくのは外見としてとても面白そうなのですが、いかんせんこの画像処理はさらに大変そうなので、ひねりのないよく見る感じのバーを表示するようにしています。

  6. 暗黒 騎士

    お疲れ様です。メモリバーの半透明表示がDirectXのリッチなソフトみたいでかっこいいです。

    私見ですが、ボリュームの増減量が細かくて100%から下げるのが大変なので 用途的に一メモリにつき10%か20%ぐらいで上げ下げできた方がいいような気がします。 (自分だけだったら忘れてください)

  7. k4nagatsuki repo owner

    半透明はただのハッタリなんですが簡単に見栄えがしていいですよね。背景によってはもうちょっと濃くした方がいいかもしれません。気になりだしたら調節しておきます。

    私見ですが、ボリュームの増減量が細かくて100%から下げるのが大変なので 用途的に一メモリにつき10%か20%ぐらいで上げ下げできた方がいいような気がします。 (自分だけだったら忘れてください)

    これはたしかにその通りだと思ったので、pull request #1197で内部設定として5%ポイントの値を持って、その値を最小単位として調節するようにしてみました。全部で20段階なので、そんなに不便はしないのではないかと思うのですが。

    もっと細かくしたいという要望が出るような場合は、設定ダイアログに追加するべきかもしれません。

  8. Liar_cw NA

    パンニングについてですが、私個人としては お断りしたい機能ですね。
    実装される場合は 強制的に無効にするオプションが欲しいくらいです。
    その理由は、生理的に無理としか言い様がありませんが……。

    そんな個人的な感情はともかくとして。 箇条書きになりますが簡単に思いついた、機能の使い道や問題点は次の通りです。 (かなりテキトーな感じですが)

    利用法・利用先、メリット等

    1. 雷や物があちこちに落ちる演出に使えそう。
    2. 暗闇の中を音を頼りにして進むイベントなど。
    3. PCが何か(タンス等)の中に隠れる場面での恐怖演出。外で何者かが行ったり来たりの足音にでも。その他、NPCがPCの前を走り抜ける(通り抜ける)演出やら。
    4. レイヤー指定で背景の裏に隠したイベント(カード)を、効果音をこっそり鳴らしてその大体の位置を知らせる。(少々無理があるが)
    5. 左右で別々の効果音やBGMを流す。ほか、左右から効果音を交差させる演出など。
    6. 興味はあるが音声加工の技術がないユーザでも手軽に遊べる。(メリット)

    問題点とその他デメリット等

    1. ユーザに特定の環境を要求・強要するシナリオやカードが登場する可能性がある。ヘッドホン・イヤホン推奨、スピーカー推奨、音量最大必須、モノラル機器お断り、OSのボリュームバランスを半々に戻す必要がある等。
    2. 演出の幅は広がるかもしれないが、作成されたシナリオのバグ・ミスのチェック項目が増えてしまい、ユーザの負担が増える可能性がある。例として、『うっかりBGM・効果音が偏ってしまっていた』等。意図せず機能を利用してしまっていたり。
    3. パンニング自体が鬱陶しいと感じるユーザにとっては害悪そのものでしかない。ヘッドホンの片方に音が傾いていると耳が痒くなる。耳に悪い。気持ちが悪い。
    4. 極めて限りなく低い可能性ではあるが悪用されるかもしれない。
      • ヘッドホンユーザに対する嫌がらせ。片方だけに音を流す。大きい音を左で流して左耳の器具を外させ、今度は残った右耳を驚かせる。時間差攻撃。
      • モノラル環境に対する嫌がらせ。聴こえない方に全振り。
  9. 暗黒 騎士

    自分的にはデフォルト効果音を加工して同梱し直さなくて済むのが魅力ですね。

    規約的に加工禁止のものもエンジン側での制御なら問題ないでしょう(もっとも最近は厳しいところは少ないですが)。 あれば嬉しいという程度ですが…。

  10. k4nagatsuki repo owner

    私がCWのゲーム性に合うかどうか、と言った事について少し詳しく書いてみます。

    いわゆる立体音声というものは、例えばFPSのような3Dゲームでは有効な演出になります。例えば、右側でがさがさと音が鳴っている事をプレイヤーに知らせ、右を警戒するという行動に誘う事ができます。これはプレイヤーが常にステレオ環境を持たなければ快適に遊べないという欠点と表裏一体ですが、それでも没入感を強めるために有効な手法です。一方CWには、3次元空間というものは基本的にありません。3Dダンジョンのようなシナリオもありますが、かなり特殊な部類に入ります。また、FPSと違ってCWにはリアルタイム性はありませんので、ある方向で音がした事は、文章その他の方法で悠長に・確実に示す事ができます(上下や背後から音がした事すら示せます)。

    私がCWのゲーム性にパンニングが馴染まないと考えているのはこの辺りが理由です。実は映像による演出もあまり馴染まないと思っているのですが、これはシナリオによる豊富な実践例が強力な反証となっています。一方で、適切な音楽を・効果音を流すという水準を超えた音声に関する実践例は、私は1つしか見たことがありません(「時の囚われ人」というシナリオに、複数の断片を合成して一つの音楽を作れというリドルがあります)。この実例の乏しさも、私が意欲的でない理由です。本当にパンニングが有用なのであれば、おそらく音声の加工によってそれを実現したシナリオがいくらかはあるはずです。

  11. 権兵衛 七篠

    音声の修飾とでも言えばよいのかな、このパンポットいじるテクニック。
    個人的には虫の羽音とかで右行ったり左行ったり
    おっきく鳴ったりちっちゃく鳴ったりすると面白そうだなとは思うんですが、
    ただその。

    こ れ 対 応 し ち ゃ う と 更 に 他 の エ フ ェ ク ト も 対 応 す る 羽 目 に
    ........なりそうで微妙に心配というか(全力でマテ
    #とりあえず自分はパンポットに便乗してリバーブ希望しそう(を)
    (リバーブというのは残響音をつける効果で、このページ下部の試聴サンプルがわかりやすいです
    http://info.shimamura.co.jp/digital/knowledge/2014/01/17108/2
    聞くとわかるんですが臨場感が結構違ってくる感じです)

    個人的には、こういうのはエンジンレベルであれこれ対応するくらいなら、
    はじめから効果仕込んだ音声ファイル用意したほうがいいんじゃないかなーと思案する次第です。
    エンジンで対応すれば戦闘シーンとかで鳴るSEも効果つきにできたりで臨場感すごそうですが
    ただまぁ、正直もうModかプラグインか何か
    エンジンそのものじゃない解決策目指したほうがよさそうな直感はあります。

  12. k4nagatsuki repo owner

    一応技術的な話をしておくと、パンニングやテンポやピッチの変更は可能です。これはBASS AudioのアドオンライブラリであるBASS FXの機能によるものです。リバーブは行えないかもしれません(ライブラリをよく探せば行えるかもしれません)。BASS Audioはフリーソフトウェアではないのであまりその機能に深く依存したくないなぁという気持ちはありますが、すでにかなり依存しているので、措いておく方がよいでしょう。実装が面倒というのも、この際措いておきます。

    開発者としては、それらの機能がCWで有効に使えたり、実際に需要があるという具体的な根拠を示していただければ、実現に向けて動きやすくなります。私個人の心情としては、上述した通り、今のところ賛成できません。

  13. k4nagatsuki repo owner

    実装される可能性があるものに優先度trivialは低すぎるので、minorへ変更します。

  14. k4nagatsuki repo owner

    ACCの話などが混ざってうっかりしたのか、パンの話が#277のリストに追加されていなかったので追加しました。

    個人的にはCWにはパンニングはいらないだろうとまだ思っていますが、今ではあってもいいんじゃないかとも思っています。

    ただ、追加する場合は、モノラル再生オプションとセットにしなければなりません。周囲の音に注意しておく必要があるとか、実況しづらいとかの理由で、イヤホンを片耳だけつけてゲームをプレイする人はそこそこいます(私もです)。その場合、聞こえない側だけから音が出てくると完全に聞き逃してしまいます。

  15. ハルキゲニア

    付属の効果音を本体のsoundに移動してはどうでしょう。 SFバリアントのように、スキン固有の物のみスキンのsoundにあるべきです。 付属の効果音はスキンやシナリオに関係なく共有できるべきなので移動したほうが良いかとおもいます。 新たにスキンの作成時においても効果音の差し替え、追加等しない場合スキンに含める必要もなくなり容量の削減にもなりますし、差し替えた音がどれなのか分かりやすくなります。 一応音声周りの話なのでここに書きました。

  16. 暗黒 騎士

    それについては過去自分も同様に思ったのですが、 たとえば1.20には上位Verの効果音がなく、学園バリアントは逆に1.28から一部効果音を取り除いています。 それでそれらにも対応したシナリオを作りたいという時、 Pyでデバッグする際、そういう仕様だとターゲット環境で鳴らない効果音をskinBaseから取り除く必要がでてきますし(うっかり使ってしまう)、 XEditorとの提携なども考えるとなかなか難しいのではないかと思います。

  17. k4nagatsuki repo owner

    効果音の本体付属にはたしかに仰る通りの多大なメリットがあるのですが、それができていない事には@akkwさんの指摘された問題に加えて(これはSound以外のリソースについても同様です)、ライセンス上の問題があります。

    CWPyのリポジトリは、bass.dllという例外を除いて自由ソフトウェアに保たれています。誰かがこのリポジトリの内容を流用して自分のソフトウェアを作ろうとした時に、ライセンス上の障害に突き当たる事はありません(bass.dllもライセンス自体は明確に定義されています)。

    しかしCW付属の効果音などのリソースは、「CWでの使用に限る」というような使用条件がついており、自由ソフトウェアではありません。これらを混ぜる事はできません。これはClassicスキンをリポジトリ内に含めず別に管理している理由でもあります。

    スクリーンショットの効果音はPublic Domainだったはずなので、それくらいは含めてもいいかもしれません。

    って今見たら実際含まれてますね。いつやったんだっけ……。

  18. ハルキゲニア

    ライセンス関連なら仕方ありませんが、クラシックスキンに付属のoggはどうなのでしょう?

    あと、暗黒 騎士さんの意見の通りなら、未来永劫本体への効果音の追加などが行えないことになります。

  19. k4nagatsuki repo owner

    クラシックスキンに付属のoggはどうなのでしょう?

    クラシックスキンには本体とは別のライセンスが設定されています。文章などもCWと同一のものを使用しており、一次著作権はgroupAskにあり、フルパックのライセンスに従ってそれらのリソースはCW関係の企画やソフトウェアなどでだけ使用できる事になっています。ですので、クラシックスキンは自由ソフトウェアではない、という事になります。CW界に限れば自由なのですが。

    あと、暗黒 騎士さんの意見の通りなら、未来永劫本体への効果音の追加などが行えないことになります。

    クラシックなシナリオを相手にする場合は実際難しいと思います。「WSN形式の仕様として公式に使える効果音」を追加するのであれば、WSN形式に対応するエンジンはすべてその効果音を含む事になるので、可能かもしれません。

  20. k4nagatsuki repo owner

    勢いで書いたんですけど、Wsn.2以降で必ず使える素材を追加していくというのは今後のためによさそうな感じなのであとで一覧に書いておきます。もちろんそれらは完全にフリーなライセンスでなければいけないわけですが。

  21. ハルキゲニア

    スキンのように効果音を本体から分けて共有する方法は無いのでしょうか?

    完全にフリーなライセンスだと条件が厳しいため自作するしか無いように思えます。

    自作するのなら、比較的容易に使えるアプリを紹介するくらいなら出来ますが。

  22. k4nagatsuki repo owner

    今のところ、Data/FaceEffectBooster(エフェクトブースターにはCW本体付属の素材を読み込む機能があります)を除いて、スキンから独立した本体付属のリソースを読み込む機能はありません。素材の提供があるようであれば仕組を作ります。

  23. ハルキゲニア

    提供があれば仕組みを作るとの事なので、自分が作成した物で良ければですが提供します。

    ただ、モノラル環境や片側だけ聞くといった環境は一切考慮していません(そもそも無理)ので、ステレオ音や左右に動く演出を取り入れた音があります。

    前回と同じ倉庫に置いてます。

    大江戸バリアントのシステム音声の一部差し替え例も一緒に置いてます。

  24. k4nagatsuki repo owner

    ありがとうございます。これは嬉しいですね。

    いくつか解決しないといけない課題があるので、issue #435を立てました。実装へ向けて確認させていただきたい事をコメントで書いてありますので、お手数ですがご返答いただければ幸いです。

  25. Log in to comment