fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2018年03月 | ARCHIVE-SELECT | 2018年05月

| PAGE-SELECT | NEXT

≫ EDIT

UE4 ナビゲーションメッシュ(Nav Mesh)を生成する高さを調整する(Recast Nav Mesh、Cell Height)

ナビゲーションメッシュ(Nav Mesh)が段差などで生成されない場合に
調整するための方法メモです。

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

・NavMeshBoundsVolumeの場所が高すぎると生成されない
https://answers.unrealengine.com/questions/309390/navmeshboundsvolume%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%8B%E9%AB%98%E3%81%99%E3%81%8D%E3%82%8B%E3%81%A8%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84.html?childToView=309510#answer-309510

「Nav Mesh Bounds Volume」をレベルに配置した時に、
段差などでうまくつながって生成されない時があると思います。
ナビメッシュの高さ000
こんな感じですね。

「Nav Mesh Bounds Volume」をレベルに配置すると
「Recast Nav Mesh」というものが一緒に生成されます。
ナビメッシュの高さ001

この「Recast Nav Mesh」の詳細にある
「Cell Height」という値
を調整することで、ある程度の段差でもナビメッシュが生成されるようになります。
ナビメッシュの高さ002

これの「Cell Height」という項目ですね。
ナビメッシュの高さ003

試しに「Cell Height」の値を30.0にしてみました。
ナビメッシュの高さ004
するとこんな感じに。

値を上げすぎるとあんまり良くなさそうなのでほどほどにという感じでしょうか。
だいたいはデフォルトのままでいけそうです。

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

≫ EDIT

UE4 コンテンツのアセットアイコンにビューポートをキャプチャしたサムネイル画像を設定する(Capture Thumbnail)

レベルアセットなどのアイコンにサムネイル画像を設定する方法です。

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

・妹、ブループリントにサムネイルを設定する方法を見つける
http://imoue.hatenablog.com/entry/2015/07/30/215615

レベルアセットのアイコンはデフォルトだとこんな感じになってます。
コンテンツアイコン001
これだと中身がなんなのかさっぱりですね。
なので、サムネイル画像を設定することでわかりやすくなりそうです。

やり方は簡単で、アセットを右クリックして出てくるメニューの
「アセットアクション」の「サムネイルのキャプチャ」を実行します。
コンテンツアイコン002

これで、今ビューポートに映ってる画面がキャプチャされ
アイコンのサムネイルとして登録されます。
コンテンツアイコン003
こんな感じに。

今回は画面をこんな感じにして「サムネイルのキャプチャ」を実行してみました。
コンテンツアイコン000
できるものとできないもの(おそらくすでにシステム側で設定されるもの?)があるみたいですね。

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

≫ EDIT

UE4 繰り返し処理を行っている途中で終了する(For Loop With Break、For Each Loop With Break)

ブループリント(BP)を使って
繰り返し処理を行っている途中で処理を終了する方法です。

こちらの公式ドキュメントを参考に。

・フロー制御
http://api.unrealengine.com/JPN/Engine/Blueprints/UserGuide/FlowControl/index.html

繰り返し処理を行っている途中で処理を終了するには
「For Loop With Break」ノードや「For Each Loop With Break」を使います。

「For Loop With Break」ノードは「For Loop」ノードに
ループを終了することができる入力ピンをもつノードです。
ForLoopWithBreak002.png
入力ピンの「Break」に入力が来た場合、繰り返し処理を終了します。

こんな感じにノードを組むと
ForLoopWithBreak001.png

こんな感じの結果になります。
ForLoopWithBreak000.png
100回繰り返し処理をするが、カウンタが10以上になったら
「Break」ピンに入力が実行される。といったものですね。

「For Loop With Break」ノードとは別に
配列版の「For Each Loop」ノードにも、途中で抜けることができる
「For Each Loop With Break」
があります。
ForEachLoopWithBreak002.png

フロー制御系のノードは結構使うので覚えておくと良さそうですね。

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

≫ EDIT

UE4 繰り返し処理を行う(For Loop、While Loop)

ブループリント(BP)を使って繰り返し処理を行う方法です。

こちらの公式ドキュメントを参考に。

・フロー制御
http://api.unrealengine.com/JPN/Engine/Blueprints/UserGuide/FlowControl/index.html

指定回数処理を行うには「For Loop」ノードを使います。
ForLoop002.png
「First Index」には始めるカウンタの値を指定します。
「Last Index」には終わるカウンタの値を指定します。
繰り返し処理中は「Loop Body」が実行されます(「Index」の値でカウンタの値がとれる)
繰り返し処理が終わると「Completed」が実行されます。

ForLoop ノードは、標準的なコードのループのように、開始と終了の間の各インデックスに対し実行パルスを発行します。

といったものですね。

こんな感じで処理を組みます。
ForLoop001.png

これを実行するとこんな感じに。
ForLoop000.png
0から5までの計6回の処理が実行されました。

「For Loop」ノードとは別に「While Loop」ノードでも繰り返し処理ができます。
WhileLoop002.png
「Condition」が「True」のときのみ繰り返し処理され続けます。
繰り返し処理中は「Loop Body」が実行されます(「Index」の値でカウンタの値がとれる)
繰り返し処理が終わると「Completed」が実行されます。

こんな感じに組むと
WhileLoop001.png

実行するとこんな感じになります。
WhileLoop000.png

繰り返し処理は処理の用途によって使い分けるのが良さそうですね。

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

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)の既存機能(グレイン効果(Grain))

ポストプロセスエフェクト(Post Process Effects)の既存機能を実装する方法です。
今回はグレイン効果(Grain)についてです。

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

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

グレイン効果(Grain)についてはドキュメントないのかしら…。

というわけで参考にさせていただいたサイトです。

・フィルムグレイン
http://d.hatena.ne.jp/keyword/%A5%D5%A5%A3%A5%EB%A5%E0%A5%B0%A5%EC%A5%A4%A5%F3

狭義にはフィルムに残るハロゲン化銀粒子、またそれが写真上に残すノイズのこと。フィルムで撮影された動画の場合は、そのノイズが画面全体をザラザラと彩り、映像に質感を与える要素のひとつとなっている。一般的には後者の映像効果を指す言葉。

近年では映画などの分野で画面演出として故意に用いられ、デジタル機器でクリアな映像を作ることのできる現在でも、映像に雰囲気を出すためのエフェクトとして使われている。

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

ここらへん画像つきで解説されています。
カメラ関係のものみたいですね。

・X-T2: グレインエフェクトはオールドタイプ・デストロイヤー。判断はRetina次第
http://xt.blog.jp/archives/65737751.html

・X-T2のグレインエフェクトと高感度ノイズを使ってフィルム風の写真を撮ってみた!
https://byuzensen.com/xt2-grain-effect

とりあえずやってみましょう。
まずは「Post Process Volume」を配置します。
ポストプロセス010

「Post Process Volume」の詳細にある「Lens」の「Image Effects」の
「Grain Intensity」と「Grain Jitter」
をいじってみましょう。
GrainJitter003.png

とりあえずこれが
GrainJitter002.png

こんな感じになりました。
GrainJitter001.jpg

パラメータの詳細についてはドキュメントがみあたらなく…。
ポストエフェクトのドキュメントの中にも説明がないみたいです…うう…。

「Grain Intensity」はグレイン効果の明度みたいですね。
この値を上げることでグレイン効果の明度が変わります。
GrainJitter005.jpg
こんな感じになります。

「Grain Jitter」はグレイン効果のゆらぎの幅みたいですね。
GrainJitter004.jpg
値をあげるとこんな感じになります。

・ジッター
https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%83%E3%82%BF%E3%83%BC

ということでこれも画作りの雰囲気を出すためのものぽいですね。
GrainJitter000.jpg
あわせてみるとこんな感じになりました。

| UE4 | 17:33 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 ポストプロセスエフェクト(Post Process Effects)の既存機能(ビネット効果(Vignette))

ポストプロセスエフェクト(Post Process Effects)の既存機能を実装する方法です。
今回はビネット効果(Vignette)についてです。

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

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

・Vignette(ビネット効果)
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/Vignette/index.html

Vignette は、実際のカメラレンズがだんだん暗くなっていく様子をシミュレートするエフェクトです。高品質レンズの場合、このエフェクトは補正対象となります。エフェクトは、主に画像の輪郭に顕著に現れます。

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

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

「Post Process Volume」の詳細にある「Lens」の「Image Effects」の
「Vignette Intensity」
をいじってみましょう。
ビネット002

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

・Vignette(ビネット効果)
http://api.unrealengine.com/JPN/Engine/Rendering/PostProcessEffects/Vignette/index.html

とりあえずこれが
ビネット001

こんな感じになりました。
ビネット000

ビネット効果自体に詳しくないのですが

・トンネルエフェクト きれいに出たらたまらなく嬉しいもの。
http://toycam.imaimax.com/modules/howto/index.php?content_id=20

ここらへんを見てみると、
昔ながらの映像を作る時に使ってみるような感じなのですかねー。
風景とかで使えそうですね。

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

≫ 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↑

| PAGE-SELECT | NEXT