2024年11月1,2週目に無料だった(執筆時まだ間に合う)アセットの紹介です。
とりあえずもらったものの、使いかたわからなくて放置中の方は意外と多いんじゃないかなと、 初心者向けにそこそこ丁寧に使い方を解説してみました。
2024年11月19日までの無料アセットは下記の3つです。
- Military Airport
- Hyper Outliner and Symbol System V2 ←本記事
- FOREST ANIMALS PACK
ゲット方法
以前の記事で説明しています。
間に合わなかった人も、更新されたアセットをゲットしましょう。
導入方法
新規プロジェクトを作成する前提のアセットなので、Epic Games Launcherからプロジェクトを作りましょう
起動してゲーム開始するとデモ展示のレベルが開きます
プロジェクト名が長すぎる警告がでますが、移行するだけの方は放置でよいです
Hyperのフォルダを選んで「移行」しましょう
取り込みたいプロジェクトのContentフォルダを選択します
移行できるとHyperフォルダが追加されます
シンボル(アイコン)
まずはアイコンの使い方からみましょう
Ctrl+PでBP_Symbolを検索します
これをドラッグアンドドロップでレベルに配置します
あとは詳細欄のデフォルトのプロパティを設定するだけです
まずはメッシュがないと見えないのでつけましょう
のこりのプロパティは動きがかわります
ただ、ゲーム中にいじっても変化がないものが多いので、一旦ゲームを止めて、ビギンプレイ時にしか反映できないのかもしれません
この動きはBPシンボル内でタイムラインのループ再生なので
そこをアレンジできるかたはチャレンジしてもよいと思います
このくらいの単純な動きはマテリアルでも可能ですね
固定位置ではなく、移動するキャラクタについて動かしたい場合は
ドラッグアンドドロップで親子関係にしてあげればOKです
熊さん(もちろん熊じゃなくても構いません)の子供にした状態で、相対位置をリセットして少し上に引き上げれば、
熊さんが移動してもついて回るアイコンになります
アウトライン(輪郭発光)
まずプロジェクト設定に変更が必要です
stencil を検索してカスタム深度ステンシルパスをEnabled with Stencil にします
プロジェクト設定は即時保存されるのでこれでOKです
次にアウトラインを光らせたいものの詳細欄から、レンダリングの詳細にすすみ
Render Custom Depth Pass にチェックをつけます
すると有効になるCustomDepth Stencil Value を、1か3か5にします
これは、あとで説明するノードなどのからくりでprimaryが1、Secondaryが3,Thirdが5に紐づいているため
最後にBP_Outliner_World_ActorというBPをCtrl+Pで検索して、レベル内にどこでもよいので置きます
これで輪郭が光る熊さんになりました
このアウトラインはポストプロセスマテリアルで描画されていて、さきほど追加したBP_Outliner_World_Actorがそれを持っています
ブループリントから操作
ではブループリントからこれらの仕組みを使う方法です
まず、光らせたいものと印をつけたいものを選択してタグをつけます
アウトラインを光らせたいものは outline とし、アイコンをつけたいものには symbol とつけます
指定のタグが付いているかしか見ないので、順番やほかのタグが付いていても問題ありません
自キャラ(今回例だとサンドボックスキャラクター)に「AC_Outliner_Advanced」を追加します
BP_Outliner_World_Actorはこれを持ったアクタがひとりいれば自動追加されるので、明示的に置かなくてもよくなります
ノードの使い方は付属のキャラクター BP_ThirdPersonCharacter_Outliner_System からコピペしましょう
イベントグラフ上部にノード一覧がありますが、そこにないノードや関数が色々使われているので、
とりあえずこのまま使うのが一番簡単です
インプットアクションはとりあえずキー入力で代用します
Eキーに割り当てました
ただしコピペした処理だと、アウトラインなしでシンボルを付ける想定がない(outlineタグがなければ処理が終了する作り)ので、シンボルだけはつけられません
下記のオレンジライン(実際は実行ピンなので白色)を追加するとsymbolだけつけることも可能です
ライントレースがぶつかったアクタがタグをもっていれば、光ったりアイコンがついたりする処理ができました
ものかげに隠れても光らせる
では、壁越しに透けて見えるシルエットを有効にしましょう
これはサンプルのキャラクターには実装されていませんが、Set Using Scene Depth で切り替えられます
Qキーでトグルできるようにしてみました
詳細
見た目のアレンジ
BP_Outliner_WorldActorが参照しているPP_MI_OutlinerとPP_MI_Outliner_SceneDepthを編集すると光り具合なども変えられます
前者が透けないときよう、後者が透けるようなので、トグルさせる場合は見た目も合わせましょう
ノード・関数
Switch Outline On Actorノード
アウトライン付けはずし
Outline Behavior: 一番親のコンポーネントだけ対象にするか、子も含めるかなどの範囲選択オプション
Enable Outline: つけるか外すかフラグ
Outline Type: 見た目3種類(Stencil Value 1,3,5に対応)
Spawn Replicated Symbolノード
BP_Symbolをスポーンさせて指定のアクタに取り付ける
Spawn Transform: 対象アクタからの相対Transform
色々:シンボルの動きパラメタ(回転速度や上昇幅など)
Symbol Mesh: シンボルの見た目
Spawned Actor Name: シンボルにつけるコンポーネント名
Parent Actor: 取り付ける対象アクタ
Destroy Symbol By Actorノード
指定のアクターに取り付けられているシンボルを消す
Trace from Active Camera関数
LineTrace をカメラから飛ばしているラッパー
Check If Actor Has Outliner関数
アウトライン描画状態か否かの判定
Check If Actor Has Symbol Attached関数
アクターにシンボルが取り付けられているか否かの判定
背景技術
透けて見える仕組みは、BP_Outliner_WorldActorで、ポストプロセスマテリアルを切り替えているだけです
なのでアウトラインを付けているものすべてに影響があり、
いくつか光らせつつ特定のものだけ透けさせるというのは改造しないとできないと思います
技術的にできないわけじゃないのでやりたいひとは頑張って勉強しましょう
おわりに
動画ではおまけとして、ライントレースじゃなくダメージ食らった熊さんが自分にシンボルつけるという例も実演しています。そちらも是非ご確認ください。
コメント