凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)の既存機能(被写界深度(Depth of Field))

ポストプロセスエフェクト(Post Process Effects)の既存機能を実装する方法です。
今回は被写界深度(Depth of Field)についてです。

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

・DOF (Depth of Field:被写界深度)
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/DepthOfField/index.html

被写界深度 (DoF) は、焦点の前後の距離に応じてブラーをシーンに適用します。現実の世界のカメラで起こることをシミュレーションします。エフェクトを使用すると、見る側の注意を引き付け、 レンダリングを写真や映画にさらに近づけることができます。

といったもののようです。

詳しい説明はこちらを参考にさせていだきました!

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

文章だとよくわからないので実際にやってみましょう。
まずは「Post Process Volume」を配置します。
ポストプロセス010

「Post Process Volume」の詳細にある「Depth of Field」をいじってみましょう。
被写界震度002

パラメータの詳細については最初にも書いてある公式ドキュメントを見るのがよさそうです。

・DOF (Depth of Field:被写界深度)
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/DepthOfField/index.html

とりあえずこれが
被写界震度000

こんな感じになりました。
被写界震度001

パラメータは適当なのでぼんやりしただけになってしまいましたが…。
イベントなどを作る場合には使いそうですね。
ゲームの通常シーンだとあまり使う機会はないかもですね。
スポンサーサイト

| UE4 | 12:44 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 エディタでの実行(プレイ)のキーボードのショートカットキー(Alt+Pキー)

エディタでプレイするときのキーボードショートカットです。
「Immersive モード」などで全画面になっている場合などに
どのキーで実行だっけ?と悩むことがあったのでメモです。

「エディタ設定」の中にある
「一般」の「キーボードショートカット」を確認します。
プレイショートカット000

すると、デフォルトでは「Alt+P」に割り当てられているのがわかります。
プレイショートカット001

ゲームのプレビューセッションを起動します。
ゲームは、レベルエディタのツールバーにあるプレイボタン横の
ゲームプレビューモードドロップダウンリストで前回選択したゲームプレビューセッションと同じモードで起動します。

という感じの動作みたいですね。

「Alt+P」でプレイ!と覚えておきましょう!

| UE4 | 11:52 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)の既存機能(ブルーム(Bloom))

ポストプロセスエフェクト(Post Process Effects)の既存機能を実装する方法です。
今回はブルーム(Bloom)についてです。

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

・ブルーム
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/ColorGrading/index.html

詳しい説明はこちらを参考にさせていだきました!

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

上記サイトによると

ブルームとは現実世界における発光現象のことです。ただし、現実世界のように光源の情報は限界値がないわけではなくて、明るさが表現できなかった時代にHDR(ハイダイナミックレンジ)という技術が生まれました。それに対して目に実際に生じる効果をシミュレートしたものがブルームです。

といったもののようです。

文章だとよくわからないので実際にやってみましょう。
まずは「Post Process Volume」を配置します。
ポストプロセス010

「Post Process Volume」の詳細にある「Bloom」をいじってみましょう。
ブルーム002

パラメータの詳細については最初にも書いてある公式ドキュメントを見るのがよさそうです。

・ブルーム
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/ColorGrading/index.html

とりあえずこれが
ブルーム000

こんな感じになりました。
ブルーム001

パラメータは適当なのでぼんやりしただけになってしまいましたが…。
光とか表現する場合はかなり使うことになるんじゃないでしょうか。

というわけでいろいろ入れるとこんな感じに。
ブルーム003
いつか絵作りでいろいろ入れたものを作ってみたいですね。

| UE4 | 11:35 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスマテリアル(Post Process Material)でとりあえず色を変えてみる(Scene Texture、Component Mask)

ポストプロセスエフェクト(Post Process Effects)
ポストプロセスマテリアル(Post Process Material)
とりあえず画面の色を変えてみる方法です。

ポストプロセスマテリアル(Post Process Material)を使うところまでは書いていたのですが
実際の例を書いていなかったのでそれです。

ここらへん参考にしてます。

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

・ポストプロセス マテリアル
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/PostProcessMaterials/

今回のポストプロセスマテリアルはこちらを参考に。

動画はこれですね。


まずは「Scene Texture」ノードを作成します。
ポストプロセス003
「Scene Texture:Scene Color」というノードができます。

このノードの詳細設定で
「Scene Texture Id」を「Post Process Input0」に変更します。
ポストプロセス005

そうすると先程のノードが「Scene Texture:Post Process Input0」になります。
ポストプロセス004

これで画面がとってこれるようになったので
この「Color」を他のカラーノードと乗算して接続してあげます。
ポストプロセス006
こんな感じですね。

Vector 型のパラメータを用意してみました。
…エラーがでますね。

これを上手く接続するために
「Component Mask」ノードを追加して接続してあげます。
ポストプロセス008

「Component Mask」の公式ドキュメントはこちら。

・ComponentMask
http://api.unrealengine.com/JPN/Engine/Rendering/Materials/ExpressionReference/Math/#componentmask

ComponentMask 表現式は、入力値から出力へ渡すためのチャンネル (R、G、B および / もしくは A) の特定サブセットの選択を有効にします。入力に存在しないチャンネルを通過しようとすると、入力値が単一の定数値でない限りエラーが生じます。その場合、単一値が各チャンネルを通過します。値が通過するチャンネルとして現在選択されたチャンネルは、表現式のタイトルバーに表示されます。


「Component Mask」の詳細はRGBにチェックをいれましょう。
ポストプロセス007

という感じで、現在の画面に対して青色を乗算するものが組めました。

これが
ポストプロセス010

こんな感じになりました。
ポストプロセス016

ここまでくればあとは「画面のテクスチャをどう使うか」のマテリアルノードの組み方。
になってくると思うのでいろいろとできそうですね。

| UE4 | 12:40 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)にマテリアルを作成して適用する(ポストプロセスマテリアル(Post Process Material))

ポストプロセスエフェクト(Post Process Effects)にマテリアルを適用して実装する方法です。
ポストプロセスマテリアル(Post Process Material)というものですね。

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

・ポストプロセス マテリアル
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/PostProcessMaterials/

ポストプロセスについてはこちらも参考にさせていただいています!

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

ポストプロセスマテリアル(Post Process Material)については
調べてもあまりでてこなかったのでこちらの動画をまじまじと見て実装してみました!

・UE4 Tutorial 101 — Occlusion Outlines
https://www.youtube.com/watch?v=rL7VUeZzRyQ

まずはいつもどおり「Post Process Volume」を配置します。
ポストプロセス010

まずはポストプロセル用のマテリアルを作成します。
こんな感じで普通にマテリアルを作成します。
ポストプロセス000

マテリアルの「マテリアル属性(Material Domain)」を「Post Process」に変更します。
ポストプロセス002

そうするとリザルトのノードがこんな感じで変わります。
ポストプロセス001

これでポストプロセスマテリアルが作成されました。
これを「Post Process Volume」に設定しましょう。

「Post Process Volume」の詳細にある
「Post Process Materials」を追加してみましょう。

「Array」を追加したら「アセットリファレンス」を指定しましょう。
ポストプロセス014
これでマテリアルを指定できるようになります。

さっき作成したマテリアルを設定してみましょう。
ポストプロセス015
こんな感じですね。

これでポストプロセスエフェクトにマテリアルを適用することができました。
あとはマテリアルのノードをがしがし組んでいくと
オリジナルのポストプロセスエフェクトを作成することができます。

| UE4 | 12:52 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)の既存機能(カラーグレーディング(Color Grading))

ポストプロセスエフェクト(Post Process Effects)の既存機能を実装する方法です。
今回はカラーグレーディング(Color Grading)についてです。

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

・カラーグレーディング
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/ColorGrading/index.html

詳しい説明はこちらを参考にさせていだきました!

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

上記サイトによると

カラーグレーディングとも言います。これは画面全体の色見を設定できます。輝度や彩度をあげたり、コントラストを調整したりできます。実際のテレビでもよくある機能ですね。


といったもののようです。

文章だとよくわからないので実際にやってみましょう。
まずは「Post Process Volume」を配置します。
ポストプロセス010

「Post Process Volume」の詳細にある「Color Grading」をいじってみましょう。
とりあえず「Global」の「Saturation」にチェックをいれ、
RGBなどのカラーバーをいじってみましょう。
ポストプロセス011
「Saturation」は彩度のことなので、これで彩度が変わっていくはずです。

全部0にするとこんな感じに。
ポストプロセス013
彩度がなくなるのでグレースケールみたいな絵になりました。

と、こんな感じで画面全体の色味を調整する時に使えそうですね。
項目は「Global」以外にもあるのでいろいろと調べないとですね…。

ドキュメントはここらへんに。

・Color Grading and Filmic Tonemapper
https://docs.unrealengine.com/en-us/Engine/Rendering/PostProcessEffects/ColorGrading

・Using Lookup Tables (LUTs) for Color Grading
https://docs.unrealengine.com/en-us/Engine/Rendering/PostProcessEffects/UsingLUTs

LUTを使った方法もできるみたいですね。

| UE4 | 12:40 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)を実装する(Post Process Volume)

ブルームや被写界深度などのポストエフェクトを実装する方法です。

公式ドキュメントはこちらに。

・ポストプロセス エフェクト
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/

詳しい説明はこちらを参考にさせていだきました!

・UE4 ポストプロセスエフェクトについて
http://unrealengine.hatenablog.com/entry/2014/05/29/230002

既存機能では以下のことがあるみたいですね。

・フィルム
・シーンカラー
・ブルーム
・アンビエントキューブマップ
・眼の順応
・レンズフレア
・アンビエントオクルージョン
・スクリーンスペースな光沢リフレクション
・グローバルイルミネーション
・被写界深度
・モーションブラー
・画面の描画率
・アンチエイリアス
・ブラーを用いたアンチエイリアシング
・ポストプロセスマテリアル


結構ゲームには必須なものが多そうですね。
個別の機能についてはまた別記事でまとめようと思います。

ポストプロセスエフェクトを適用するには
まず「Post Process Volume」をレベルに配置します。
ポストプロセス009

配置するとこんな感じになります。
ポストプロセス010
こう、やってみて初めて知ったのですが
デフォルトでは「Post Process Volume」の中にカメラがいるときだけ
ポストエフェクトが反映
されるみたいですね。
※設定でレベル全体に変えることもできます。

これだけでポストエフェクトが適用されます。
試しにやってみたのだとこんな感じになりました。
ポストプロセス013

「Post Process Volume」の各パラメータはこちらに。

Priority
複数のPostProcessVolumeが重なった時に優先される優先度の設定です。数値の高いボリュームほど優先的にポスト処理が有効になります。

Blend Radius
ボリュームのもっている影響力の半径。広ければ広いほど、広範囲に影響力が強くなります。

Blend Weight
ボリューム自体が持つ影響力の強さ。0だと影響がなくなり、1にすると最大値の影響力を持ちます。

Enabled
ボリューム自体を有効にします。これがチェックされていないとボリュームが有効になりません。

Unbound
ボリュームが境界による影響力をもたなくなり、チェックされているとそのレベル全体でポストプロセスが有効になります。ずっとエフェクトをかけていたい場合はこれをチェックしておきます。


一番重要なのは「Unbound」でしょうか。
今のバージョンだと「Infinite Extent(Unbound)」になっているようですね。

ボリュームの大きさは拡大縮小すれば自由に変更できますし、Unboundにチェックすれば効果はずっと持続するということも覚えておきましょう。


と、これであとはパラメータやマテリアルを設定してポストエフェクトを適用していくようです。
簡単でいいですね!

| UE4 | 12:10 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ナビゲーションメッシュ(Nav Mesh)があるかどうかを確認する(Pキー)

ナビゲーションメッシュ(Nav Mesh)があるかどうかを確認する方法です。

公式ドキュメントはこちら。

・Nav Mesh Bounds ボリュームの作成
http://api.unrealengine.com/JPN/Engine/AI/BehaviorTrees/QuickStart/2/

「Nav Mesh」があるかどうかは
キーボードの「P」キーを押すことで確認できます。
ナビメッシュ作成002
「Nav Mesh」がある場合は緑色で表示されます。

緑色のメッシュがフロアにオーバーレイ表示されていれば、正しくビルドされています。メッシュが赤くなった場合は、ボリュームまたはその中のメッシュを移動させたため再計算中であることを意味します。

いつでも P キーを押して、 NavMesh の表示 / 非表示を切り替えることができます。


とのことです!

| UE4 | 11:23 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ナビゲーションメッシュ(Nav Mesh)を作成する(Nav Mesh Bounds Volume)

ナビゲーションメッシュ(Nav Mesh)を作成する方法です。

公式ドキュメントはこちらに。

・Nav Mesh Bounds ボリュームの作成
http://api.unrealengine.com/JPN/Engine/AI/BehaviorTrees/QuickStart/2/

「Nav Mesh」を作成するには「Nav Mesh Bounds Volume」を使います。
ナビメッシュ作成000

「Nav Mesh Bounds Volume」をレベルに配置します。
ナビメッシュ作成001
こんな感じですね。
「Nav Mesh」は「Nav Mesh Bounds Volume」の範囲内だけに作成されるので、
位置、回転、スケールを使って範囲を決めましょう。

そうすると「Nav Mesh」が作成されます。
キーボードの「P」を押して確認してみましょう。
ナビメッシュ作成002
緑になっている部分が作成された「Nav Mesh」ですね。

領域の形状を変えたい場合は
「Nav Mesh Bounds Volume」の詳細にある
「Bruch Settings」でいろいろ設定することができます。
ナビメッシュ作成004
「ブラシ形状」などで形を変えることができます。

ナビメッシュ作成003
シリンダーだとこんな感じですね。

と、これだけでナビゲーションメッシュを作成することができます。
簡単ですね!
AI関係で使うことが多くなりそうですね。

| UE4 | 11:14 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 配列の2つの要素をインデックスを指定して入れ替える(Swap Array Elements)

配列の2つの要素を入れ替える方法です。

こちらを参考にさせていただきました。

・UE4.18で追加されたブループリントの新機能について
http://unrealengine.hatenablog.com/entry/2017/11/02/233125

配列の要素を入れ替えるには
「Swap Array Elements」ノードを使います。
Swap001.png
入れ替えたい配列のインデックスを2つ指定します。

実際に組んでみるとこんな感じに。
Swap000.png

と、これだけですね。
こういったものも結構使う機会はありそうですね。

| UE4 | 11:37 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 値が範囲内かチェックする(In Range(integer)、In Range(float))

値が範囲内にあるかどうかチェックする方法です。

こちらを参考にさせていただきました!

・UE4.18で追加されたブループリントの新機能について
http://unrealengine.hatenablog.com/entry/2017/11/02/233125

値が範囲内にあるかどうかチェックするには
「In Range(integer)」ノードを使います。
InRange001.png
「Value」にはチェックしたい値を指定します。
「Min」には範囲の最小値を指定します。
「Max」には範囲の最大値を指定します。
「Inclusive Min」は最小値も含むかどうかを指定します。
「Inclusive Max」は最大値も含むかどうかを指定します。
値が範囲内であればTrueが返ります。

このノードはfloat版の「In Range(float)」ノードもあります。
InRange002.png
内容は integer 版と同じですね。

実際につかうとこんな感じになります。
InRange000.png

BPで計算をしようとすると長くなったりめんどくさかったりするので
こういったノードが結構用意されているようですね。

| UE4 | 16:28 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT