スマホもゲーム機も!
CRIWARE×UE4 最新機能紹介
2018年6月27日
株式会社CRI・ミドルウェア
上田雄太
Game Tools & Middleware Forum 2018
2
自己紹介
• 名前:上田雄太
• 大学院卒業後1年間研究員として3Dディスプレイの開発を行う。
• その後、CRI・ミドルウェアに入社し振動ミドルウェアなどに携わる。
• ここ最近は、UE4のPlugin開発、サポートをメインに行っている。
3
(株)CRI・ミドルウェア
音声・映像を専門としたミドルウェア開発会社
採用タイトル 4,000 を突破
1990年 人工知能・CD・音声・映像技術の研究開発
1995年 セガサターン用ADX
2001年 PS2・GC・Xboxをはじめとする
マルチプラットフォーム展開を開始
2011年 iOS/Android版 CRIWARE
音 声 映 像
2012年 Unity 対応
2016年 ブラウザ版ADX2 リリース
2013年 Unreal Engine 4対応
4
CRIWAREとは
■ CRIのミドルウェア群の総称
統合型サウンドミドルウェア
CRI ADX2
音声圧縮、サウンドデザイン
高画質・高機能ムービーミドルウェア
CRI Sofdec2
アルファムービーなど
ファイル圧縮・パッキングミドルウェア
ファイルマジックPRO
ファイル読み込み、圧縮/パッキング
5
CRIWARE採用例
ゲーム機/PC
6
CRIWARE 採用例(F2P)
iPhone & Android
7
アンリアル・エンジン4× CRI ADX2
8
CriWare UE4 Pluginについて
■ 概要
• CRIWAREの機能をUE4で利用するためのPlugin
• PC、PS4、XboxOne、Switch対応
• Android、iPhoneは近日公開予定!!
– VP9コーデック対応などスマホに特化した機能も充実させています。
9
■以降のセッション内容
1.UE4 とサウンドミドルウェアADX2 の組み合わせ
- ワークフローの比較とADX2の特徴
- ADX2とUE4によるサウンド演出
2.UE4 とムービミドルウェアSofdec2 の組み合わせ
- UE4向けの追加機能
- VP9対応について
本セッションの概要
10
アンリアル・エンジン4 × CRI ADX2
11
サウンド組込みワークフロー1
■UE4 標準オーディオ
- Unreal Editor に音声素材を入れて、Blueprintから再生。
- サウンドキューエディタで細かな条件編集。
音声ファイル
プログラマ
音の鳴らし方を
グラフ作成
サウンドキューを
鳴らすBlueprint記述
サウンド担当
サウンドキューエディタ
アンリアルエディタ
アンリアル・エンジン4
サウンド
素材作成
サウンドデザイナー
Blueprint
12
アンリアル・エンジン4
サウンド組込みワークフロー2
■UE4 + CRI ADX2プラグイン
- サウンド名指定でレベルへの貼り付けや、Blueprintで再生。
- サウンド演出やパラメータ変更はADX2ツールで設定。
音声ファイル
サウンドデータADX2 ツール
アンリアルエディタ
プログラマ
キューを鳴らす
Blueprintを記述
サウンドデザイナー
サウンド
素材作成
音(キュー)を
デザイン
CRI ADX2
Blueprint
今回のセッションはこの使い方に注目
13
アンリアル・エンジン4
サウンド組込みワークフロー3
■UE4 + CRI ADX2ライブラリ
- C++でサウンドを直接制御も可能。Unreal Editorとの連携は無し。
- サウンド演出やパラメータ変更はADX2ツールで設定。
音声ファイル
サウンドデータADX2 ツール
アンリアルエディタ
プログラマ
ADX2制御の
Cプログラムを実装
サウンドデザイナー
サウンド
素材作成
音(キュー)を
デザイン
CRI ADX2
C++
説明省略。ADX2全機能使える。
14
データ取り込み
■ ADX2ツールからの出力ファイル
全体設定(ACF)、オンメモリデータ(ACB)、ストリームデータ(AWB)の
3種類がツールから出力されます。
ACFは初期化時に読み込み。
ACBは必要に応じて読み込み。
AWBはuaaset化せずに、
ファイルから必要な部分だけ
読み込みます。
ステージ1用
キャラX用
共通データ
ACF
ACB
ACB
ACB
AWB
AWB
AWB
15
データ取り込み
■ サウンドアセットとコンテンツブラウザ
ADX2データ(ACB)をコンテンツブラウザにドロップすると、
データ内のキュー(音イベント)が個別のアセットとして表示され、
Blueprintから直接指定できるようになります。
16
データ取り込み
■サウンドをアセットではなく文字列やIDで管理
コンテンツブラウザ上ですべてのサウンドアセットが展開されると、
大量のアセットが表示されてしまい不便な場合があります。
アセット表示に時間もかかります。
ADX2はキューを文字列やIDで指定することが可能です。
Blueprintでも文字列等をテーブル管理する方式をとると、
サウンドを個別のアセットにする必要が無くなります。
→ADX2データインポート時にキューを展開しない設定が可能。
17
データ取り込み
■ レベルに音源を配置
キューはAtomSoundアクタとしてレベルに配置することが可能です。
→Auto Activate設定の音は、レベル開始と同時に発音を開始します。
18
サウンド再生周り
■ サウンドの再生
• オブジェクトにAtomComponentを張り付けて音声を再生する
– (AtomComponent:UE4でいうAudioComponent)
• 下記のAPIを用いて音声を再生する
19
CriWareとUnrealEngine
■ CriWare UE4 Pluginの特徴
• UE4のサウンド再生方法を踏襲している
CRI
UE4
20
CriWareとUnrealEngine
■ CriWare UE4 Pluginの特徴
• サウンドの再生情報の取得機能の充実
– 再生時間の取得
– サウンドの長さの取得
– ポーズ状態の取得
• サウンドと連携するゲーム開発と相性が良い
21
ADX2 x UE4の入門的な話
■ Blueprint API
• サウンドの設定をCRI Atom Craftを使って
行い、UE4で右図のようにサウンド再生す
るだけで次のことができます。
・ランダム再生
・イントロ付きループ再生
・再生数制限
・プライオリティ制御
・etc
22
ADX2 x UE4の入門的な話1
■ サウンドデザイン
再生方法
・ランダム再生
・イントロ付きループ再生
再生設定
・発音数制御(少し応用的な話)
23
ランダム再生設定方法
■ ランダマイズ
・波形のランダム再生
・パラメータのランダマイズ
並べたサウンドトラックをランダムに再生
ボリュームやピッチをランダムに変化
上にドラッグ
24
■ イントロ付きループ設定手順
ループポイント付き波形であればイントロループできる。
CRI Atom Craftでループポイントを設定することも可能。
イントロ付きループ設定手順
1.ループしたい波形を選択
2.ループタイミングをサンプル単位で設定
25
サウンド設定
■ サウンドの再生数制限
• 再生数制限って?
– 何も考えずにサウンド再生していると…
• 鳴りすぎて聞かせたい音が聞こえない
• CPUの負荷が再生数に応じて増大
• 100人のキャラクターがいて100人の足音全部を再生?
→ 選別することで聞かせたい音が聞こえCPU負荷も抑えられる
26
発音数制限の設定方法
■ プログラムで大枠。ツールで詳細を管理。
- プロジェクト設定で最初に最大同時発音数を指定。
- ツール側で音に優先度を指定。BGMは優先度MAX、など。
- ADX2ツール側で、音単位の発音数、グループ単位の発音数、カテゴリ単位の
発音数、などを制限可能。
例:このキャラのボイスは同時に1音まで
例:打撃音は全部で最大4音まで
- 連続呼び出し禁止時間も設定可能。
例:打撃音は0.2秒以内に続けて呼ばれたら無視する
27
発音数制御
■ 発音数制御(カテゴリ)
1. カテゴリに属しているサウンドの再生可能数を設定できる。
2. 指定時間内で多重に同一サウンドの再生が起きないよう設定でき
る。
1. 2.
28
発音数制限の設定方法
■プレーヤーごとの発音数制御
• ボイスリミットやカテゴリリミットはゲーム全体にかけるリミット
• プレーヤー単位などゲーム上のオブジェクトごとに設定を行うには、
さらにサウンドオブジェクトの設定をUE4上で行う必要がある。
– サウンドオブジェクト:
29
発音数制限の設定方法
■プレーヤーごとの発音数制御
AtomSoundObjectのデータアセット(PlayerA用、PlayerB用)をそれぞれ作成
30
発音数制限の設定方法
■プレーヤーごとの発音数制御
アセットエディタでAtomSoundObjectのデータアセットを編集する。
Player単位でのリミットに変更したい場合は各チェックボックスを有効にする。
31
発音数制限の設定方法
■プレーヤーごとの発音数制御
サウンド再生前にサウンドオブジェクトをセットしておくことでPlayer単位
でのリミテーションが可能になる。
PlayerA PlayerB
32
ADX2 x UE4の入門的な話2
■サウンドの再生でもっと複雑なことをしたい
 サウンドをリアルタイムにパラメータ制御したい
 グループごとに再生制御をしたい
 状況に応じてサウンドに適切なエフェクトをかけたい
 自然に音声を繋げて再生したい
33
ADX2 x UE4の応用的な話
■特殊なことを行う場合に使うBlueprint API
• インタラクティブサウンド系
• グループ管理
• Busエフェクト系
• シームレス連結系
34
インタラクティブサウンド
■ CRI Atom Craftでのデザイン
• CRIではAISACというリアルタイムパラメータコントロール機能がある
• 例えば距離に応じてボリュームを変更する場合・・・
1.キューを選択
2.AISACを追加
2.アプリケーションから受け取ったパラメータを
反映させたい項目を選択
35
インタラクティブサウンド
■ UE4での実装
• 設定パラメータはSoundAtomCueのア
セットエディタ内で確認できる
• 再生するAtomComponentに対して
AISACパラメータを変更する 指定できるAISAC名やカテ
ゴリ名を確認できる
36
グループ管理機能
■カテゴライズによる音声の分離
• キャラクター、SE、BGMなどに分離
– 各カテゴリごとにボリューム調整
• ゲームオプション画面の種類別のボリューム調整
– 特定のカテゴリのみポーズ
37
グループ管理機能
■カテゴライズによる音声の分離
1. カテゴリの選択
2. キューをD&D
1.
2.
38
グループ管理機能
■ UE4での実装
• カテゴリ名を指定し、ボリュームなどを変更するBlueprintAPIがある
– どこでも変更可能
39
Busエフェクト系の演出
■Busエフェクトとは
• リバーブやエコーなど重い処理を一度にまとめて行う仕組みです。
• CRI Atom Craftではエフェクトの組み合わせを設定する。
• UE4内ではエフェクトの組み合わせを切り替えたり、用意したパラ
メータの設定を切り替える処理を行う。
– ゲームのシチュエーションが変わったときに切り替える
– 洞窟→草原
– 洞窟の大部屋→洞窟の狭い通路
40
Busエフェクト系の演出
■ CRI Atom Craftでの操作
• 手順
1. Busを追加しエフェクトを設定
する
2. BusのSend先を設定する
3. いくつか設定値をテンプレー
トとして保持したい場合は
Snapshotで保持する
エフェクトの追加を行う
41
Busエフェクト系の演出
■ Busエフェクト設定例
DSPBusSettings Snapshot
Dungeon Grass
Cave_Narrow_Aisle I3DL2リバーブ
Cave_Wide_Room I3DL2リバーブ
Cave_Narrow_Room I3DL2リバーブ
Town I3DL2リバーブ
Menu ECH
42
Busエフェクト系の演出
■ UE4での操作
• 手順
1. ASR Rack(ADX2の出力ハ
ンドル)を取得
2. DSP Busをアタッチ
3. 取得したASR Rackを用いて
Snapshot切り替えを行う
43
シームレス連結系の演出
■ サウンド再生中に別の音を途切れなく繋げたい
– 実況音声のように状況で判断して音声を切り替えたい。
– 途切れを感じさせずにつなげたい。
音A 音B
音C
SetSound Enqueue Enqueue
アプリケーションの状況に応じてEnqueするCueを変更し
1本のCueとして再生
音D
44
シームレス連結系の演出
■ UE4での実装
• 音が途切れないように再生する例
音A 音B 音A 音B
SpawnSound Enqueue Enqueue Enqueue
・・・
再生中にEnqueすれば
途切れることなく再生が続く
45
サウンド周辺の機能
■UE4 標準オーディオの機能群との共存
サウンドキューエディタで構築できるランダム再生や
パラメータコントロールの他にも標準機能は様々提供されている。
- Sound Attenuation
- Sound Class
- Sound Mix
- Sound Concurrency など
ADX2がすべての機能を完全にカバーするわけではありませんが、
多くをカバーまたはデータ側で実現できるよう機能強化中です。
※ADX2とUE4標準オーディオの併用も可能。
46
アンリアル・エンジン4 × CRI Sofdec2
47
Sofdec2 とは
■動画再生ミドルウェア
動画を滑らかに再生し、ゲーム演出として利用できる。
フル画面のムービ再生だけでなく、
・ムービーをゲーム画面に貼り込む「テクスチャムービー」
・透過情報を入れて画面に重ねる「αムービー」
などの機能がある。
動画ファイルは独自データ形式。暗号化機能あり。
ストレージからのストリーム再生に対応。
48
ムービデータ圧縮
■エンコードツール提供
専用のエンコードツールとPC用ビューアをSDKに同梱。
GUI/CUI両方あり。
入力素材は AVI, MP4, 連番画像に対応。
動画コーデックはSofdec標準とH.264を選択可能。
H.264は CRI DietCoder™の技術を投入した高圧縮を実現します。
49
■アルファムービ
ムービーにα値(透明度)を持たせることで、ゲームシーンと違和感
のない合成が可能です。
演出としてのムービ利用
※市松模様は透明部分を意味します。
50
追加機能
■プレイリスト再生
動画のリストを指定するだけで、シームレスに連続再生します。
キャラの組合わせて演出が変わる場合などに利用できます。
A
B C
D E
プレイリスト ABC
プレイリスト ADE
51
最新情報
■ VP9コーデック対応(現状スマホ、PC向け)
• 約半分のデータ量を削減(H.264比較)
– ファイルサイズ削減、通信コスト削減
– 例:60秒のOPムービー
• H.264:12MB → VP9:6MB (6MBのデータ削減)
• Sofdec2の特殊再生が利用可能
– アルファムービーや複数同時再生といった高度な演出も可能
52
さいごに
■ CRIWAREとは
CRIWARE は単なるパッケージではありません。
より素晴らしいゲーム制作をサポートするサービスです。
是非とも、皆様のご意見・ご要望をお聞かせください。
お問い合わせ…
http://www.cri-mw.co.jp/contact

スマホもゲーム機も!CRIWARE×UE4 最新機能紹介 - 株式会社CRI・ミドルウェア - GTMF 2018 OSAKA

Editor's Notes

  • #4 まず講演の初めにCRIをご存じないという方のためにCRIについて簡単に説明いたします。 こちらのロゴは見たことある方も多いかもしれません。 こちらのロゴは左側がスピーカー、右側が映像を表しておりまして、CRIWAREとはオーディオとムービーに関するミドルウェア・サービスを提供していることを表しています。 1995年にはセガサターン向けのサウンドミドルウェアを開発し、その当時から機種限定ではあるけれど開発をしやすくするツール開発を行ってまいりました。 2000年に入りセガから独立し、セガサターンに限らず、各種プラットフォーム向けにミドルウェアを利用できるよう展開して、最近ではスマホ対応、ゲームエンジンへのPlugin化、そしてブラウザで利用可能な形と ミドルウェアを着々と進化させ続け、ゲーム開発の手助けとなるツールを開発し続けてきました。
  • #5 その開発し続けてきたツールはCRIでは3機軸あり、 音声の圧縮やサウンドデザインを簡単により高度に行えるようにするサウンドミドルウェアのADX2、 高画質でムービーの制御・演出などをより高度に行うことを可能にしたムービーミドルウェアのSofdec2、 ファイル読み込み、圧縮などに秀でたファイル圧縮ミドルウェアのファイルマジックProとなります。
  • #6 これらのミドルウェアを利用していただいたタイトルの一覧です。 このセッションはUnrealEngineとタイトルづけていますが、この一覧についてはunrealで作られたものに限りません。 これらのミドルウェアを利用 →数多くのタイトルに利用されてきました。 特にミドルウェアの特徴として複数プラットフォームでの開発も単一APIで開発できる利点からマルチプラットフォームでの開発で多く利用されていたりもします。
  • #7 スマホについてもこのように数多くのタイトルがリリースされています。 特にアンドロイドについてはOSもバラバラ、機種もバラバラということでサウンドで遅延など生じる問題がありますが、それについてもCriのミドルウェアがカバーしていることで採用していただくということにもなっております。
  • #8 さて、今回のセッションのタイトル「UnrealEngineとCriWareの最新機能紹介」とありました。 もちろん最新機能についても紹介いたしますが、今回のこのセッションの目的としては、ググってもあまり情報が出てこないUnnrealEnggineでCriWAreはどのようにして利用するかというPluginの使い方についてお話させていただこうと考えております。
  • #9 CriWareUE4Pluginは先ほど紹介しました、CRIの3機軸の製品ADX2、Sofdec2、ファイルマジックプロをUE4で利用するためのプラグインになります。 対応機種はPC、PS4、XboxOne、Switchは対応しており、先ほどの採用タイトル一覧のなかにも利用されているものはありました。 Android、iPhoneに対する対応はこれまで公式リリースは行っていませんでしたが、近日中に公開予定となっています。 こちら動画再生周りでVP9コーデックを利用することができるなど、スマホアプリ開発にとって有効な機能も含めるようにしています。
  • #10 概要の説明についてはこのくらいで、以降のセッションでは、 UE4xADX2の組み合わせに関して、ワークフローの紹介、ADX2をPluginとして利用する際の特徴について紹介し、 いくつか演出例を紹介します。基本的にここが本セッションのメインとなります。 その後UE4とSofdec2の組見合わせでできることに関して時間の許す限り説明いたします。
  • #11 まずは、UE4とADX2のワークフローに関して説明します。
  • #12 まずUnrealEngineの標準オーディオでのワークフローの全体像ですが、サウンドデザイン部分で、まずデザイナーがサウンド素材を用意し、それをUE4に組み込む、組み込んだのちそのまま再生する、もしくはサウンドキューを作成し、 ランダマイズ、やモジュレーション、フェードなどの効果をサウンドキューエディタでデザインします。このデザインされたキューを使ってプログラマのほうで再生制御をブループリントで再生したり、アニメーションに音声を通知としてアタッチして 再生することになります。
  • #13 CRIのPluginを使った際のワークフローとしては、まず異なるのはUnrealEngineとは異なる場所でサウンドデザインを行うということです。 サウンドデザイナーの方は音声素材を用意したのちに、UnrealENgineに直接インポートするのではなくCRIのCRI Atom Craftというツール上でサウンドデザインをすることになります。 ここでデザインして新しく出力したCRIのサウンドデータをUnrealEngineにインポートして、プログラマはインポートしたデータをキューとして再生するということになります。 CRIのプラグインを利用する利点としては、サウンドデザインとゲーム実装を分業して行うことが可能になるということです。 UnrealEngineでのデザインの場合は、単純な再生を行う場合は問題ないかと思いますが、パラメータを制御してサウンドに変化を与えたい場合、テスト用にブループリントを組むということが必要になります。 一方、CRIでのデザインの場合はCRI Atom Craftでサウンドに関するアプリケーション中で動かすようなパラメータの変更も容易となっています。 そのためサウンドデザイナ側のパラメータを利用した演出デザインはプログラムを用意する必要なく行えるといったことが利点になります。 もう一点はUnrealEngineはやはりハイエンドPCで動かす必要がありますが、サウンドデザインを行うだけならばCRIのツールを使うだけでよいため高性能なPCの用意は必要ないということも利点として挙げられますでしょうか?
  • #14 さらにはCRIのNativeAPIを直接利用することも可能なため、ユーザー独自のサウンドプラグインを別途用意するということとも可能になります。 汎用的に使えるようにCRIでもPluginは開発していますが、特定のアプリに特化したものが欲しいという場合は独自にPluginを開発するということも可能です。 ただ、C++での実装については、今回の公演の内容を入門レベルと絞っているため今回は割愛いたします。
  • #15 では一度サウンドデザインされたデータを取り込んで再生するまでのフローを見てみましょう。 そのデザインツールでデザインしアプリケーションで使うためのデータとして出力すると、全体設定データ、オンメモリデータ、ストリームデータが出来上がります。 ばらばらだったwavファイルを圧縮パッキングしたデータを出力します。
  • #16 出力したデータをUE4に取り込むと、UE4でいうサウンドキューと同等のAtomCueというアセットが作られます。 ただ、規模が大きくなるゲームになると数万規模の数のサウンドが用意されて、それをアセットで管理するの?という不安もあるかもしれません。
  • #17 アセットにするというのが基本ですが、サウンドが数万となってくるとコンテンツブラウザでの表示が悲惨なことになりますよね…。 そのような場合は、データテーブルを別途用意したりする必要がありますが、Cueを文字列やIDで管理するということもできます。 これにより生成されるアセットをかなり削減することができます。
  • #18 簡単に音を再生してみる場合はこのキューをレベル上にD&Dすることで音声を再生させることができます。
  • #19 UE4でのサウンドの再生方法はアセットをレベル上に置くもありますが基本的にはオブジェクトにコンポーネントを張り付けて再生するというのと、 SpawnSound、PlaySound関数を呼んで再生するというものになるかと思います。 CRIの再生方法も基本的にはUE4の再生機能と同じで、AudioComponentをオブジェクトに張り付けてサウンド再生する、 PlaySound、SpawnSoundを行うといったものになります。
  • #20 AtomComponentを引っ張ってサウンドの再生を行ったり、SpawnSoundを使ってサウンドの再生を行ったりとUE4のサウンドの再生方法と同じと感じられる方もいると思います。 CRIのUE4Pluginの特徴として、サウンド再生に関するAPI系は基本的にはUE4標準オーディオのものを踏襲しています。 コンポーネントを引っ張てっくるPlay、Stop。Pauseなどの処理、PlaySoundAtLocation、SpawnSoundAtLocationなどの関数がUE4にはあります。 これと引数の使用などほとんど同じにしたものを用意しているため、もし標準UE4サウンドを離床している場合は、ブループリントAPIを差し替えるような感覚で CRIのプラグインを使い始めることだってできます。
  • #21 もう一つ特徴としては、サウンドの状態を取得する機能を盛り込んでいることです。 再生時間やサウンドの長さ、後程述べますが、グループ分けされたサウンドの一括ポーズ状態などが取得できたりします。 これにより、音ゲーのようなサウンドと連携するゲーム開発にとても相性が良いといえます。
  • #22 基本的にはこの点を押さえておけば、サウンドデザインをCRI Atom Craftで行ったデータを使えばランダム再生、イントロ付きループといった再生に少し工夫が 必要な再生も簡単にできますし、再生数制限やプライオリティ制御など再生設定回りも特にUE4側で考える必要がなくなります。
  • #23 では少しどのようにしてデザインを行っていくのか簡単に例を踏まえて紹介していきます。 まずはUE4でBlueprintを制御する必要がない演出のためのデザイン方法について紹介します。
  • #24 ◆ 鳴らす音をランダムに変えたい、ランダムトラック、パラメータのランダマイズ どちらも簡単にツールで行えます。
  • #25 ループポイントが入っていれば自動的にイントロ付きループになります。 ツールからループポイントを設定もできます。
  • #26 全部の音を鳴らしても音が分かりにくくなる、 →選別して制限することで、聞きたい音が聞こえるというようなデザインができるようなあります たとえば、100人のキャラクターがいても100人の足音はいらない。
  • #27 発音数制限は、まずトータルで発音することができる数を決めます。 これはアプリケーション側の設定となります。 この最大発音数を想定してADX2ツール、CRI Atom Craftで音単位の発音数、グループ単位の発音数、カテゴリ単位での発音数などで数の制限をかけることができます。 これによりこのキャラのボイスは同時に1音まで、打撃音は全部で最大4音までというような設定ができます。 また、この制限には多重再生に関する制限も同時に設定可能となっています。 これは例えば1フレーム内で同じ音が複数同時になってしまうということを制限でき、銃声のような音でも50ms以内に発音された場合は音声は再生しないというようなことが可能となります。
  • #29 ただ、これらの制限はゲームプロジェクト単位での設定のため、キャラクター単位というゲーム中の条件単位での制限はこれだとできません。 キャラクター単位というようにゲーム中でサウンド再生制御のグループ分けを行いたい場合は、CRIだとサウンドオブジェクトというデータアセットを必要数分用意して、 CRIのAtomComponentにしていする必要があります。
  • #33 ここまではほとんどUE4での画面が出てきませんでした。 ここからは少しインタラクティブにパラメータを調整するような演出についてみていきます。 少し複雑な演出、例えば、サウンドをリアルタイムにパラメータ制御したい、グループごとに再生制御したい、状況に応じてサウンドに適切なエフェクトをかけたい、 自然に音声を動的につなげて再生したい、というようなことを例にどのようにアプリケーション中で実現していくか説明していきます。
  • #34 これから紹介します演出例を、インタラクティブサウンド系、グループ管理系、Busエフェクト系、シームレス連結系と分類しておきます。
  • #35 ◆ 変えられるのはボリューム、リバーブなどのエフェクトのかけ具合をデザインできます。 距離減衰をイメージすると、距離が離れるごとに音がこもったエフェクトをかけるとかできる。 スポーツの観客の完成を盛り上がり度としてパラメータとして設定したりできます。 実際に作りこむとこのような観客の歓声演出もできたりします。
  • #36 ◇ 作成したデータを組み込んで実際に動かしてい見た様子です。 ほかにもいろいろとインタラクティブサウンドの機能はありますがここでは、一番シンプルな演出方法をご紹介しました。
  • #37 カテゴリの使い方 プログラマ ポーズ、プログラマ向けの機能 ボリューム調整、プログラマ向け ゲームのポーズ時にポーズする音を管理するのは大変です。 特にカテゴリごとのポーズを使うことで、 BGMだけ止めずに、それ以外の音をポーズしたい場合などで使うということが簡単に行うことができるようになります。
  • #39 ポーズについてもいちいち再生を行っているコンポーネントを一つ一つ制御する必要はありません。 BGMを残してポーズを行いたい場合は、ポーズするサウンドはカテゴライズされている必要があれど、カテゴライズされてさえいればカテゴリめーを指定してポーズすればそれに該当するサウンドはすべてポーズされます。
  • #40 次はBusエフェクト系の演出です。
  • #41 基本的に複数Busエフェクトを用意する場合は、例えばメニュー画面からゲーム画面といった全く環境が違う繊維の場合にはBusエフェクトの切り替えを行い、 草原から洞窟、洞窟内の狭い通路から広い空間という感じに同一環境での空間情報が変わった場合はSnapShotで草原用のテンプレート、洞窟:狭い通路用のテンプレート、洞窟:広い空間用のテンプレートという形でSnapshotを用意します。
  • #43 UE4ではこのBus設定の切り替えやSnapshotの切り替えを行います。 初めにメニュー画面ようの設定を使いたい場合はAttachiDspBusSettingsで草原用の設定をしたBus設定名をAPIに入れます。 ゲーム遷移でゲーム本編のレベルに切り替わったらAttachDspBusSettingsでゲーム本編用のDSPBus設定に切り替えます。 ゲーム本編用のDspバス設定となったら、プレイヤーの状況に応じてSnapshotを切り替えます。 まず初めに草原のエリアにプレイヤーがいたらApplyDspBusSnapshotで草原用の設定をしたSnapshot名をAPIに入力します。 洞窟に入ったら狭い通路になっているとしているなら洞窟:狭い通路用設定のSnapshot名を入力します。 ここでApplyDspBusSnapshotの第三引数に時間を設定することでSnapshotの切り替わりが瞬間的に切り替わるのでなく時間保管で切り替わるようになります。 これについてはプログラマ的に言うならば、Shaderのサウンド版に近いかもしれませんね。 これを使いこなすことで低負荷で効果的な演出を行うことができるようになるため、この講演が終わった後にもしご興味がありましたらCRIのブースまでお越しください。
  • #44 さて次はシームレス連結系の演出の話です。
  • #45 BGMのような音を再生状況を動的に再生する音を追加していく例です。 ちゃんとつながるように作られたサウンドであれば、音が途切れないように再生する例としてはこの通りになります。
  • #46 ここまでCRIのPluginを使うことで、簡単にサウンド演出を行えるということを示してきました。 ただ、サウンド演出という点ではUnrealEndgineの機能もかなり高度な演出ができるようになっています。 遮蔽や距離減衰の設定を行うSoundAttenuationやカテゴライズができるSoundClass、ミキシングを行えるSoundMix、発音数を再生時に制限するSoundConcurrencyなど、 UE4標準ゆえの便利な機能が多くあります。 CRIでは、機能を完全にカバーしているわけではありませんが、こういったSoundConcurrencyなどUE4独自の機能と連携してより高度な演出が可能としています。 また、ADX2を組み入れるとADX2しか使えないということはなく、UE4標準の再生方法も並行して利用できるようにもしてあります。
  • #49 エンコードツールとPC用ビューアを同梱して提供しています。
  • #51 サウンドのシームレス再生の動画版に当たります。 動画の場合はファイルリストで行うことができます。 近いうちにスマホ対応ということで、ガチャ演出などに使えたりします。 動画のイントロ付きループを作る場合もこの機能を利用するといいかもしれません。
  • #52 960x540 30fps滑らかに再生できる 5世代前くらいのスマホiPhone 5c以降の端末で利用できます。
  • #53 以上で、ADX2、Sofdec2に関する開発方法についてご紹介しました。 細かい内容や質問がある場合については弊社ブースにお越しください。