学校の卒業制作課題として作った私のゲームサウンド作品で、オーディオミドルウェアのWwiseを使用しました。このブログでは、Wwise導入経緯や制作過程について解説します。これからUnreal Engine4やWwiseに触れたいと思ってる学生や、「そもそもWwiseって何?」と疑問を持たれている方の参考になれば幸いです。
1.なぜWwiseを勉強しようと思ったのか
2年ほど前から、ゲームやネット上で読む記事、学校でWwiseという言葉が目と耳に入ってくるようになりました。その頃、私のゲームサウンド制作への認識は、ディレクターなどから発注された音を作り、プログラマーに渡して組み込んでもらうというものでした。だからこそ、サウンド制作の勉強のみに取り組んでいたといっても過言ではありません。
ところが、Wwiseについて調べてみると、サウンドの担当者がWwiseを使って効果音や音楽の鳴らし方の仕組みまでを作り、そのデータをプログラマーに実装してもらうというワークフローだったのです。「音をつくる勉強をしてるだけじゃ、最先端のゲーム開発についていけないんだ!」と衝撃を受けました。
2.なぜunreal+wwiseに挑戦したのか
作品の準備段階で、学生として企業にどうアピールするかかなり悩みました。クリアすべき課題を私なりに考え、大きく二つに絞りました。
課題1.リッチなサウンドの制作力や組み込みをアピールする
課題2.ゲームへの熱意や即戦力であることを証明する作品を制作する
課題1のサウンドの制作や組み込みに関しては、学校やWwiseのドキュメント( https://www.audiokinetic.com/learn/certifications/ )を利用し、勉強していたのでひとまずクリア。問題は何に音を組み込むのか…。実際これに悩んでいる学生は多いと思います。専門の人が手伝ってくれなければ、到底手を出せないと思ってしまったり、そこまで勉強するのはハード過ぎるし時間が足りないのではと、気が引けてしまうような問題です。事実、私もそう感じていた一人でした。
課題2についても、難しい問題です。「音が作れるだけで即戦力と感じてもらえるのか?」そんな疑問を私は抱いていました。音への理解度や制作力は最もアピールすべきポイントであると考えてはいましたが、即戦力という意味で考えると、実際のゲーム制作にどれだけ近しいことを行っているのか、どれだけ最新のものにアンテナを張り、且つ取り入れているのか…そんな部分を現場の方は制作力とは別の項目として、見ているのではないかと考えました。
そこで登場したのが、「Unreal Engine4」です。
近年、数多の企業で採用されているゲームエンジンで、Wwiseとの連携も注目されていました。しかも、学生の一作品として使用するにあたってはロイヤリティを支払う必要がないという点。
以上を踏まえて、UE4を取り入れた作品を制作すれば、課題2はクリアできると踏みました。しかし、最も根深いといっても過言ではない課題1の問題がまだ残っています。UE4を手にしたからといって、いきなりゲームが存在してるわけではありません。幸運なことに、現在はWwise Audio LabというWwiseとUnrealを使ったDemoProjectが存在しますが、UE4初心者且つプログラムを全く勉強してこなかった私にとっては、あまりに情報量が多くややとっつきにくい存在でした。
そこで、動画サイトやインターネット上の情報を元に勉強することを決意し、Webinerなどを利用してUnrealのゲーム制作を一通り学びました。
そういった経緯で、今回unreal+wwiseの作品を製作することが出来たのです。
3.どのような機能をunreal+wwiseで使ったのか
ここからは作品についてのお話をさせていただきます。
今回、3人称視点のゲームを作ったのですが、Unreal+Wwiseを使って、SwitchやState、GameParameterという3つの機能をどう組み込んだかについて説明させていただきます。
・State
Stateの機能を今回は、プレイヤーが死んだ際の演出に利用させていただきました。
まずWwise側の設定ですが、プレイヤーが死んでしまった際にSFXBusにフィルターをかけています。その際、ボリュームの変化が気になったので、Bus Volumeを少し上げました。
右の画像は、プレイヤーが死んでしまった際に意識が遠のくような演出をするためのRevの設定です。DeathStateが発行された際にRevのVolumeが上がる仕組みになっています。
次にUE4側の設定です。注目していただきたいのは、左端の赤い箱と右端の青い箱です。
左端の赤い箱は、キャラクターがダメージを受けるとイベントを発行します。右端の青い箱はそのイベントを受け取るとDeathのStateを発行するという仕組みです。これだけでStateが機能してしまいます。意外と簡単で驚きました…。
・Switch
Switchの機能は、操作キャラクターの足音の切り替えと敵キャラクターである熊の足音の切り替えに使用しています。今回は例として画像下の熊の足音のイベントを追いかけてみます。
Wwise側では、「Footstep_Bear」というSwitchGroupを作り、その中に「Brick」と「Snow」というSwitchを用意しました。
UE4側に移ります。熊がBoxCollisionにOverlapするとFootstepのnameを発行し、GameInstanceにName情報が格納されます。
そのName情報を下画像のAnimBPで拾い、Switchをセットするという流れを作りました。
・Game Paramater
今回Game Paramaterは、UE4側で岩の転がるスピードやオブジェクトとプレイヤーの距離の情報を発行し、Wwiseとの連携に使っています。例として、右画像の床から槍が飛び足してくる罠とプレイヤーの距離情報を扱ったものをみてみます。
まずUE4側ですが、変化させたいAudioのイベントの後にRTPCの値をセットしています。
次にWwise側ですが、BlendContainerであるTrapArrowに設定された3つのサウンドのGain値を距離に応じて変化させています。一番上と真ん中である、Dryな金属音と槍が持ち上がる低音は距離が離れるほど小さくなり、一番下のwetな金属音は距離が離れるほどレベルが上がるような仕組みを作りました。
だいぶ長くなってしまいましたが、機能説明については以上です。
改めて振り返ってみると、UE4の機能について無知だった私が約40日でこのような作品を作ることが出来たことに驚きです。それは、Audiokinetic社のドキュメントやWebinarなどがあってこそのものだと感謝しております。とはいえ、今回制作中に何度も壁にぶつかりました。突然音が鳴らなくなったり、送ってるはずの数値が届いてなかったり…その解決法を探そうにもなかなか情報が見つからないのが現状です。しかも、サウンド周りの情報となるとさらに量が減ります。「もっと情報が増えてほしい!」と、今回個人製作を通して強く感じましたし、提供できるような立場になれることを目指し、頑張りたいと考えています。
とはいえ、学生の個人制作でもここまで出来ることが今回わかりました。興味のある学生は、是非UE4やWwiseに触れてみてください!思っている以上に楽しく、まるでゲームを遊ぶかのような面白さがあるかと思います。
コメント