Search Unity

Unityをはじめるアーティストにおすすめの機能ガイド

  • アーティスト向け

<このページで学べる内容>

この記事では、これから Unity を使い始めようと思っているアーティストの方に向けて、Unity のアーティスト向け機能の概要や公式マニュアルや解説動画へのリンクをご紹介します。

01.はじめに

この記事では、これから Unity を使い始めようと思っているアーティストの方に向けて、Unity のアーティスト向け機能の概要や公式マニュアルや解説動画へのリンクをご紹介します。

「こういう表現をしたいんだけど、Unity だとどういう機能を使えば良いの?」「この機能の使い方を詳しく説明しているドキュメントとか動画は無いの?」といったお悩みを解決するための一助になれば幸いです。

この記事からリンクされているマニュアルなどのバージョンについては、原則的に本稿執筆時点での最新 LTS である Unity 2020.3 や、同バージョンをサポートしているパッケージの最新版となっております。

なお、この記事では基本的な使い方やインストールの仕方などには触れておりません。使い方やインストール方法については、それぞれの章の末尾に「関連リンク」としてマニュアルやチュートリアル動画へのリンクを張っておりますので、そちらをご参照ください。

02.Rendering: SRP, HDRP, URP Rendering Pipeline の概要

Image: unity.com

Unity Editor を用いて構成したシーンに配置されたオブジェクトをスクリーンに描画するための工程群のことを Rendering Pipeline(レンダリングパイプライン)と呼びます。

Rendering Pipeline を通してオブジェクトを描画するためのプロセスには、大まかに次のような工程があります。

  • Culling(カリング): カメラに映らないオブジェクトのレンダリングを無効にする。
  • Rendering(レンダリング): オブジェクトを描画する。
  • Post-processing(ポストプロセッシング): スクリーンへの描画を行う前に、レンダリングされた要素にエフェクトを掛ける。

Built-in Render Pipeline と Scriptable Render Pipeline

現在、Unity が用意している Rendering Pipeline は次のように分類することができます。

  • Built-in Render Pipeline(組み込みレンダーパイプライン): 後述の SRP が搭載された Unity 2018.1 よりも前から搭載されていた Rendering Pipeline で、デベロッパーが独自に拡張することは想定されていない。SRP 系のプロジェクトテンプレートを選択しなかった場合のデフォルト Rendering Pipeline となる。
  • Scriptable Render Pipeline(スクリプダブルレンダーパイプライン): C# スクリプトによってデベロッパーが独自に拡張可能な Rendering Pipeline。SRP と略されることが多い。
  • Universal Render Pipeline(ユニバーサルレンダーパイプライン): Unity が SRP の仕組みを用いて作成した Rendering Pipeline で、モバイルからハイエンドまで幅広いプラットフォームでの動作をサポートしている。URP と略されることが多い。以前は LWRP(Light Weight Render Pipeline)と呼ばれていたこともあったが、Unity 2019.3 から名前が改められたという経緯がある。
  • High Definition Render Pipeline(HD レンダーパイプライン): Unity が SRP の仕組みを用いて作成した Rendering Pipeline で、AAA 品質のゲームや自動車・建築などの現実世界に対する忠実度の高さが要求されるプロダクトでの利用を想定されている。HDRP と略されることが多い。

一度選択した Render Pipeline を後ほど変更することも可能ではありますが、それなりに大変な作業を要することが多いため、ゲームの要件やターゲットプラットフォームに応じてプロジェクトセットアップ時に適切な Render Pipeline を選択するとよいでしょう。

関連リンク

03.VFX Graph

VFX Graph とは

Image: blog.unity.com

VFX Graph は Unity 2019.3 から利用可能になった、ノードベースの UI を用いて Visual Effect を制作するための機能で、Visual Effect Graph を略して VFX Graph と呼ばれています。

ノードベースで構成するということ以外に、VFX Graph 登場以前から存在していた ParticleSystem (Shuriken) が CPU 上でシミュレーションを行うのに対して、VFX Graph は GPU 上でシミュレーションを行うという点も特徴として挙げられます。

VFX Graph は SRP 環境での動作を前提としており、HDRP であれば全ての機能を利用することができ、URP の場合であっても多少の機能制限はあるものの大半の機能は利用可能です。

また、コンピュートシェーダが動作するデバイスのみをサポートしているという点にも注意が必要です。古いモバイル端末などはサポートしていないことがありますので、公式マニュアルの記載を確認しておきましょう。

VFX Graph の仕組み

VFX Graph によって作成される Visual Effect Asset は、次の4要素によって成り立っています。

  • Spawn: どのようなルールで粒子を生成するのか?
  • Initialize: どのようなルールで粒子を初期化するのか?
  • Update: どのようなルールで粒子を動かすのか?
  • Output: どのようなルールで粒子を描画するのか?

これらの Context と呼ばれる各要素の Block が持つ Property に対してノードエディタを用いて繋いだ Operator から供給される値を接続することで、柔軟なエフェクトを構成することができます。

この4つの要素が設定された Visual Effect Asset を Visual Effect コンポーネントに設定することで、ゲーム画面にエフェクトが描画されます。

関連リンク

04.ProBuilder

ProBuilder とは

Image: unity3d.com

ProBuilder は Unity Editor 上で 3D モデリングとレベルデザインを行うためのツールで、Unity 2018.1 以降のバージョンで利用することが可能になっています。

元々は有償のアセット(機能制限のある無償版もありました)として Asset Store で公開されていたものを、Unity 社が買収して本体機能として無償提供されるようになった、という歴史があります。

また、関連ツールとして ProGridsPolybrush も提供されており、これらのツールを用いることで Unity Editor 上で一通りのモデリング・レベルデザインが行えるようになっています。

もちろん、Maya や 3ds Max や Blender などのモデリングツールを用いて制作されたモデルを取り込んでゲームに用いることもできますので、モデリング関係のワークフローを Unity 上で完結させる際の選択肢として ProBuilder は有用と言えます。

ProBuilder の基本機能

インストール後に、メニューに追加される Tools > ProBuilder > ProBuilder Window から開く専用ウィンドウから、以下の機能を利用できるようになります。

メッシュの作成

よく使う形状のメッシュは、New Shape ボタンを押下し表示される Shape Tool ウィンドウより次の13種類の事前定義された形状のパラメータを設定することで作成できます。

  • Cube: 直方体
  • Sprite: 板ポリ
  • Prism: 三角柱
  • Stair: 階段
  • Cylinder: 多角柱(円柱)
  • Door: ドア(の周囲)
  • Plane: 平面
  • Pipe: 穴空き多角柱(円柱)
  • Cone: 多角錐(円錐)
  • Arch: アーチ
  • Sphere: 多面体(球)
  • Torus: トーラス(円環面)
  • Custom: 頂点情報を指定

また、独自の形状の Shape を作ることも可能で、New Poly Shape ボタンを押下し Scene View 上に頂点を打ってメッシュを作成することもできます。

メッシュの編集

作成されたメッシュを編集する際には、Vertex(頂点)・Edge(辺)・Face(面)の移動・回転・拡縮の他に面押し出し・差し込み・面削除なども行えます。

選択しているモードに応じて Shape Tool ウィンドウの内容が変化するので、状況に応じた編集が行いやすくなっています。

メッシュスムージング

1つのメッシュにつき最大23個のスムージンググループを作成することで、任意の辺を滑らかな見た目に変更できます。

Bebel EdgeSubdivide Face を組み合わせるコトで更に滑らかな表現も可能になります。

頂点カラーリング

メッシュ・頂点・辺・面の選択状態に応じた頂点カラーリングを行うことができます。

注意点としては、利用する Shader が頂点カラーリングをサポートしている必要があります。デフォルトの ProBuilder Shader を用いたり、Shader Graph を用いている場合は Vertex Color ノードを接続しておきましょう。

Material 編集

Material Editor を用いると、作成・編集したメッシュの各面に割り当てる Material を容易に設定することができます。

Material Editor に Material を事前登録しておくことで、選択した面に対してキーボードショートカットから Material を割り当てられるようになります。

また、Material Pallete として Material の登録を保存しておくこともできるので、高速なモデリングの一助となります。

UV 制御

ProBuilder にはメッシュの Texture UV を編集する機能も備わっています。

UV Editor を用いれば、面ごとに Texture を移動・回転・拡縮させることができるので、メッシュにとって最適な UV を割り当てられます。

また、Auto UV モードも備わっており、設定に応じて自動配置したり、Texture Group を設定することで複数の面に対して連続したタイリングを行うことなどもできます。

関連リンク

05.FBX Exporter

Image: docs.unity3d.com

FBX Exporter とは

FBX Exporter は Unity 上で編集したジオメトリ・Light・Camera・Animation などの情報を、Maya® や 3ds Max® などの Autodesk® 製品や Blender などの DCC アプリケーションで読み込み可能な 3D モデルフォーマットである FBX ファイルとして出力するための機能です。

Unity 2018.3 以降で利用可能となっており、Autodesk® Maya®・Maya LT™ 2017 以降、Autodesk® 3ds Max® 2017 以降のバージョンで読み込み可能なフォーマットとして出力されます。

FBX Exporter と前述の ProBuilder と組み合わせることで、3D モデリングに関わるワークフローを最適化することができます。

FBX Exporter の基本機能

DCC アプリケーションとの連携

Autodesk® Maya® や Autodesk® 3ds Max® といった DCC アプリケーション向けの Integration をインストールすることで、Unity 側で出力した FBX ファイルを DCC アプリケーション側にインポートしたり、DCC アプリケーション側で作成した 3D モデルを Unity にエクスポートすることができるようになります。

本稿執筆時点でサポートしている連携アプリケーションは Autodesk® Maya®, Autodesk® Maya LT™, Autodesk® 3ds Max® の3種類です。

FBX Recorder

Unity Recorder と組み合わせることで、後述する Cinemachine のカメラを含んだアニメーションを FBX ファイルに出力することも可能です。

Unity Recorder と FBX Exporter がインストールされていれば、Window > General > Recorder > Recorder Window から表示できる Unity Recorder の画面で Add Recorder の一覧に FBX が追加され選択出来るようになっているので、必要な設定を施して Start Recording することで FBX にアニメーションを記録できます。

関連リンク

06.ShaderGraph

Image: unity.com

Shader Graph とは

Shader Graph は、陰影処理を行うプログラムである Shader をノードベースのビジュアルエディタにより作成するための機能で、前述の SRP と併せて Unity 2018 から利用可能になりました。

これまでの Shader は Vertex Shader と Fragment Shader (頂点シェーダとフラグメントシェーダ)や Surface Shader(サーフェスシェーダ)として Cg/HLSL 言語で記述する必要がありましたが、Shader Graph の登場によりプレビューをリアルタイムに確認しながら視覚的に Shader を構築できるようになりました。

ShaderGraph は SRP 環境での動作を前提としており、URP パッケージや HDRP パッケージがインストールされていれば自動的に利用可能になります。

Shader Graph と他の機能との連携

VFX Graph

前述の VFX Graph の Output コンテキストとして Shader Graph を選択することができます。

VFX Graph が生成する個々の粒子に於けるピクセル出力を Shader Graph が担うことで、より柔軟な表現が実現可能になっています。

Post-processing

多少 C# コードを書く必要はありますが、URP や HDRP が標準で提供する Override では表現出来ないようなエフェクトを掛けたい場合などに、Shader Graph で作成した Shader を Post-processing に適用することも可能です。

UI (uGUI)

これまでの Shader と同様に、Shader Graph で作成した Shader も UI に適用することができます。

UI としての機能を利用しつつ、Shader Graph を用いてリッチな表現を実現する、といったことが可能になっています。

関連リンク

07.Cinemachine

Image: unity.com

Cinemachine とは

Cinemachine は、ダイナミックなカメラ操作を実現するための機能群を提供するパッケージです。

これまでは複雑なコードを書かないと実現できなかった「被写体を追跡するカメラ」や「一つ以上の被写体を注視し続けるカメラ」や「特定のルート上を移動するカメラ」などといった様々な機能を、Unity Editor 上でリアルタイムに確認しながらコードを書かずに実現可能になっています。

主な Cinemachine の機能

被写体を追跡する・注視する

Cinemachine の代表的な機能の一つが「被写体の追跡」です。

ただ単に追跡するだけであれば、オブジェクトに親子関係を持たせるだけで事足ります。

しかし、「特定の範囲まではカメラを固定し、キャラクターが画面端まで到達したらカメラを移動する」や「常にキャラクターの右斜め上から見下ろした視点で描画する」などといった少し複雑なカメラワークを必要とする場合には、Cinemachine の Virtual Camera に於ける Body プロパティAim プロパティの設定を行うことで、コードを書かずに目的のカメラワークを実現することができるのです。

Virtual Camera のブレンド

Cinemachine は Cinemachine Brain というコンポーネントが、1つ以上の Cinemachine Virtual Camera の設定内容に応じて、実際の Camera の挙動を計算する形で動作します。

Virtual Camera は複数設置することができ、Virtual Camera 間の位置や回転をアニメーションしながらブレンドすることも可能で、ブレンド時のアニメーションカーブや移動の仕方なども細かく設定することができます。

パスに沿ったカメラワーク

Cinemachine では、カメラの移動範囲をベジェ曲線などにより構成される経路上に制限することができます。

Dolly Path と呼ばれるこの機能を用いると、あたかもトラックフィールドの短距離走をカメラクルーが撮影しているかのような映像を表現することができるのです。

その他の機能

Cinemachine の Virtual Camera は後述の Timeline から操作することが可能です。Cinemachine を Timeline のシーケンスに組み入れることで、より直感的にリッチなカットシーンなどを組み上げることができるようになります。

また、新 Input System によるカメラ操作もサポートしています。

さらに、カメラの振動もサポートしており、例えば「キャラクターがダメージを負った時」や「画面内で何かが爆発した時」などにカメラを揺らすことで、臨場感のある演出を表現することができます。

関連リンク

08.Post-processing

Image: docs.unity3d.com

Post-processing とは

Post-processing とは、「描画の後処理」をするための機能で、描画の最終行程として特別なエフェクトすることでゲームや映像作品のクオリティを引き上げることができます。

用いている Render Pipeline に応じて推奨される Post-processing のライブラリは次のようになります。

なお、URP 環境であっても OpenGL ES 2.0 デバイスでは Post-processing の動作をサポートしていないため注意を要します。

Post-processing の基本

現在標準で提供されているエフェクトには次のようなものがあります。

  • Ambient Occlusion
  • Anti-aliasing
  • Auto Exposure (*1)
  • Bloom
  • Channel Mixer (Color Grading)
  • Chromatic Aberration
  • Color Adjustments (Color Grading)
  • Color Curves (Color Grading)
  • Depth of Field
  • Fog (Deffered Fog) (*1)
  • Film Grain (Grain)
  • Lens Distortion
  • Lift, Gamma, Gain (Color Grading)
  • Motion Blur
  • Panini Projection (*2)
  • Screen Space Reflection (*1)
  • Shadows, Midtones, Highlights (*2)
  • Split Toning (*2)
  • Tonemapping (Color Grading)
  • Vignette
  • White Balance (Color Grading)

(括弧内は PPSv2 での名称 / *1 は URP 非サポート / *2 は PPSv2 非サポート)

モバイルプラットフォーム

Post-processing は重たい処理になるものも多く、モバイルプラットフォームとの相性が良いエフェクトは次の5つ程度に限られてきます。

  • Bloom
  • Chromatic Aberration
  • Color Grading
  • Lens Distortion
  • Vignette

また、Anti-aliasing については FXAA: Fast Approximate Anti-Aliasing を選択すると良いでしょう。

VR プラットフォーム

VR プラットフォームに於いては、いわゆる「VR 酔い」を避けるために、「Vignette」を有効にしつつ次のようなエフェクトは避けるべきとされています。

  • Lens Distortion
  • Chromatic Aberration
  • Motion Blur

関連リンク

09.Timeline

Image: docs.unity3d.com

Timeline とは

Timeline は、ゲームのカットシーンや演出を包括的に作成するためのツールで、Unity 2017.1 から利用できるようになりました。

C# スクリプトを書く必要があったアニメーションや音声やエフェクトなどを操作するシーケンスの作成が、Timeline の登場により Unity Editor 上の専用ウィンドウで完結可能になったのです。

Timeline の基本

Timeline には次の6つの基本的な Track が用意されています。

  • Activation Track: GameObject などの Active 状態を切り替える
  • Animation Track: Animation Clip を再生する
  • Audio Track: Audio Clip を再生する
  • Control Track: 他の Timeline (PlayableDirector) や ParticleSystem などのコンポーネントを制御する
  • Playable Track: 他の Timeline (PlayableDirector) を呼び出す
  • Signal Track: Signal という形式で C# スクリプトにイベントを送信する
  • また、VFX Graph や Cinemachine などのパッケージを利用している場合にはそれぞれ次のような Track が追加で利用できるようになります。
  • Visual Effect Activation Track: VFX Graph で作成した Visual Effect を開始する
  • Cinemachine Track: Cinemachine の Virtual Camera をブレンドする

カスタマイズ

プロダクトの要件にあわせて Track をカスタマイズするための仕組みも用意されており、標準の Track だけでは実現できない機能も自前でプログラムすることにより、Timeline のシーケンスでできることの幅を広げることが可能になっています。

【Unite Tokyo 2018】Timeline機能拡張:カットシーンにとどまらない新たな使い方

関連リンク

10.ArtEngine

Image: unity.com

ArtEngine とは

ArtEngine は Artomatix 社が開発する、AI を活用した3Dモデル用テクスチャ作成補助ツールです。

サンプルを PBR (Physically-Based Rendering: 物理ベースレンダリング) に耐えうるテクスチャとして加工するための機能が豊富に備えられた、ノードベースのプロシージャルワークフローツールとなっています。

ArtEngine の機能

ArtEngine には次に挙げるようなテクスチャを作成するための様々なモジュールが搭載されています。

  • 素材処理: 「素材変化」「継ぎ目の除去」「パターン展開」などにより短時間で素材を変化させる
  • 素材生成: 単一の写真から PBR テクスチャを生成する
  • 素材リマスタ: 「高解像度化」「ブラー除去」「JPEG 圧縮時アーティファクト除去」などにより素材をリマスタリングする
  • 素材変換: 素材の色を揃えたり、法線をグルーピングしたり、ラフネスを揃えたりする

これらのモジュールの中で必要に応じて機械学習の結果を用いた処理が行われるようになっており、モジュールをノードとしてつなぎ合わせることで元素材を破壊することなくスピーディーに新しい素材を作成することができます。

ここに挙げた機能はほんの一部の機能であり、深く知りたい場合は関連リンクに挙げた動画をご覧いただいたり、30日間の無償デモを申し込むことをお薦めいたします。

ArtEngine と Unity の連携

2020年3月に Artomatix 社が Unity に買収されたこともあり、今後連携機能の拡充が予定されています。

2021年7月現在、連携機能としては ArtEngine から出力される中間ファイルを Unity の Material としてインポートするための ArtEngine Importer が無償公開されています。

関連リンク

11.まとめ

Unity の機能のうち比較的アーティスト向けの成分が多いものをザッと列挙し、概要をまとめてみました。

今回ご紹介した全ての機能をフル活用するプロダクトというのはそうそう無い気もしますが、本稿が新規・既存の別を問わずプロジェクトに導入できそうな機能を見つけるきっかけになれば幸いです。

筆者紹介:もんりぃ先生(森 哲哉)

株式会社キッズスター / CTO。Unity Ambassador。Microsoft MVP for Developer Technologies。モバイルゲーム開発に軸足を置きつつ、登壇・執筆活動にも精を出す。Player, AssetBundle ビルド・ワークフロー・アーキテクチャなどのおじさん業を得意とする。

Twitter:https://twitter.com/monry
この記事はいかがでしたか?