FC2ブログ

凛(kagring)のUE4/UE5とUnityとQt勉強中のゲーム制作ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。ゲーム制作の話題もはじめました。

| PAGE-SELECT | NEXT

≫ EDIT

UE4 ポストプロセスマテリアル(Post Process Material)でアウトラインを描画する

ポストプロセスマテリアル(Post Process Material)でアウトラインを描画する方法です。

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

・Unreal Engine 4 ポストプロセス セルシェーダー
https://github.com/alwei/PPCelShader

アウトライン
4種類のアウトライン描画があります。
まず、『Depth Line』と『Normal Line』はメッシュのカメラ距離に関係なく一環したライン描画が行われます。
その分、細かいライン調整を行うことはできませんが、安定したライン描画を行うことができるようになっています。
『Edge Line』と『Crease Line』はメッシュのカメラ距離に大きく依存しますが、『Depth Line』や『Normal Line』では描画できない部分が調整可能です。
それぞれを必要に応じて使わない選択肢も可能ですので、調整してみて好みに応じて利用してください。


上記でアウトラインを描画している箇所があったのでこちらをもとに作成してみました。

「PP_CelShader」を開きます。
ポストプロセスアウトライン004
詳しくは中身を見てもらえればよいので、
とりあえず全体としてこれだけノードがあるという感じですね。

このポストプロセスマテリアルの処理からアウトラインの描画部分だけを使いたいため
セルシェーディングに関する部分を削除
します。
ポストプロセスアウトライン002
まずは赤枠で囲まれた部分を削除します。

そのあと入力がなくなってしまっているのでこんな感じで入力部分足します。
ポストプロセスアウトライン001
赤枠の部分のようにする感じですね。

結果こうなりました。
ポストプロセスアウトライン000
下に見切れているノードはアウトラインの部分をそのまま使っているので割愛します。

次に、このマテリアルに対してマテリアルインスタンスを作成します。
ポストプロセスアウトライン005

あとは、マテリアルインスタンスのパラメータを調整すればアウトラインが描画できます。
ポストプロセスアウトライン006

これを使ってみた結果がこちら。
ポストプロセスアウトライン003
今回は白いアウトラインを描画してみましたがいい感じなのではないでしょうか。

処理負荷などはともかくとして、とりあえずは描画できているので問題ないかなと。
ここらへんいつかは自分でも詳しくなっていろいろと一からできるようになってみたいですね。

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

≫ EDIT

UE4 後からスターターコンテンツやテンプレートコンテンツを追加する(Add Feature or Content Pack)

後からスターターコンテンツやテンプレートコンテンツを追加する方法です。

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

・【UE4】後からスターターコンテンツや他のテンプレートのコンテンツを追加
https://shuntaendo.hatenablog.com/entry/2018/05/18/200000

まずはからのプロジェクトを作成してみました。
スターターパックを後から追加003
とりあえずコンテンツの中身は空です。

次にコンテンツブラウザの「追加/インポート(Add New)」から
「機能またはコンテンツパックを追加(Add Feature or Content Pack)」を選択
します。
スターターパックを後から追加000

ダイアログが開いてコンテンツの追加ができます。
スターターパックを後から追加001
「ブループリント機能」のタブがアクティブになっているため
テンプレートコンテンツの追加選択画面
になっています。

「コンテンツパック」タブを選択します。
スターターパックを後から追加002
このタブで「スターターコンテンツ」の追加を選択することができます。

スターターコンテンツを追加した結果がこちら。
スターターパックを後から追加004
無事コンテンツが追加されていますね。

注意点がいくつかあるようです。

複数のテンプレートのコンテンツを1つのプロジェクトに入れることが可能ですが、入れすぎると競合を起こしてコンパイルが通らなくなる可能性があるので注意が必要です。

また、C++のコンテンツを入れるとコンパイルが行われ、追加後に今すぐC++ファイルを編集するか聞かれて"Yes"を選ぶとVisual Studioが起動します。

この二点は気にしておいた方がよさそうですね。

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

≫ EDIT

UE4 コンテンツブラウザ(Content Browser)のフォルダの色を変更する(カラーを設定)

コンテンツブラウザ(Content Browser)のフォルダの色を変更する方法です。

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

・【UE4】知っておくとちょこっと便利なコンテンツブラウザtips
https://chikaze7.wixsite.com/ue4haikei/post/%E3%80%90ue4%E3%80%91%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E3%81%A1%E3%82%87%E3%81%93%E3%81%A3%E3%81%A8%E4%BE%BF%E5%88%A9%E3%81%AA%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6tips

こんな感じでコンテンツブラウザにフォルダを用意しました。
フォルダの色変更000

このフォルダを右クリックして「カラーを設定」を選択します。
フォルダの色変更001
するとカラーを選択するダイアログが表示されるので色を設定します。

そうするとこんな感じでフォルダに色が付きました。
フォルダの色変更002

あんまり効果的なイメージはありませんが、
なにかしらカテゴリを分ける(触ってはいけないフォルダとか?)場合には使えるのかなと思いました。

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

≫ EDIT

UE4 コンテンツブラウザ(Content Browser)で「&」(and)や「|」(or)を使って条件検索をする

コンテンツブラウザ(Content Browser)で「&」(and)や「|」(or)を使って条件検索をする方法です。

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

・【UE4】UE4Tips120選~勉強会にて配ったTipsカードの内容を一挙公開!~
https://kinnaji.com/2020/02/09/tips120/

Content Browserのサーチボックスでは
「|」や「&」などを使ってOr,And検索ができる。

と書かれていました。

こういったアセット名のものを用意しました。
コンテンツブラウザで条件検索000

検索ボックスにまず「Parent」と入力します。
コンテンツブラウザで条件検索001
「Parent」が含まれる2つのアセットに絞られました。

「&」で区切って And 検索を行います。
コンテンツブラウザで条件検索003
「BP」と「Parent」で And 検索をしたので条件に合うアセットに絞られました。

「|」で区切って Or 検索を行います。
コンテンツブラウザで条件検索002
「Parent」と「Child」で Or 検索をしたので条件に合うアセットに絞られました。

名前が似てると結構な数がリストアップされてしまうので
こういった機能は地味に便利かもしれませんね。

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

≫ EDIT

UE4 Arrow Component の矢印の長さを設定する(Arrow Length)

Arrow Component の矢印の長さを設定する方法です。
※この機能は 4.26 以降で使うことができます。

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

・UE4 - UE4.26の新機能から便利そうなものをピックアップして紹介(Blueprints, UMG周りのみ)
https://kumasan-debug.hatenablog.com/entry/2020/12/08/100928

記事内で以下のように書かれています。

ArrowComponentに矢印の長さを設定できる項目を追加
アクターの向きをエディター上で確認できるようにするArrowComponent。このコンポーネントの長さを設定できるようになりました。
ArrowLengthで矢印の長さを設定する


まずは適当にアクターを用意して「Arrow Component」を追加します。
Arrowコンポーネントの長さ002
こんな感じになりました。

この「Arrow Component」の詳細タブにある
「Arrow Length」で矢印の長さを調整
することができます。
Arrowコンポーネントの長さ001

設定してみるとこんな感じになりました。
Arrowコンポーネントの長さ000
長くなってますね!

実際にアクターを配置してみたのはこちら。
Arrowコンポーネントの長さ003

あまり使うことはないかもしれませんが
何かの長さを視認できるようにするので活用できるかなと思いました。

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

≫ EDIT

UE4 ノードの戻り値(出力)の値を変数を作成してセットする(Promote to Variable)

ノードの戻り値(出力)の値を変数を作成してセットする方法です。

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

・ブループリント変数
https://docs.unrealengine.com/ja/ProgrammingAndScripting/Blueprints/UserGuide/Variables/index.html

入力については以下でメモしていたのですが出力については触れていなかったのでメモです。

・ブループリント(BP)の入力ノードの値を変数へ昇格(Promote to Variable)とローカル変数へ昇格(Promote to Local Variable)
http://kagring.blog.fc2.com/blog-entry-470.html

変数へ昇格させる
[Promote to Variable (変数へ昇格] を使用しても、変数の作成が可能です。
ブループリント ノードの任意の入出力ピン上で右クリック して [Promote to Variable] オプションを選択します。


上記を実行することで変数を作成することができます。

ノードの出力ピンを右クリックして「変数に昇格」を選択します。
戻り値を変数に変更000

するとこんな感じで新しい変数が作成され、その変数に出力結果がセットされます。
戻り値を変数に変更001
上記のような結果になります。

戻り値を変数に変更003
「New Var 0」という変数ですね。

「変数に昇格」メニューでなくても「Promote to Variable」でも同じ挙動になります。
戻り値を変数に変更002

変数の型も自動で合わせてくれるので便利に扱えるような気がします。

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

≫ EDIT

UE4 関数の引数を取得して扱う(Get)

関数の引数を取得して扱う方法です。

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

・BPでの自作関数の引数について
https://answers.unrealengine.com/questions/677483/view.html

こんな感じで引数を持つ関数を作るとします。
引数変数の取得000

これの引数を扱う場合、普通に使うとこんな感じになると思います。
引数変数の取得001

引数が増えていくとどんどんノード線が複雑になりがちになります。
使う場所が処理の後半だったりすると長いノード線になったりもします。

この引数は「Get 引数名」で取得して扱うことができます。
引数変数の取得002
上記の関数だとこんな感じでノードを探すことができます。

これを使うと、変数の取得のように扱うことができます。
引数変数の取得003
こんな感じですね。

これを使うと結構見やすくなると思うので使えるのかなと思います。

| UE4 | 00:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 コンテンツブラウザ(Content Browser)のウィンドウを複数開く

コンテンツブラウザ(Content Browser)のウィンドウを複数開く方法です。

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

・【UE4】知っておくとちょこっと便利なコンテンツブラウザtips
https://chikaze7.wixsite.com/ue4haikei/post/%E3%80%90ue4%E3%80%91%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E3%81%A1%E3%82%87%E3%81%93%E3%81%A3%E3%81%A8%E4%BE%BF%E5%88%A9%E3%81%AA%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6tips

通常はエディタがこんな感じのレイアウトになっていると思います。
複数のコンテンツブラウザ000
コンテンツブラウザのウィンドウは一つだけ存在している状態です。

メニューの「ウィンドウ」の「コンテンツブラウザ」から
「コンテンツブラウザ2」~「コンテンツブラウザ4」を選択
することで
複数のコンテンツブラウザのウィンドウを開くことができます。
複数のコンテンツブラウザ001

試しに3つほどコンテンツブラウザのウィンドウを開いてみました。
複数のコンテンツブラウザ002

頻繁に使うフォルダなどある場合は複数利用してもいいのかもしれないですね。

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

≫ EDIT

UE4 2021年6月の無料マーケットプレイスコンテンツ(永続的無料コンテンツ:Easy Building System v8)

2021年6月の無料マーケットプレイスコンテンツが公開されていたのでメモです。

・2021年6月の無料マーケットプレイスコンテンツ
https://www.unrealengine.com/ja/blog/featured-free-marketplace-content---june-2021

基本的には6月中にDLするのが良いと思うので記事の中身を見てもらえればと思うのですが
新しい永続的無料コンテンツがあったのでそちらだけメモしておきます。

・Easy Building System v8
https://www.unrealengine.com/marketplace/ja/product/easy-building-system

Easy Systems のモジュラー建築システムを使えば、天井作りも簡単です。壁も、ドアフレームもパッケージに含まれています!

とのことです。

こういった無料コンテンツはすごく助かりますね。

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

≫ EDIT

UE4 ブループリント(BP)で読み取り専用の変数を作成する(ブループリント読み取り専用、Blueprint Read Only)

ブループリント(BP)で読み取り専用の変数を作成する方法です。

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

・脱! 俺たちは雰囲気でBPをいじっている
https://www.slideshare.net/naoakiyamaji/bp-88220780

ブループリント読み取り専用
ブループリント内で編集できなくする(コンパイル時にエラーがでる)
定数的に扱える(プライベートじゃなくても外部からもセットできなくなる)
個人的にはインスタンス編集可能やスポーン時に公開と併用してよく使う


というわけで試してみました。

こんな感じで変数を作成しました。
変数の属性000
「VarBlueprintReadOnly」という変数が今回の読み取り専用の変数になります。

変数の詳細から「ブループリント読み取り専用(Blueprint Read Only)」にチェックを入れます。
変数の属性003
これだけで読み取り専用の変数になります。

試しに変数に値をセットしてみようとすると、こんな感じで検索に Set が出てこなくなります
変数の属性011

強引に値をセットしてコンパイルしてみるとこんな感じでエラーがでます。
変数の属性012

エラーの内容はこんな感じになります。
変数の属性013

定数として扱う場合や、

個人的にはインスタンス編集可能やスポーン時に公開と併用してよく使う

と書かれている通り、初期値の値を外部からセットして値を変更できない状態で扱う。
といったようにするのが良いのかなと思いました。

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

| PAGE-SELECT | NEXT