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

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

【小ネタ】VisualStudioで「定義済の型"System.void"は定義、またはインポートされていません」とエラーが出るとき

f:id:Karvan:20211207194902p:plain

当たってしまった

倍率10倍と聞いてどうせ当たらないからとヨドバシカメラの抽選企画に申し込んだら何故か当選してしまい年末を前に懐が寂しくなった皆さんこんにちは。switchのホワイトモデルが手に入って嬉しい反面、年末年始は節約生活になりそうです。

 

Solar Ash

「Hyper Light Drifter」を作成したチームの新作ということで発表当初から楽しみにしていたゲームを発売日に購入しました。

f:id:Karvan:20211207195750j:plain

美麗なグラフィックと高速で滑らかなアクションが魅力のゲームですが、「Hyper Light Drifter」のような王道のアクションRPGを期待するとちょっと肩透かしを食らうと思います。そもそも敵と戦う場面が少ない。
"戦闘"よりも"移動"をメインに据えたようなゲームデザインで、以前紹介した「The Pathless」に非常に似たゲームとなっています。

箱庭のマップ内を高速で移動しながら複数個あるチェックポイントのギミックを解除→ボス戦というゲームフローで、ボス戦も制限時間内に特定の経路を移動するアクション(これを3回繰り替す)となっており、戦闘というよりレースのタイムアタックといった方が近い、「Hyper Light Drifter」がゼル伝ライクなら「Solar Ash」はソニックライクといった感じです。

f:id:Karvan:20211207200027j:plain

スケートような動作で高速に移動する操作性は抜群で、二段ジャンプやレールライドのアクションも爽快感があります。
マップはかなり高低差があるので地面を滑りながらジャンプして高所に飛び移ったり、ワイヤーアクションのような動作で空中を渡ったりと移動するだけでも楽しめるような作りとなっています。

また、アバウトな操作でも敵に攻撃が当たるので戦闘の難易度は低め、敵に囲まれて詰むとか、思い通りの操作ができなくて不満が溜まる、ということはありません。

クリア時間が6~8時間とボリュームが小さいことは気になる点ですが、気軽にアクションゲームを楽しみたい人にはお勧めのゲームだと思います。

 

さて、本題

以前のUnityではバージョンアップするたびにプロジェクト設定の一部が初期化されたり、Prefabの設定が吹き飛んだり、アセット内のファイルとPulginフォルダ内のファイルが重複しているエラーが吐き出されたり等々の障害が発生していましたが、Unity2019あたりからそういったトラブルに巻き込まれることが無くなりすっかり油断していました。

 

定義済の型"System.void"は定義、またはインポートされていません

 

先日、Unity2019を最新バージョンにアップした後にスクリプトを作成すると、VisualStudio上で上記のエラーが表示されるようになりました。
既存のスクリプトに関しては上記のエラーは吐かれないので、無視してUnity上でコンパイルすると作成したスクリプト通りに動作してくれるのですが、何とも気持ち悪いです。

 

Google先生に尋ねてみると、どうやらプロジェクト設定のApi互換性レベルが間違っているらしい。そんなところ変更した覚えは無いのですが。

Unityエディタから Player Setting(Edit > Project Settings > Player)を選択してOther Settingsを開きます。

f:id:Karvan:20211207200609p:plain

ConfigurationのApi Compatibility Levelを確認

これを「.NET4.x」に変更すると先ほどのエラーが吐かれる事はなくなりました。やはりGoogle先生の教えの通りプロジェクト設定を間違えていたらしい。
だから、そんなところを変更した覚えは無いのですがね。

【アセット紹介】カメラエフェクトにも使えるTexture Adjustments

f:id:Karvan:20211130194112p:plain

忘年会

今年も無事に忘年会が開かれないことを知ってホッと胸を撫でおろしている皆さんこんにちは。感染者数が激減し、様々な規制や制限が解除されている中、今年はどうなることかと冷や冷やしていましたが良識ある社長で良かったです。できればこのまま来年の飲み会行事も一気に廃止してほしい。

 

前回の続き

前回の記事でアセットストアで購入した動的にテクスチャを編集できるアセット(Texture Adjustments)を紹介しましたが、今回はその続きになります。

 

assetstore.unity.com

このアセットはアセット名の通り3Dモデルで使用するマテリアルのテクスチャに色々なエフェクトを掛けて編集できるアセットなのですが、実は公開されているAPIを使用すればカメラエフェクトとして利用することもできます。

 

OnRenderImage

UnityでMonoBehaviourを継承したクラスでは、すべてのレンダリングが RenderImageへの描き出しが完了したときにOnRenderImageがコールバックされます。
このコールバックはカメラにアタッチされているすべてのスクリプトに送られます。

void OnRenderImage(RenderTexture source, RenderTexture destination)

引数のsourceに入力となる画像、destinationに出力先の画像が渡されてきます。
このsource画像をもとにエフェクト加工した画像をGraphics.Blitというメソッドを使ってdestinationに描画して、それが上位へ返却されることでエフェクト加工された映像となります。

public static void Blit(Texture source, RenderTexture dest, Material mat)

 

つまり、この関数内でsource画像をTexture AdjustmentsのAPIを使って加工すればカメラの映像にエフェクトを付与することが出来るというわけです。

 

実装してみよう

例えば下の画像に対して、"ぼかし"のエフェクトを加えたい場合

f:id:Karvan:20211130194818p:plain

Texture AdjustmentsのAdjust_BlurGaussianクラスをOnRenderImageで使用します。

f:id:Karvan:20211130195029p:plain

上のコードのように引数のsourceに対してAdjust_BlurGaussianクラスのApply関数で加工、加工後の映像(adjustTexture)をGraphics.Blitに渡しします。すると・・・

 

f:id:Karvan:20211130195052p:plain

こんな感じ、簡単にカメラエフェクトを実装することができます。

同様にして、

f:id:Karvan:20211130195258p:plain

白黒エフェクト

 

f:id:Karvan:20211130195513p:plain

ノイズエフェクト
等々のエフェクトを付与することができます。
また、これらのエフェクトについて

f:id:Karvan:20211130195604p:plain

上記のコードのように各エフェクト効果のクラスを生成して、Texture AdjustmentsのRenderAllメソッドに引き渡せば、一度に複数のエフェクトを付与することもできます。

f:id:Karvan:20211130195631p:plain

ぼかし+白黒+ノイズのエフェクト
ちなみに各エフェクトのパラメータはInspector上で変更することができます。

f:id:Karvan:20211130195746p:plain

 

【アセット紹介】動的にテクスチャを編集できるTexture Adjustments

f:id:Karvan:20211116205500p:plain

妥協

今秋から毎週放送されている鬼滅の刃はとりあえず猗窩座が登場してから見ればいいや、と思っている皆さんこんにちは。気が付けば放送時間が過ぎている、来週こそは見ようと誓ってもYoutubeみたりゲーム制作やらでつい時間を忘れて結局見逃してしまうので、もう最後の決闘シーンだけ見れたらいいや、と自分に妥協しています。Netflixとかに入ってまで見返す気はないし。

 

独身の日セール

毎年11/11は中国で「独身の日」だそうで、それにちなんでUnityアセットストアでは「独身の日セール」と題して大型セールが開催されていました。
有名どころを含む数多くのアセットが50%~70%オフで出品されており、ほぼ投げ売りに近い状態、中国さん有難う、日本人は中国の歴史も文化も料理も大好きです、ただ、共産党が嫌いなだけです。

というわけで、今年は以下のアセットを購入しました。

assetstore.unity.com

assetstore.unity.com

「Flat Kit」は以前から欲しかったシェーダーのアセットで色々なトゥーンレンダリングとポストエフェクトを実装する事ができます。このアセットについては後日記事にする予定です。
「Texture Adjustments」は全然知らなかったのですが、セール品を漁っていたら偶々発見して面白そうだったので購入しました。今回はこのアセットのご紹介

 

Texture Adjustments

一言で表すと「エディタ上でテクスチャ編集が行えるアセット」がこのアセットになります。
これまで3Dモデルに適用するテクスチャは、GIMPなどの外部ソフト使って色相やら輝度やら彩度やらを変更していましたが、このアセットを使うとエディタ上で同じような編集を行うことができます。

導入法はまず、window>VacuumShaders>Texture Adjustments から

f:id:Karvan:20211116210026p:plain

編集ウィンドウを開きます。

f:id:Karvan:20211116210046p:plain

編集対象となるテクスチャとそれを参照しているマテリアルを選択

f:id:Karvan:20211116210135p:plain


Addボタンを押して編集させたい項目を選びます。
今回は色相(Hue)を変更したいので「Hue/Saturation/Lightness」を選択

f:id:Karvan:20211116210301p:plain

Hueの値を変更してテクスチャの色相を変更したら、下のSave Textureボタンを押すと新しいテクスチャとして出力することができます。

f:id:Karvan:20211116210317p:plain

 

試しに下の3Dモデルについて、

f:id:Karvan:20211116210344p:plain

Texture Adjustmentsを使ってHueを変更したテクスチャを左のモデルにのみ適用すると

f:id:Karvan:20211116210402p:plain

こんな感じ、色違いのモンスターなどはこのアセットを利用すると直ぐに作ることが出来ます。

 

動的に変える

まぁ、これだけなら面倒でもGIMP等を使うことで代用可能ですが、このアセットでは上のテクスチャ編集の処理がAPI化されているため、スクリプトから動的にテクスチャの編集を行う事ができます。

最初に色相(Hue)の変更を行うクラス(Adjust_HueSaturateLightness)を作成し、編集後のテクスチャ(adjustedTexture)を定義しておきます。

f:id:Karvan:20211116210725p:plain

Start関数でモンスターのMeshRendererからマテリアルを取得、マテリアルが参照しているテクスチャを取得します。

f:id:Karvan:20211116210741p:plain

 

Update関数で色相(Hue)の変更を反映します。

f:id:Karvan:20211116210754p:plain

 

色相(Hue)はInspector上にAdjust_HueSaturateLightnessクラスのメンバ変数が表示されるので、このHueの値を変更すると動的に変更が可能となります。

f:id:Karvan:20211116210811p:plain

 

試しにDotweenを使ってHue値を変えてみます。右のモンスターの色相が徐々に変化していることがわかると思います。

f:id:Karvan:20211116210931g:plain

 

このアセットはテクスチャの編集以外にもカメラエフェクトにも使用できるのですが、それはまた後日の記事で紹介します。

 

【お試し企画】Isometricな2Dの世界で3Dモデルを動かしたい

f:id:Karvan:20211109201647p:plain

貧乏性

年のせいなのか普段の食生活のせいなのか国産の高級牛肉を食べると何故かお腹が痛くなる可哀想な皆さんこんにちは。高級肉の油に胃が馴染まないのか根が貧乏なのか、値段の高い食事をした数時間後には決まってお腹が痛くなります。もしかすると無意識のうちに懐具合を心配して胃が痛んでいるのかもしれない。庶民育ちは大変ですね。

 

集英社GameBBQ

集英社が主催するゲームクリエイターズCAMPのゲーム企画コンテスト「GameBBQ」
先日発表があり私の応募した企画は無事に一次審査を通過することができました。ありがとうございます。
「〇〇日に一次審査通過者を発表します」的なアナウンスなく、急にメールが届いたのでちょっとビックリしましたが吉報で良かったです。とりあえず30分ぐらいメールを読み返してはニヤニヤしていました、まぁ、審査は次もあるので油断禁物なんですが。

 

Isometric2.5D

先日までUnityのアセットストアにてホラー系アセットのセールが行われていたので、その中で気になったアセットを購入しました。

assetstore.unity.com

クォータービュー視点で描かれた2D背景アセットで手書き風のきれいな田舎町を舞台としたゲームが作れそう。
とはいえ、これまで3Dモデルを使ったゲームしか作ってこなかったので2Dキャラクターのアセットなど持っていないし、ストアで販売されている素材も少ないので、使い道をどうするかちょっと悩んだ結果、このクォータービュー視点で描かれた2D(Isometric)背景の上に3Dモデルを重ねる、という手法を試してみることにしました。

Isometricなタイルを並べて地面やオブジェクト(木や家、障害物等)を表現して、そこに3Dオブジェクトを映した映像を重ねれる事が出来ればこまで持っている3Dモデルの資産をゲームとして利用できそう。
3Dモデルの映像はRenderTextureを使用して平面オブジェクトに表示して、これに以前このブログで紹介したクロマキーシェーダーを利用すれば、3Dモデルだけを抜き出した映像を表示することができます。

f:id:Karvan:20211109202055p:plain

この背景に

 

f:id:Karvan:20211109202122p:plain

この映像を重ねます。

 

実際に動かしてみると・・・

f:id:Karvan:20211109202213g:plain

ん?・・・

f:id:Karvan:20211109202435p:plain

単純に重ねるだけだと背景のオブジェクトと3Dモデルのキャラクターの前後関係に齟齬が出るようです。

 

対応策

やはり2Dでも奥行方向(Z方向)の関係性を保つにはある程度それを意識して配置する必要があるようです。
なのでそれに合わせて3Dモデルを映した映像もZ方向の順序性に沿うように映像を映す平面を分割して配置することにしました。

 

f:id:Karvan:20211109202609p:plain

こんな感じ、映像(を映す平面)を細かく均等に分割して、画面下に表示させる映像ほど手前に、画面上に行くにしたがって奥の方に配置します。

 

これでどうだ!

f:id:Karvan:20211109202738g:plain

おお、なんかいい感じ

 

 

ん?・・・

f:id:Karvan:20211109203100p:plain

ちょっと分かりづらいですが、キャラクターが壁にのめりこんでいます。未だ未だ工夫が必要なようです。

【雑記】ゲーム企画コンテストに応募するまでの激闘を振り返る

f:id:Karvan:20211102200139p:plain

正直者のレビュー

出っ張りカメラが話題のPixel6でケースをつければ出っ張りも消えるだろうと思っていたら、ケースをつけても出っ張ったままでビックリな皆さんこんにちは。動作はサクサクで軽いのですが物理的な重さが結構あります。また、携帯を持つ手がどうしても凸部カメラの箇所を触ってしまうのでレンズが直ぐに汚れそう。

 

あと、キャリアにはDocomo回線を使ったMVNOを使っているのですがSIMカードを挿しただけではネットワークにつながらず、APN設定してやっと使えるようになりました。面倒くさかった。

 

疲れた

10月末が講談社のゲーム企画コンテスト(ゲームクリエイターズラボ)の締め切りで、集英社の同様の企画(GAME BBQ)も一足先に9月末締め切りだったので、これでひとまずゲーム企画のコンテストラッシュも終了です。

game-creators.camp

creatorslab.kodansha.co.jp

 

どちらも無事に企画書とデモ版のプレイ動画を添えて投稿することができたのですが、思えば7月から約4か月、自作ゲームの製作もunity1weekへの参加もすべて停止して、この2つのコンテストに応募する為の企画書(とデモ版)の作成に力を注いでいたので、それが終わった現在は魂が抜けたよう状態となっています。

 

本来なら停止していた自作ゲームの製作を再開するべきなのですが、燃え尽き症候群とでも言うべきなのかモチベーションがまったく上がらずUnityを起動すらしていません。
なので、これといった進捗もないので今回はこれまでの4か月間を振り返ってみたいと思います。

 

構想と試作の初夏(7月)

講談社に続いて集英社でもインディゲームの企画コンテストが開かれる事を知り、俄然やる気を出した夏の初め。去年から作成中の脱出ゲームの進捗があまり芳しくないにも関わらずそれを中止して応募用のゲーム企画の構想を練り始める。

取り合えず、おそらく関係ないけれど各社のイメージから企画するゲームのジャンルを決める。

  • 集英社:シューティングやアクション系のゲーム
  • 講談社:インディゲームらしい斬新さ重視のゲーム

講談社は1期生の合格メンバーを見るに企画の規模や派手さよりも斬新さを重視している気がしたので、地味なゲームながらもunity1weekで色んな方々に褒めて頂いた「Supra animus quo」をベースに企画を立てることにする。

unityroom.com

一方、集英社の方は「GAME BBQ」以外で「集英社支援タイトル」となっているゲームタイトルを見るにゲーム画面やキャラクターデザイン等のレベルが高く、ゲーム紹介を読んでも良い意味でインディゲームらしくないものが多い印象。

ある程度おさまりの良いグラフィックや斬新過ぎないゲーム性を用意しないと箸にも棒にも引っ掛からないと思われるので、既存の某インディゲームを参考にしながら企画を練ること決めた。あくまで参考にするだけでパクリじゃないから大丈夫。

この為、集英社側の企画は実装方法の検討も含めて一から積み上げないといけなくなる。その時の試作版がコレ

f:id:Karvan:20211102200900g:plain

 

レベルデザインに苦しむ猛暑(8月)

ベースが決まっていて、且つ、締め切りが後ろの講談社向けの企画は一旦置いておいて集英社向け企画のデモ版作成に力を入れる。
前月(7月)に技術的な検証用の試作版を2,3作っていたので、それを一つに纏め上げれば良い、と高を括っていたが、ゲームの舞台造りに苦しむ羽目になった。

「砂漠の中の遺跡」を舞台にしようと考えていたが、ただ茶色の真っ平な平面にアセットストアで購入した遺跡のモデルを置いたところで全然ワクワクしないし、何より一つのアセットだけではデモ版とは言えゲームのステージとして全然もの足らない。
ステージ構成(デザイン)がちっとも頭に浮かんでこなくて自分のデザイン能力の無さに絶望を覚える。レベルデザインってやっぱり職人芸だと思う。

f:id:Karvan:20211102201346p:plain

もう、こんな感じですよ

 

締め切りという名の恐怖(9月)

たかがデモ版の1ステージを作るだけなのにレベルデザインに苦しんで気が付けば9月。締め切りがどんどん迫ってくる。
集英社向け企画が終われば講談社向けの企画を作らないといけないので、9月の中旬には集英社向けの企画書を書き上げないといけない。
この為、本当は「実際にプレイできる」デモ版を作る予定だったが、間に合いそうにないので「本当にデモだけの」デモ版を作ることにする。

平日は会社から帰宅すると2時ぐらいまで、休日はほぼ一日中デモ版の制作に充てるが、それでも終わりが見えず頭を抱えていた。
ブログの記事を書くのさえ停止しようかと思ったほど。

f:id:Karvan:20211102201514p:plain

こんな心境

しかし9月は幸運にもシルバーウィークがあったので、その期間を利用して全集中の呼吸で集英社向けの企画書を完成させる事ができました。
連休がなければ締め切りに間に合ってなかったかもしれなません。

 

締め切りという名の恐怖(2度目)(10月)

集英社向けの企画に応募完了したのも束の間、すぐさま講談社向けの企画に取り掛かる。
当初は「企画のベースがあるから大丈夫」「パズルゲームとジャンルは決まっているから大丈夫」とか思っていたが、集英社向けの企画作成に思った以上の時間が割かれてしまい全然余裕のない状態。
プロモーション動画に乗せるためのパズルとムービーシーンを幾つか作らないといけないのに間に合いそうにない。

「1週間に一つ以上のパズルとムービー」の作成を目標に深夜作業の日々、こちらもブログの更新を停止しようかと思ったほど切羽詰まった状況でした。

f:id:Karvan:20211102201708p:plain

何度こう思ったことか

 

そんなこんなで苦戦しながらも、締め切り前日に全てのパズルとムービーを作り終わって企画書としてまとめることができました。ありがとうございます。

f:id:Karvan:20211102202044p:plain

投稿し終わった後の心境

 

振り返って

取り合えずどちらの企画にも応募完了することができてホッと胸を撫でおろしています。
結果がどうなるかはわかりませんが、現状の私でできうる最大限の努力はしたつもりです。

ただ惜しむらくは、集英社向けの企画も講談社向けの企画もジャンルは違っても金銭的な支援がないと完成できそうにないゲームなので、大賞を逃してしまうとゲーム企画そのものが立ち消えになってしますことです。
どちらも苦労して企画書という形にして思い入れもあるだけに出来れば日の目を見てほしいのですが、こればかりは天に祈るのみです。

 

f:id:Karvan:20211102202314p:plain

こうなることを願って・・・

【Unity】タイムラインに設定したイベントをスクリプトでキャッチする

f:id:Karvan:20211026195345p:plain

予約購入

総選挙よりも予約購入したPixel6が楽しみな皆さんこんにちは。選挙期間中ということもあって案の定Twitterのトレンドは政治豚の下品なハッシュタグで汚染されていてウンザリですが、新しいスマホが届き次第ウキウキで写真を投稿してマウントを取りたいと思います。

 

タイムライン

ゲームを制作する途中で発生する数々の悩み事の一つに「ムービーシーンを制御するスクリプトが複雑になりがち」という悩みがあって、例えば以前Unity1Weekで投稿した「The two met」という作品などはゲーム本体よりもムービーシーンの制作の方に時間を取られて、それを制御するスクリプトは見事なぐらいのスパゲッティソース、見返すと無駄に長くて自分の技術力のなさにウンザリします。

unityroom.com

Unityではそういった悩みを改善するために「タイムライン」という機能を有しており、ゲーム内の演出必要な「オブジェクトの表示/非表示」「サウンドの再生/停止」「アニメーションクリップの再生」「カメラの切り替え」等々の処理を任意のタイミングで行えるようにエディタ上で設定→再生で確認を行うことができるのですが、オブジェクトのTween等の処理には対応していないため個人的にはイマイチ痒い所に手が届かない機能でした。

 

しかしながら、調べてみると「Signal Receiver」というコンポーネントを使用すればタイムライン上に設定したイベントをスクリプト側でキャッチできるらしい。
イベントさえキャッチできれば、後はスクリプト内でオブジェクトのTween等の処理を行えばよいので随分と使い勝手が良くなります。スパゲッティソースを作る羽目にならずにすみそうです。

 

手順

最初にプロジェクト内の好き場所に「Signal」というリソースを作成します。
プロジェクトウィンドウ内で右クリック→CreateからSignalを選択します。

f:id:Karvan:20211026195842p:plain

 

次にイベントをキャッチしたいオブジェクト側に「Signal Receiver」コンポーネントを追加します。
「Signal Receiver」はSignalの項目で設定したSignalリソースからイベント発行を受け取り、Reactionの項目に設定したスクリプトの関数へイベントを受け渡します。

f:id:Karvan:20211026200225p:plain

Signalの項目で最初に作ったSignalリソースを選択し、Reactionの+ボタンを押下、このシグナルによって実行したいスクリプトの関数を選択します。

 

次にタイムラインでAddボタンを押し、「Add Signal Track」を選択してシグナルイベントを発行するトラックを作成、GameObjectには「Signal Receiver」コンポーネントを追加したオブジェクトを指定します。

f:id:Karvan:20211026200600p:plain

 

最後にSignalリソースをタイムラインのシグナルトラックへドロップして発生させたいタイミングに設定します。

f:id:Karvan:20211026200621p:plain

 

試してみる

今回はSignalリソースを二つ作成し、一つは「キャラクター(猫)の移動Tween開始」のタイミング用に使用し、もう一つは「オブジェクトのサイズ変更Tweenの開始」のタイミング用に使用しました。

f:id:Karvan:20211026201008p:plain



それぞれのシグナルで以下のスクリプトが呼ばれます。

f:id:Karvan:20211026201022p:plain

 

今まではこれを一つのコルーチン内で行っていたので、随分とソースコードが簡略化されたと思います。
実行結果はこんな感じ

f:id:Karvan:20211026201106g:plain

 

【Unity】クロマキーシャーダとRenderTextureで何か作る

f:id:Karvan:20211019201050p:plain

急に秋

ついこの間まで半袖で過ごしていたのに急激な気温低下で慌てて冬物の衣服を取り出した皆さんこんにちは。天気予報で「だんだんと秋の気配が濃くなって・・・」みたいなセリフを聞くことなく急に晩秋の気候に様変わりして、近年は春と秋の期間がどんどん短くなっているような気がします。まぁ、寒かろうが暑かろうが休日ニートな人間にはあまり関係ないのですがね。

 

RenderTexture

前回の記事でもRenderTextureを使ったギミックを作ったように、ここ最近はゲーム制作ではRenderTextureを利用する事が多いのですが、通常、カメラの映像をRenderTextureに映す場合に「オブジェクトだけを映して背景は透過させたい」といった用途で使うことはできません。

 

f:id:Karvan:20211019201514p:plain

カメラ側のClearFlags指定を「Depth Only」としても

 

f:id:Karvan:20211019201602p:plain

RenderTextureで映した画像は背景が黒塗りで表示されます。

 

なので、前回のギミックのようにRenderTextureの映像とメインカメラの映像の境目を分からなくさせたい場合にはメインカメラの映像の映像と同じ背景を用意する必要がありました。

 

クロマキーシャーダ

Unity関連で大手ブログの「凹みTips」さんがクロマキー機能を持ったシャーダを公開しています。

tips.hecomi.com

これは「クロマキーシャーダ」という名前の通りTexture内の任意の色相・彩度・明度の範囲を透過させて表示するシェーダです。
ということは、背景を一色で塗潰したカメラ映像をRenderTextureに映して、RenderTextureを使うMaterialにこのシェーダを指定すれば「オブジェクトだけを映して背景が透過した」RenderTextureの画像が作れることになります。「凹みTips」さん有難うございます。

 

f:id:Karvan:20211019202005p:plain

カメラ側の指定を「Solid Color」にして青色(0x0000FF)を指定

 

f:id:Karvan:20211019202021p:plain

映像を映すQuadのMaterialのシェーダに「ChromaKey/Standard/Transparent」を指定し、Textureに上のカメラ映像を映したRenderTextureを指定、最後に透過させるColorに青色(0x0000FF)を設定します。

 

f:id:Karvan:20211019202258p:plain

これでオブジェクトだけが映る映像が作れました。パチパチ

 

何か作る

背景が透過しているのでメインカメラ側のオブジェクトの上に置いても違和感なく合成することができます。

f:id:Karvan:20211019202503g:plain

 

この状態でRenderTexture側のカメラに何かしらエフェクトを掛けると面白い映像になります。

f:id:Karvan:20211019202531g:plain

 

試しに動く映像で重ねて見ても特に違和感はないです。

下の動画はどれがRenderTextureの映像なのか分かりやすいよう、Cube内だけ表示するようにマスキングしています。

f:id:Karvan:20211019202647g:plain

 

◇プライバシーポリシー

●個人情報の利用目的

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

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

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

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

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

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

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

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

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

●免責事項

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

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

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

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

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

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