20200328のUnityに関する記事は4件です。

VFX Graph ホログラム

覚えるためのメモです。
demoを見て学んだことを忘れないように書くだけなのでほんとにメモです。

https://media.giphy.com/media/Q7FbEVMiRW935UqrTn/giphy.gif

 カメラからレンダーテクスチャを出力する

まず最初にホログラムを移すためレンダーテクスチャを アセット > 作成 > レンダーテクスチャ から作成し任意に名前を付けます。
そして次に カメラを作成します。 そして出力に先ほど作成したレンダーテクスチャを割り当てます。
image.png

あとはそのカメラでホログラムにしたいものを移してあげればいいです。特定のものだけ移したりしたい場合はレイヤーを作ってカメラのカリングマスクで指定してあげればいいと思います。
試していないのですがここでシネマシーンを使ってみたら面白そう。

 VFX 中身

image.png

ほぼなんもいじってないのですごくシンプル。
ただカメラのレンダーテクスチャを受け取ってpositionにしているだけであとはちょっと設定を変えただけです。
個々の設定は自身の作りたいものに合わせて変えていく。

VFX Binder

ここで先ほど作ったカメラのプロパティに実際のカメラをバインドしていきます。
まずゲームオブジェクトにスクリプトを追加します。
image.png

追加するときに見つけにくかったので 検索で VFX と調べるとすぐ出てきて楽だった。

あとはリストの+を押して HDRP > HDRPカメラを追加します。
その後追加したものをクリックすると詳細が開くのでそこでカメラを指定してあげます。

そしたら完成です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Unity】3Dミュージックビデオ「clapclap」制作に使用したアセットまとめ

こんにちはっ?八ツ橋まろんです

バーチャルYouTuberとして活動し、ミュージックビデオ(MV)の制作をしています。

先日、バーチャルYouTuberの六葉ミカさんのオリジナル楽曲clapclapのMV制作を担当しました。

このMVは動画編集ソフトによるエフェクト追加をせず、全てUnity上で制作しています。
本記事では、このMV制作に使用したUnityアセットやオリジナルのスクリプトを紹介します。

ビジュアル関連

unity-audio-spectrum

anim02329.gif
音源のスペクトルを表示するスクリプト。これがあるだけで音楽感が増してMVに動きがつく。とっても便利。

MVでは円形に配置して背景オブジェクトとして使用した。

MaronMotionGraphicsShader

anim02331.gif
anim02330.gif
anim02332.gif

自作の図形描画&アニメーションシェーダー。〇や△☐、☆や♡を描画したり、図形間を行き来したり、回転やuvスクロールしたりできるので汎用性が高い。Animatorコンポーネントと併用してモーショングラフィックスができるように作った。非常に多彩な表現ができるので便利。

MVでは背景やパーティクルなど、あらゆるところに登場する。

MaronOutlineShader

無題.png
自作のアウトラインシェーダー。RenderTextureを使う方法により太いアウトラインでも破綻しない。且つ、オブジェクトのシェーダーは一切改造しなくていいのでとても便利。

MVでは間奏部分の2D演出で活躍した。アウトラインと言ってはいるが、実は上の画像の灰色の影もこれで作っている。技術解説のQiitaの記事はこちら

PostProcesing Stack V2

vthf.png

Package Managerからインストールするアセット。これがある場合とない場合の見た目の違いは、上の画像を見てもらえれば一目瞭然。『盛る』って大事だね。

MVでは特にVignetteとDepth of FieldとColorGradingを使用した。

モーション関連

VR Motion Recorder

無題1.png
HTC Vive と Viveトラッカー3個使って、VR空間でのフルトラッキングのモーション収録環境が構築できるunitypackage。別途Final IKの購入が必要なので注意。トラッカーなしでも動く(その代わり脚は自動のIK)。説明書はVive用だが、Oculus Riftでも動く。動いたモーションをそのままUnityのアニメーションファイルとして書き出すことができ、必要であればそのままキーフレームの削減もしてくれる。

MVではダンスのモーションを全てこれで収録し、次のU Motion Proでモーション修正を行った。

U Motion Pro

無題2.png
モーション修正に使える強力なアセット。日本語の解説記事は少ないが、使いこなせればワンランク以上高いクオリティに手が届く。主要な使い方は公式のビデオを参考にすると良い。

MVではダンスモーションの修正と、固定ポーズの作成を行った。

カメラワーク関連

Cinemachine

Package Managerからインストールするアセット。CinemachineのVirtual Cameraを大量に作成してTimeline上に並べて重ねることで、カメラワークを作成できる。

MVのカメラワークの大半はCinemachineのVirtual CameraをTimelineで混ぜ合わせて作成した。
無題re2.png

サビの一部に使用した素早い動きのカメラワークは、Animatorを付与したVirtual CameraをTimelineで直接キーフレームアニメーションさせて作成した。
無題red2.png

PostProcessController

PostProcessing Stack V2のパラメータをTimelineで操作したいために作成した自作スクリプト。カメラを動かしながら被写界深度の距離を変えたいときに重宝した。(実はPostProcessing Stack V2のパラメータはTimeline上で直接変更できないのでこのスクリプトが必要だった。技術記事はこちら)

以上、アセット紹介でした?

MVたくさん見てくれると嬉しいです✨
いつか実際の作成手順やテンプレートなんかを作って解説記事を作りたいなと思っています。それではまたね?

八ツ橋まろん

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unity で Visual Studio を使った快適なコーディングをするための環境設定

そのままでは痒いところに手が届かないことが多いので、いろいろカスタマイズして快適にしていきます。

環境

  • Unity 2018.4.19f1
  • Visual Studio Community 2019

コード分析規則

Linter文化に慣れた結果ゲーム開発でも規則が欲しくなってしまいました。チーム開発では必須だと思っています。
デフォルトだとエディタからの提案がお節介だったり、警告してほしいところで消極的だったりするので、自分好みに設定していきましょう。

規則セットの追加

プロジェクト用の規則セットファイルを作成して、Assembly-CSharp と Assembly-CSharp-Editor 設定します。
規則セットをカスタマイズする

不要なusingを警告してくれるようになりました。
qi_uvconf_1.PNG

.csproj に設定を自動追記

このままではUnityは自動で.csprojファイルを書き換えてしまうので、規則セットファイルを読み込む設定が上書きされないように下記のようなエディタ拡張スクリプトを配置します。
規則セットファイル名は{プロジェクト名}.rulesetを前提にしています。

CsprojFixer.cs
using System;
using System.IO;
using UnityEditor;

public class CsprojFixer : AssetPostprocessor
{
    public static string OnGeneratedCSProject(string _, string content)
    {
        // プロジェクト名の抽出
        string currDirPath = Directory.GetCurrentDirectory();
        string[] pathArray = currDirPath.Split(Path.DirectorySeparatorChar);
        string projectName = pathArray[pathArray.Length - 1];

        // .csprojの内容を置換
        string old = "</AllowUnsafeBlocks>";
        string addition = $"<CodeAnalysisRuleSet>{projectName}.ruleset</CodeAnalysisRuleSet>";
        return content.Replace(old, $"{old}{Environment.NewLine}    {addition}");
    }
}

StyleCop.Analyzers

もっと規則にこだわりたければNuGetパッケージの StyleCop.Analyzers を導入します。
NuGetパッケージを導入する場合も、エディタ拡張で.csprojにNuGetパッケージ設定を加える処理を追加する必要があります。

拡張機能

いくつか普段使っている拡張機能も紹介します。

CodeMaid

スペースを入れてくれたり空行を削除してくれたりする便利なフォーマッタです。
申し分ないくらいのオプション設定をすることができて、保存時の自動整形もできます。(うれしい)

普段 VSCode を使っているとこれがないとしんどいです。

Enhanced Syntax Highlighting

シンタックスハイライトでカスタマイズできる種類を少し増やしてくれます。
宣言時だけ色を変えるとかはできないのですが、もともとの設定項目が少ないので少しでもマシになればと思います。

qi_uvconf_2.png

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

最新バージョンのUnityでStandard Assetsを入れてエラーが起きたときの対処法

Unityを使い始めた人の中には、Standard Assetsをインポートした人も多いと思います。

僕もUnityで最初にゲームを作ったときには、Standard Assetsのアセットを使って3Dゲームを作りました。

ただ、Standard Assetsをインポートしてそのまま使おうとしても、最新バージョンのUnityではエラーが発生します。

このままではコンソールにエラーを残したまま、ゲームのデモプレイはできず戸惑ってしまいます。

今回のエラーが出てしまう原因は、Standard Assetsで採用されているUI TextとUI Textureが、最新のUnityでは対応していないということです。

問題の解決手順は以下の通りです。

下部にある「Project」ウィンドウで、「Assets」→「Standard Assets」→「Utility」のフォルダを開きます。

次に、「Utility」フォルダ内の、「ForcedReset.cs」と「SimpleActivatorMenu.cs」を削除してください。

コンソールにエラーが残っているとデモができないので、エラーが残っている場合は左上の「Clear」をクリックしてください。

以上の手順でStandard Assetsのインポートに伴うエラーは解決できると思います。

参考になれば幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む