見出し画像

『エリオス ライジングヒーローズ』で、ホログラムの人を喋らせた

この記事は「Cacalia Studio アドベントカレンダー 2021 エンジニア版」の18日目の記事です。

はじめに

はじめまして、Happy Elements株式会社で『エリオスライジングヒーローズ』のエンジニアを担当しているT.M.です。
年齢は…四捨五入すると半世紀になってしまうベテランですが、現場でいちエンジニアとしてコードを書いています。
弊社は若い方が多いのですが、興味ある方は年齢関係なくご応募いただければと思います!

本記事では、『エリオスライジングヒーローズ』のストーリー再生で、ホログラム表示を改善した内容となります。

前提

『エリオスライジングヒーローズ』では、主に背景、キャラクターの立ち絵、テキスト、エフェクトでストーリーが再生されます。

画像1

豪華なエフェクトが使用されることがあるものの、基本的には昔からよくあるタイプの手法です。

世界観にあわせて、ホログラムや変身といった特殊効果のかかった表示が存在しますが、これらは立ち絵の1枚絵(変身は前後2枚を使用していますが)に演出専用のシェーダを割り当てて再生していました。

画像2

キャラクターの表情は、顔のパーツを使って作成しているため、特殊なシェーダを利用する際はそれらを適用できませんでした。
今回議題としているホログラム、最初はジャックに掛かる程度だったので問題ありませんでしたが、のちには他のキャラクターにも適用されることが増えていき…。
シリアスな会話をしているときに表情がないのは不自然なのでなんとかならないか?という要望を受けて対応いたしました。

対応

前述のように、ストーリー再生時は、立ち絵の上に顔の画像を乗せ、その上にパーツを載せてキャラクターを表情付きで表示しています。

スクリーンショット 2021-12-13 172612

なので、

● そのままシェーダを適用すると顔だけ残る
● 顔パーツまで適用すると、顔部分、パーツの部分だけ二重三重に
   エフェクトが掛かってしまい、おかしな表示になる


という状態になってしまいます。

そこで、立ち絵に表情をつけた後、その画像のみをレンダリングしてテクスチャとして保存し(以下これをキャプチャと呼びます)、それにホログラム用シェーダを適用することで解決しました。

キャラクターは最大5体(4体+ウィンドウ枠に1体)表示されるので、5体全部がホログラムになるとメモリ的に不安でしたが、ホログラム表示が遠隔地との会話という性質上大丈夫かな…という目論見です。『ヒーロー』が皆リモートワークになると困ってしまうかもしれません。

詳細

キャプチャ時は、フレームバッファのアルファが0である必要があり、また、キャラクター以外のものを写したくないので、他の物を映さない、立ち絵と同じサイズの画像をキャプチャする環境を用意して対応しています。

ホログラムが始まると、キャラクター表示のシステムは、それまでの立ち絵+パーツの表示から、キャプチャした画像の表示に切り替え。そのキャプチャ画像のマテリアルにはホログラム用のものが割り当てられています。
キャプチャ画像は、キャプチャ用システムが生成して毎フレーム渡しています。表情が切り替わったときだけでなく、ボイスに合わせて口パクをしているので、ホログラム時は常に生成しています。
キャプチャ用システムでは、指定に従って表情などを設定する立ち絵キャラクター制御の仕組みがそのまま動いていますが、専用のカメラで表示を行い、レンダリングの結果をキャプチャ用に用意した画像に反映しています。

こちらはキャプチャした画像を抜き出したものです(掲載のため縮小しています)

画像4

まとめ

先日復刻された「Escape The Prison」ですが、リリース当初はホログラムは決まった表情でしたが、今ではキャラクターの表情が豊かになりました。
(豊かといっても、ヴィクターさんなので、あくまで冷静な表情ではありますが…)

画像5

復刻イベント、ストーリーがフルボイスになっておりますので、まだ読んでいない方も、一度読んだ方も、また見ていただけると嬉しいです。

これからも改善を続けてまいりますので、引き続き『エリオスライジングヒーローズ』をよろしくお願いいたします!

--

Happy Elements カカリアスタジオでは
いっしょに「熱狂的に愛されるコンテンツ」をつくっていただけるメンバーを大募集中です!

もし弊社にご興味持っていただけましたら、是非一度
下記採用サイトをご覧ください!