fc2ブログ

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

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

2022年11月 | ARCHIVE-SELECT | 2023年01月

| PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 BPのノード検索で「カスタムイベントを追加(Add Custom Event)」を呼び出す(t.キー)

BPのノード検索で「カスタムイベントを追加(Add Custom Event)」を呼び出す方法です。

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

・【UE4・UE5】〈Tips〉諦めないで!分かりづらいブループリントノード集&知ってると幸せになれる小技
https://namiton.hatenablog.jp/entry/2022/09/15/144430#%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88%E3%83%87%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88

参考サイトさんによると「t.」キーを押すことで「カスタムイベントを追加(Add Custom Event)」ノードを直ぐ呼び出せるようです。

まずは検索を開きます。
イベントの検索000

「t.」と入力します。
イベントの検索001
するとこんな感じで「カスタムイベントを追加(Add Custom Event)」だけがリストアップされました。
「t.」で文字列の最後尾を引っかけるというのは思いつかなかったです。

知らなかった便利な機能がかなりあるので覚えて使っていきたいですね。

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

≫ EDIT

UE5/UE4 BPのノード検索で入力イベントを呼び出す(@キー)

BPのノード検索で入力イベントを呼び出す方法です。

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

・【UE4・UE5】〈Tips〉諦めないで!分かりづらいブループリントノード集&知ってると幸せになれる小技
https://namiton.hatenablog.jp/entry/2022/09/15/144430#%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88%E3%83%87%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88

参考サイトさんによると「@」キーを押すことで入力イベントを直ぐ呼び出せるようです。

まずは検索を開きます。
イベントの検索000

「@」と入力します。
イベントの検索002
するとこんな感じで入力イベントだけがリストアップされました。

というわけでこの「@」で出てきたものを選択します。
イベントの検索003
するとこんな感じで入力イベントノードができます。

このノードを選択して詳細から実行したい入力を選択します。
イベントの検索005
この手順がかなり早そうな感じだとおもいます。

知らなかった便利な機能がかなりあるので覚えて使っていきたいですね。

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

≫ EDIT

UE5/UE4 BPで連想配列型のMapノード(TMap)を使う(Add、Remove、Find、Keys、Values)

BPで連想配列型Mapノード(TMap)を使う方法です。
結構初歩的なことですが少し探してしまったのでメモです。

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

・Blueprint Map ノード
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/Blueprints/UserGuide/Maps/MapNodes/

実際の使い方についてはこちらを参考にさせていただきました。

・連想配列(Map)型について レベル【★★】
https://kinnaji.com/2020/12/28/tmapandtset/#%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97%EF%BC%88Map%EF%BC%89%E5%9E%8B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%80%80%E3%83%AC%E3%83%99%E3%83%AB%E3%80%90%E2%98%85%E2%98%85%E3%80%91

詳しい説明は上記サイトさんに書かれているのでこちらは手順と必要な情報のみメモしておきます。

まずは「Map型の変数」を作成します。
BP_Map000.jpg
Mpas という名前で変数を作成しました。

変数の型としては「Key」を「FName」で。「Value」を「Integer」で設定しました。
BP_Map001.jpg

あとは実際に使っていくだけになります。

「Add」ノード。
BP_Map005.jpg
指定した「Key」で「Value」を配列に追加します。

「Remove」ノード。
BP_Map006.jpg
指定した「Key」の要素を配列から削除します。

「Find」ノード。
BP_Map004.jpg
「Key」で該当した要素から「Value」を取り出します。
「Key」が配列になかった場合は「false」を返します。

最後に「ForEeachLoop」などですべての要素を調べる方法ですが、
「Array(TArray)」型とは異なり、「Key」のみか「Value」のみを取り出して回すようです。

「Values」ノード。
BP_Map002.jpg
配列に含まれる「Value」のすべてを配列で取得します。

「Keys」ノード。
BP_Map003.jpg
配列に含まれる「Key」のすべてを配列で取得します。

と、たぶんこれだけ覚えておけば通常の使い方としては問題ないのかなと思います。

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

≫ EDIT

UE5/UE4 指定した最小値と最大値の範囲内に値を制限する(Clamp)

指定した最小値と最大値の範囲内に値を制限する方法です。

公式ドキュメントはこちら。
マテリアルの計算式なのですが、普通にBPにもあるノードなのでドキュメントとしてはこちらでも大丈夫そうです。

・Math 表現式
https://docs.unrealengine.com/4.26/ja/RenderingAndGraphics/Materials/ExpressionReference/Math/

指定した最小値と最大値の範囲内に値を制限するには「Clamp」ノードを使います。
値のクランプ000
「Clamp」ノードは「Integer」と「Float」両方が存在します。
「Value」には制限を掛けたい値を指定します。
「Min」には最小値を指定します。
「Max」には最大値を指定します。
「Return Value」は「Value」が「Min <= Value <= Max」に制限された値を返します。

というわけで実際にやってみました。
値のクランプ001
こんな感じに入力の値を「365.0」で最小値を「10」最大値を「100」として値を制限してみます。

結果はこんな感じに。
値のクランプ002
無事入力された値「365.0」が「Clamp」ノードによって「100.0」に制限された結果になりました。

結構お世話になるノードだと思うので覚えておきたいですね。

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

≫ EDIT

UE5/UE4 ビューポートでの選択状態を解除する(CTRL+クリック)

ビューポートでの選択状態を解除する方法です。

初歩の初歩なのですが、普通に忘れていたので一応もしもの時のためのメモということで…。

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

・ビューポートの操作方法と表示設定[UE5,UE4]
https://zenn.dev/daichi_gamedev/books/unreal-engine-5/viewer/viewport#アクタの選択操作

選択:左クリック
ビューポートで複数選択:Ctrl+クリック or Shift+クリック
ビューポートで範囲選択:ビューポートでCtrl + Alt + ドラッグ
アウトライナで複数範囲選択:Shift + クリック
アウトライナで追加選択:Ctrl + クリック
選択解除:選択されたアクタをCtrl + クリック


上記説明の通り「選択されたものをCTRL+クリック」で選択状態を解除できるようです。

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

≫ EDIT

UE5/UE4 エディタを再起動時した時に終了時に開いていたアセットを復元する(Restore Open Asset Tabs on Restart)

エディタを再起動時した時に終了時に開いていたアセットを復元する方法です。

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

・[UE4]エディタ起動時に便利な設定について
https://historia.co.jp/archives/16550/

エディタを再起動した時に、前回開いていたアセットの状態を復元するといった機能になります。

メニューの「エディタの環境設定」を選択し、
「一般」の「ロード&保存中」の中にある「再起動時にアセットを開くタブを復元」にチェックを入れます。
前回終了時に開いていたアセットを復元000
こうすることで、再起動時に以前のアセットの状態になるようにアセットが開かれます。

注意点としては
・終了時にアセットを開いたまま終了すること(メインのエディタウィンドウを閉じて終了する)
・開き過ぎていると再起動時にすべてのアセットを開きに行くので時間がかかること。
といったところでしょうか。

結構便利な機能ではあるので、効率がよくなる感じで使っていきたいですね。

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

≫ EDIT

UE5 コレクション(Collections)に「Developers」フォルダのアセットが表示されない場合の対処方法(フィルタ(Filters))

コレクション(Collections)に「Developers」フォルダのアセットが表示されない場合の対処方法です。

こんな感じで「Developers」フォルダにアセットを作成しました。
ローカルコレクションにDevelopers000

上記の「Developers」フォルダのアセットをコレクション(Collections)登録した場合にこんな感じになってしまいました。
ローカルコレクションにDevelopers001
登録された数は増えているのに何も見えない…。

解決方法としては「フィルタ(Filters)」を設定することで見えるようになるので設定してみます。
アセット一覧の左上の赤枠のマークをクリックして、「他のデベロッパー(Other Developers)」にチェックを入れます。
ローカルコレクションにDevelopers002

言語設定が英語だと「Other Developers」ですね。
ローカルコレクションにDevelopers003

するとこんな感じで「Developers」フォルダのアセットもコレクションで表示されるようになりました。
ローカルコレクションにDevelopers004

UE5.1の前まではフィルタを設定しなくても表示されていたような気がするのですが…。
気の所為かもしれないのですがちょっと探してしまったので一応メモということで書いてみました。

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

≫ EDIT

UE5 アニメーションブループリント(Animation Blueprints)のステートマシン(State Machines)で「Entry」の直後にコンジット(Conduit)を使う(Allow Conduit Entry States、Conduit)

アニメーションブループリント(Animation Blueprints)のステートマシン(State Machines)で「Entry」の直後にコンジット(Conduit)を使う方法です。

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

・猫でも分かる UE5.0, 5.1 におけるアニメーションの新機能について【CEDEC+KYUSHU 2022】
https://www.docswell.com/s/EpicGamesJapan/ZY3PDK-UE_CEDECKYUSHU2022_UE5Animation#p129

Conduits Entry States Entry に Conduit を接続可能に
ステートマシンの入り口で複数の分岐(判定)が可能に
State Machineの Allow Conduit Entry States を有効に (デフォルト無効)


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

・アニメーションブループリント(Animation Blueprints)
https://docs.unrealengine.com/5.0/ja/animation-blueprints-in-unreal-engine/

・ステートマシン(State Machines)
https://docs.unrealengine.com/5.0/ja/state-machines-in-unreal-engine/

・ステートマシンの概要
https://docs.unrealengine.com/4.27/ja/AnimatingObjects/SkeletalMeshAnimation/StateMachines/Overview/

UE5.1 以前ではステートマシンの「Entry」の直後に「コンジット(Conduit)」を配置することができませんでした。
EntryでConduitノードを使う000
こんな感じで「Entry」の直後に「コンジット(Conduit)」を配置してみます。

コンパイルをするとこんな感じでエラーになります。
EntryでConduitノードを使う001

「Entry」の直後に「コンジット(Conduit)」を使うためには
ステートマシンの詳細で「Allow Conduit Entry States」にチェックを入れます。
EntryでConduitノードを使う002
まずステートマシンを選択して詳細を確認します。

「Allow Conduit Entry States」にチェックを入れることで「Entry」の直後に「コンジット(Conduit)」を使うことができます。
EntryでConduitノードを使う003
これでコンパイル時にエラーが出なくなりました。

ステートマシンの直後で分岐はゲームを作る際には結構起きると思うので
今回の「コンジット(Conduit)」を使えるようになったのは純粋に嬉しいかなと思います。

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

≫ EDIT

UE5/UE4 2022/12 の無料マーケットプレイスコンテンツと永続コンテンツ(Hand Painted Environment | Evgeniya Yaremko)

2022/12 の無料マーケットプレイスコンテンツと永続コンテンツのメモです。

公式情報はこちら。

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

無料コンテンツについては期日がすぎると無料でなくなるので公式情報や他のサイトさんを見たほうが良いかと思います。
こちらでは永続コンテンツについてのメモを残しておきます。

・Hand Painted Environment | Evgeniya Yaremko
https://www.unrealengine.com/marketplace/ja/product/hand-painted-environment
HandPaintedEnvironment000.jpg

作成しているのが見下ろし視点でも主観視点の RPG であっても、
このパックはゲームに追加できる幅広い種類の植物、建物、障害物、遺跡、プロップを提供します。

You can use "Hand Painted Environment" to create any type of game you wish. It could be set in first person or top-down and will help you to construct levels for games in any genre. This pack contains a wide range of vegetation, buildings, obstacles, ancient ruins and other props. Can be used on mobile platforms. Includes summer and winter variants of all textures.
(Hand Painted Environment を使って、どんなタイプのゲームでも作ることができます。
一人称視点やトップダウンの設定も可能で、あらゆるジャンルのゲームのレベルを構築するのに役立つことでしょう。
このパックには、植生、建物、障害物、古代遺跡、その他の小道具が豊富に含まれています。
モバイルプラットフォームで使用可能。すべてのテクスチャの夏と冬のバリエーションが含まれています。)

とあります。

Physically-Based Rendering: Yes
Texture Size: most textures have resolution 2048x2048, some - 1024x1024.
Collision: Yes - automatically generated;
Average Triangle count - all models are low poly, the maximum number of triangles within 1500;
LODs: No;
Number of Meshes: 84;
Number of Materials: 92;
Number of Textures: 202;
Intended Platforms: Windows, IOS, Android;
Documentation Included: No;


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

≫ EDIT

UE5/UE4 ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットをサブツリー(Subtree)として実行する(Run Behavior)

ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットをサブツリー(Subtree)として実行する方法です。

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

・Behavior Tree ノードのリファレンス:タスク
https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeNodeReference/BehaviorTreeNodeReferenceTasks/

・ビヘイビアツリーの概要(Behavior Tree Overview)
https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreesOverview/

・ビヘイビアツリーのクイックスタートガイド
https://docs.unrealengine.com/5.0/ja/behavior-tree-in-unreal-engine---quick-start-guide/

ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットを実行するには
「Run Behavior」ノード
を使います。
RunBehavior001.jpg

Run Behavior Task ノードを使用すると、
サブツリーを実行スタックにプッシュすることで別のビヘイビアツリーを実行することができます。
ただし、サブツリー アセットは実行時に変更できないという制限があります。
この制限は、親ツリーに挿入されるサブツリーの Root レベル デコレーターのサポートによって発生します。
また、実行中のツリーの構造は実行時に変更できません。


設定は簡単で「詳細」にある「Behavior Asset」を指定するだけになります。
RunBehavior003.jpg
ここを設定するだけで、ビヘイビアツリー内で他のビヘイビアツリーを実行することができます。

例えばこんな感じのビヘイビアツリーを作成します。
RunBehavior000.jpg
「Run Behavior」にはまだ何も設定していない状態です。
このノードに他のビヘイビアツリーを設定してあげます。

するとこんな感じで他のビヘイビアツリーアセットがサブツリーとして実行されます。
RunBehavior004.jpg
設定したアセット名がノードに表示されるようになりました。

ちなみにこの「Run Behavior」ノードによるサブツリーの実行ですが、
実行するビヘイビアツリーの「Root」ノードの直下にデコレーターが設定されていると正常に動作しないようです。
RunBehavior002.jpg
こんな警告のようなメッセージがでます。

気になったので試しにやってみました。
まずはこんな感じの「Root」直下にデコレーターが設定してあるビヘイビアツリーを用意しました。
RunBehavior006.jpg

これを「Run Behavior」に設定してみるとこんな感じになりました。
RunBehavior005.jpg
サブツリーの「Root」直下のデコレーターが自動で「Run Behavior」にもくっつくので正常に動作する。
ということなんでしょうか…。
てっきりエラーになると思っていたのでちょっと謎です…。

とまあ、「Run Behavior」ノードは処理の切り分けや、
同じような動作をさせる場合の関数みたいな使い方もできるので結構使っていけるんじゃないかなと思います。

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

| PAGE-SELECT | NEXT