CRI Atom Craft エンコーディングタイプを設定する/第3回
こんにちは。
G2 Studios アートチーム サウンド設計担当のサキサキです。
同年代の人と比べ、聞き取ることの出来る周波数が高いことがちょっとだけ自慢です(笑)
それはさておき、今回は「エンコーディングタイプの設定」についての内容をご紹介したいと思います。
前回記事「ストリーミングタイプの設定」に引き続きゲーム再生上のパフォーマンス調整部分に関係してくる大事なところとなりますので、しっかりと抑えておきましょう。
▼前回記事「ストリーミングタイプの設定」
■エンコーディングタイプとは
「エンコーディングタイプ」は音声ファイルに適応する圧縮コーデック(*AtomCraftにおいては「マテリアル」に適応する圧縮フォーマット)のことを指します。
皆さんが普段よく耳にする「MP3」「AAC」はそれら圧縮コーデックの一つであり、特徴としては以下のようなものが挙げられます。
「MP3」一つをとってもそうですが、音声圧縮については「音質」と「データサイズ」が常に天秤にかけられた状態にあり、圧縮率によってその値が変化することが分かります。
ゲーム制作に当たり「音質」が非常に重要なものであると同時に、再生端末側でのダウンロードサイズを抑えることもまた重要な内容になりますので、これらを放っておくという選択肢はないかと考えます。
とはいえ、全てを自力で何とかしようとするとなかなか面倒な内容になりますので、やはりここは「CRI Atom Craft」の機能に頼るのがベストではないでしょうか。
っと、確かどこかに...。
あ!ありました!
CRI・ミドルウェア社が掲げる「統合型サウンドミドルウェア CRI ADX2」の特徴として次のようなものがあります。
見るからに既に何か良さげな雰囲気を醸し出してますが(笑)、ここから先はこの辺りの独自コーデックについて少し掘り下げていこうと思います。
■エンコーディングタイプの種類と特徴(AtomCraft)
AtomCraft上で設定できるエンコーディングタイプは、「デフォルト」「ADX」「HCA」「HCA-MX」「機種固有1~8」の5種類になります。
実質存在する圧縮フォーマットの種類としては「ADX」「HCA」「HCA-MX」の3種(*後述にて説明)となりますが、1オーサリングツール内にこれだけの数が用意されているのには、非常に興味を惹かれます。
どういった違いがあるのでしょうか。
<AtomCraftにおけるエンコーディングタイプ>
では、これらの圧縮フォーマットが実際どの程度の圧縮を可能にするのか調べてみましょう!
公式のマニュアルにそれらの値は当然記載されてはいますが、自分で調べないと気が済まないのが開発者の嵯峨ですよね(笑)
「人の検証結果を信ずるべからず」とかなんとか...(笑)
ここからは「『ADX』『HCA』の2種の音声圧縮フォーマット」と「エンコード品質」に焦点を当てようと思います。
調べてみた結果が下記になります。
▼クリックで拡大
※こちらの結果は圧縮対象の wav ファイルによっても異なります。どんな波形に対しても必ず同じ圧縮率になるとは限らない点にご注意ください。
マニュアル通りですね!
16bit非圧縮PCMデータを用いた場合、HCA音声圧縮における圧縮率はおよそ「4分の1」から「16分の1」(*赤色で記載)になっていることが分かります。
マニュアルにはない 24bit非圧縮PCMデータでも検証したところ、前者よりも圧縮率は高く「6分の1」から「24分の1」(*青色で記載)になることが確認されました。
また、この検証値とは別にここで注意する点としては、とりわけ以下のようなものが挙げられます。
<HCA音声圧縮時の注意点>
注意点あたりが出てくると、ちょっとややこしいというか多少難しく感じますね。
さらっと読み流してしまいそうな内容ですが思いのほか重要な内容になりますので、頭の片隅にでも置いておくようにしましょう。
■どのエンコーディングタイプ、どのエンコード品質を選ぶか
詰まるところ、これまでの内容を整理すると、
エンコーディングタイプは「HCA」、エンコード品質は「中品質~高品質(低圧縮)」
とするのが、ある意味推奨の設定なのではないかと考えます、あくまでも個人的な見解ではありますが...。
何となくの裏付けにはなりますが、AtomCraft上でのエンコード品質のデフォルト設定が「高品質」になっているのは、そういったことを見越してのことなのかもしれませんね。
とはいえ、決め事の1つ1つには理由が必要ですので、この形をベースに仕様や開発状況を鑑みて随時調整を行っていくのが理想的な手法であると感じます。
■エンコーディングタイプの継承(AtomCraft)
エンコーディングタイプの継承に関しては、前回記事で取り上げた「ストリーミングタイプの継承」とほぼ同内容となりますので、説明は省略したいと思います。
■エンコーディングタイプを設定する(AtomCraft)
それでは、実際にAtomCraft上で設定してみましょう。
今回は以下に記載した内容でサウンドデータを作成しようと思います。
<ゴール条件(*以下3つの内容を満たすことが必須)>
それでは、AtomCraftを起動し、作業を始めるための準備を行います。
※プロジェクトの展開についてはこちら
<手順①>
▼クリックで拡大
予め用意した
「Bgm_EncordingType_ADX.wav」
「Bgm_EncordingType_HCA_Highest.wav」「Bgm_EncordingType_HCA_High.wav」「Bgm_EncordingType_HCA_Middle.wav 」「Bgm_EncordingType_HCA_Low.wav」「Bgm_EncordingType_HCA_Lowest.wav」
の6つの音声ファイル(*ファイル名は仮。名称だけ異なる同音声ファイルでOK。)をマテリアルツリーにドラッグ&ドロップ、登録します。
※ここでの音声ファイルは、インターネット上にあるフリー素材など使用に差支えのないものをご利用いただければと思います。自己責任でお願いします。
<手順②>
▼クリックで拡大
マテリアルルートフォルダ直下にマテリアルサブフォルダ「Bgm_EncordingType」を作成し、先の6ファイルを移動&格納します。
<手順③>
マテリアルサブフォルダ「Bgm_EncordingType」のエンコーディングタイプとエンコード品質を「デフォルト」に設定し、上位であるマテリアルルートフォルダの値を継承します。
<手順④>
マテリアル「Bgm_EncordingType_ADX.wav」を選択し、エンコーディングタイプに「ADX」を設定します。
エンコード品質は「HCA」「HCA-MX」と一部の機種固有コーデックのみで指定可能な設定となりますので、「ADX」が指定されたこのマテリアルに対して設定する必要はありません。
<手順⑤>
▼クリックで拡大
マテリアル
「Bgm_EncordingType_HCA_Highest.wav」「Bgm_EncordingType_HCA_High.wav」「Bgm_EncordingType_HCA_Middle.wav 」「Bgm_EncordingType_HCA_Low.wav」「Bgm_EncordingType_HCA_Lowest.wav」
の5つをそれぞれ選択し、エンコーディングタイプに「デフォルト」を設定、上位であるマテリアルサブフォルダ「Bgm_EncordingType」のエンコーディングタイプを継承します。
※今回の場合、エンコーディングタイプに「HCA」を設定しても問題ありません。)
また、併せて、「エンコード品質」を下記の形で設定します。
<「エンコード品質」の設定>
<手順⑥>
マテリアル
「Bgm_EncordingType_ADX.wav」
「Bgm_EncordingType_HCA_Highest.wav」「Bgm_EncordingType_HCA_High.wav」「Bgm_EncordingType_HCA_Middle.wav 」「Bgm_EncordingType_HCA_Low.wav」「Bgm_EncordingType_HCA_Lowest.wav」
の6つを選択し、ワークユニット上「キューシートフォルダー」下位の任意の場所にドラッグ&ドロップします。
作業は以上となります。
上手くデータ作成はできましたでしょうか。
今回の場合、ターゲットコンフィグ上のエンコーディングタイプの設定が「エンコーディングタイプ(メモリ) ⇒HCA」であることを前提とした作業内容となってます。
仮にこれらの設定値がそれ以外の「ADX」「HCA-MX」である場合、それより下位にあるエンコーディングタイプに「デフォルト」を設定したものについて上記の対応方法が微妙に変化してきますので、注意するようにしましょう。
■まとめ
サウンド実装はゲーム制作過程において「色付け程度のもの」と認識され易く常に後回しにされがちなものではありますが、実際のところエンジニア側で行うような「設計」を必要とする内容のものが非常に多く、早い段階でそれらを考慮しておく必要があります。
「エンコーディングタイプ」や前回記事で述べた「ストリーミングタイプ」についてもその設計の一部であり、それらが制作途中で変更となる場合、実装スクリプトやサウンドデータ管理にも多大な影響を及ぼすことが想定されます。
筆者自身、アサインされた段階でもうどうにも手の付けられなくなっているプロジェクトをこれまでいくつも見てきました。
そういった事態に陥らないよう、周囲にしっかりと働きかけていくようにしましょう。
また、「音質」はユーザーの継続率を維持&向上させる上でも非常に重要なファクターとなりますので、必要以上に劣化させないよう併せて注意するようにしましょう。
今回は以上となります。
今後も更新を続けますので、ぜひフォローをよろしくお願いします!
▼G2 Studiosでは一緒に働く仲間を募集しています