原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】クロマキーシェーダを使って動画を合成する

会社行事

コロナ禍が収まったおかげで会社の色々な行事が復活し、4月の新人歓迎会が今から戦々恐々な皆さんこんにちは。わが社では新人歓迎会で既存の社員一人一人が壇上に立ち新入社員に対して自己紹介するという地獄のコーナーがあるので本当に憂鬱で仕方ありません。頑張って新人相手に自己紹介したところで3年以内に1/3は辞めるし意味ないのになぁ。

 

謎解き×謎解きなゲーム

ストレートな謎解きの一歩手前でその問題の意味自体を解読するという謎解きで包んだゲームが丁度セールで安くなっていたので購入しました。

多民族がそれぞれ異なる言語で分断された世界を舞台に、主人公(プレイヤー)が各々の民族が語る言葉の意味を解き明かしながら、民族間の軋轢を解消していく、という形でゲームは進みます。
「軋轢を解消していく」とは言え、主人公が民族間の紛争に積極的に介入していくというわけでなく、各民族が暮らすそれぞれの世界へ侵入し、そこで交わされている言葉と行動を見ながら各民族が使う文字の意味と文法を理解して、間接的に民族間の会話の翻訳者となり、それにより民族間の誤解が解けていく、というストーリーとなっています。

各民族の世界では主人公(プレイヤー)は歓迎されたり、敵視されたり、助けを求められたりするので、それらの問題に対処するための解決法を探り、提示された謎解き(パズル)を行っていきます。

謎解き(パズル)自体は記号の順序立て(並べ替え)やスライドパズル、お使い系(必要なアイテムを探してくる)といった既存のADVゲーム、脱出系ゲームにありがちなもので目新しさはないのですが、その問題を解くために先程の言語解読という謎解きを行う必要があるため、そういった二段構えの謎がプレイヤーの探求心をそそり、ゲームプレイを奥深いものにしています。
言語の解読というと難しいテーマに思われがちですが、想像よりもかなり遊びやすくデザインされており、プレイヤーが途中で挫折しないよう色々と仕掛けが練られて非常に完成度の高い作品だと思います。謎解きが好きな方はチャレンジをお勧めします。

 

素材提供

詳細は省きますがつい先日、大物Vtuberの方が自身のMVの一部を合成用素材として公開されています。

t.co有難い事に綺麗なブルーバックの動画となっているので、これならUnityでも気軽に合成してゲーム内に取り入れられるのでは?と思いチャレンジしてみました。

上記の公開されている動画はYoutubeからダウンロードしてUnityのProiectウィンドウ内にドラッグ&ドロップすればプロジェクト内に取り入れる事ができます。

 

Unityで動画を再生するのは非常に簡単で、まずは動画を表示するためのオブジェクト(PlaneやQuad)をゲーム内に作成します。

中央の白い四角がスクリーン用オブジェクト

スクリーン用のオブジェクトは出来るだけ動画のアスペクト比に合うようにサイズ調整します。
次にオブジェクトにInspectorウィンドウのAdd Componentから、VideoPlayerコンポーネントを追加します。

後はVideoClip欄に再生したい動画ファイルを指定してデバッグを実行すれば自動的に動画が再生されます。

動画を再生

これはVideoPlayerの「Render Mode」の設定に「Material Override」が指定されているので、スクリーンオブジェクトのマテリアルに動画の映像が上書きされている為ですが、このままの指定だと上の動画のようにブルーバックも表示されてしまう結果となります。

 

クロマキーシェーダ

ブルーバックを消す(透過させる)にはクロマキーシェーダを使用する方法が最も手軽な方法でしょう。
クロマキーシェーダとはその名の通り特定の色を透過させるシェーダで、アセットストア上には有料アセットとして存在していますが、今回は凹みTipsさんが公開しているクロマキーシェーダを使用します。

tips.hecomi.com

このクロマキーシェーダでは使用するTextureに対して指定した色を透過させてオブジェクトを表示します。
このTextureにVideoPlayerが再生する画像を指定すれば良いわけです。

VideoPlayeが再生する画像をTextureに描き出すには先程の「Render Mode」の設定を「Render Texture」に変更します。

 

RenderTextureはProjectウィンドウ上で右クリック→Createから作成します。

作成したRenderTextureは解像度(サイズ)を再生したい動画のアスペクト比に合うように設定します。

 

そして先程のVideoPlayerコンポーネントのTargetTexture欄に作成したRenderTextureを指定します。

 

クロマキーシェーダはスクリーン用オブジェクトのマテリアルのシェーダに設定します。

シェーダのTextrureにVideoPlayerコンポーネントで指定したRenderTextureを指定、ChromaKeyのColor欄に動画のブルーバックの色(青)を指定します。

実行結果はこちら、Unityのゲーム空間内に大物Vtuberさんの動画を合成させる事ができました。

 

別バージョンがこんな感じ、違和感なく動画を合成できます。

 

宣伝

数学的脱出ゲーム「W.T.」早期アクセス版リリース中です。
歯ごたえのある脱出ゲームとなっているので腕に自信のある方のチャレンジ、お待ちしております。

store.steampowered.com

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。