Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Highlight Plus でオブジェクトにハイライトをつける【Unity】

今回はアセットの紹介をしていきます。
紹介するのはHighlight Plus
オブジェクトにハイライトやグロウなどエフェクトをつけるアセットです。

f:id:Raspberly:20211011032612p:plain

f:id:Raspberly:20211011032859p:plain




 

お得なセール情報

現在アセットストアでは、アジアのユーザー限定のメガバンドルセールを開催中!
最大43.99ドルで23の高品質アセットが入手できちゃいます!詳しくは↓のバナーからどうぞ

f:id:Raspberly:20211011021646p:plain

今回紹介する「Highlight Plus」も対象アセットです。

 

 

どんなアセット?

オブジェクトにハイライトをつけたり、
他のオブジェクトに遮られた時に透過したりなどエフェクト効果をつけるアセットです。

ハイライトプラスは、シーン内の3Dオブジェクトにアウトライン、グロー、オーバーレイ、シースルー、その他の効果追加する強力なアセットですHPは、プラットフォームの互換性パフォーマンスおよび汎用性を念頭に置いて設計されています

**プラットフォームの互換性**

 

ビルトイン/標準パイプライン(Unity 2018.4+)

-MacWindowsAndroidiOSWebGLと互換性があります。

-VR互換。

-モバイルで超高速。

 

ユニバーサルレンダリングパイプライン(Unity 2019.3+)

アセットには、ユニバーサルレンダリングパイプライン用に設計されたバージョンも含まれています。

f:id:Raspberly:20211011032434g:plain



 

 

開発環境

Unity 2020.3.14f1

Universal RP ver10.5.1

HighlightPlus ver6.9

 

今回はURPプロジェクトで行いますが、Built-inでも同様の手順でできます。

 

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
Unity標準のBuiltinとURP2種類のパッケージが用意されています。
プロジェクトに合ったパッケージをインポートします。

f:id:Raspberly:20211006004858p:plain

今回はURPでやります。
Assets/HighlightPlusBundle/HighlightPlus_URP_Pipelineをインポート

f:id:Raspberly:20211006014150p:plain

f:id:Raspberly:20211006014222p:plain

Built-inの場合はHighlightPlus_Builtin_Pipelineをインポートします。

 

インポート後は「HighlightPlus」というフォルダが作成されます。

f:id:Raspberly:20211006014950p:plain



URP版の初期設定

URPプロジェクトのみ以下の設定をします。
Project Settingsを開き、Graphics/Scriptable Render Pipeline Settingsから現在設定中のURP Assetをダブルクリック

f:id:Raspberly:20211006231308p:plain

 

InspectorビューのRenderer ListにあるRendererDataをダブルクリック

f:id:Raspberly:20211006232152p:plain

RendererDataのAddRendererFeatureボタンから、Highlight Plus Render Pas Featureを追加します。
これで準備完了です。

f:id:Raspberly:20211007000721p:plain

公式で解説動画もあります

youtu.be

 

 

デモシーンの確認

デモシーンはAssets/HighlightPlus/Demoの中にあります。

f:id:Raspberly:20211010225113p:plain

マウスが重なるとハイライトされるのが確認できます。

f:id:Raspberly:20211010230521g:plain

 

 

 

 

実際に試してみる

手っ取り早くキャラクターにハイライトをつけてみます。

今回はUnityChanURPを使用します。

raspberly.hateblo.jp

 

コンポーネントのアタッチ

MeshRendererのルートになるオブジェクトにHighlightEffectコンポーネントをアタッチします。
今回のメインとなるハイライトや透過効果をつけるコンポーネントです。

f:id:Raspberly:20211010235602p:plain

 

ハイライトを有効化

HighlightEffectコンポーネントHighlightedにチェックを入れるとハイライトが有効になります。

f:id:Raspberly:20211011000744p:plain

 

これは当然Scriptからも制御できます。

f:id:Raspberly:20211011002145p:plain


ハイライトが有効になるとこんな感じ、アウトラインや色味がつき強調表示されてる感を演出できます。

f:id:Raspberly:20211011002428p:plain

 

ここからはそれぞれの細かい機能を見ていきます。

 

アウトラインの設定

Outlineからアウトラインの設定ができます。
スライダーを0にするとアウトラインが無効化されます。

f:id:Raspberly:20211011002637p:plain

色や太さなどが調整できます。

f:id:Raspberly:20211011003400p:plain

 

 

グロウの設定

Outer GlowとInner Glowでグロウの設定ができます。
オブジェクトを発光させるような演出です。
スライダーを0にするとアウトラインが無効化されます。

f:id:Raspberly:20211011002803p:plain

 

Outer Glowはオブジェクトの外側に作用するグロウです。
強弱するアニメーション機能もあります。

f:id:Raspberly:20211011005138g:plain

 

Inner Glowはオブジェクトの内側に作用するグロウです。

f:id:Raspberly:20211011003712p:plain

 

 

オーバーレイの設定

Overlayからオーバーレイの設定ができます。
オブジェクトの上に色を重ねて強調するような演出ができます。

f:id:Raspberly:20211011003032p:plain

Outer Glowと同じくアニメーション機能もあります。

f:id:Raspberly:20211011005146g:plain

 

 

ターゲットの設定

Targetにチェックを入れるとターゲット機能が設定できます。
Rendererの位置に合わせてターゲットマーカーを表示する機能です。

f:id:Raspberly:20211011003206p:plain

ScriptでHighlightEffect.TargetFX()を呼び出すと表示できます。

f:id:Raspberly:20211011014836g:plain

 

 

シースルーの設定

SeeThroughはオブジェクトが別のオブジェクトに遮られたときに透過表示する機能です。
Neverにすると無効になり、Always When OccludedにするとHighlighted状態に関係なく表示されます。

f:id:Raspberly:20211011003229p:plain

f:id:Raspberly:20211011005215g:plain

 

シースルー機能が強すぎる時

別のオブジェクトに遮られたわけでもないのにオブジェクトのエッジが強調表示される場合、
DepthOffsetの値を調整することで解決できます。

f:id:Raspberly:20211011025735p:plain

f:id:Raspberly:20211011030143p:plain

 

 

ヒットFXの設定

HitFXはオブジェクトを一瞬強調表示する機能です。
見え方はオーバーレイに近い。

f:id:Raspberly:20211011005354p:plain

HitFX()を呼び出すと表示されます。

f:id:Raspberly:20211011005204g:plain

f:id:Raspberly:20211011005311p:plain

 

 

 

まとめ

Highlight Plusを使うと、オブジェクトに対してハイライトやアウトライン、シースルーなどエフェクトを与えることができる。

f:id:Raspberly:20211011032434g:plain



過去に類似する機能を持つアセット「Easy Performant Outline 2D | 3D」を紹介したことがあります。

raspberly.hateblo.jp

どちらも一長一短なので、必要な機能に応じて使い分けるといいでしょう。
「Easy Performant Outline 2D | 3D」は2D3D両方で使えますが、
Highlight Plusで2Dをやりたい場合別売りのアセットが必要になります。

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。