PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

Blueprint

UE5 ちょっと便利かもしれないプログラミングの書き方

環境 概要 if文 / branchノードの削減または単純化 (Min / Max / Clampの利用) アイテムや魔法での回復処理を組むケース ダメージを受けてHPが減るケース Clampについて 配列のwrap around(上限に達したら最初に戻る) マイナス方向の配列のwrap around(下限…

UE5 1フレーム後に処理を実行する方法(Delay Until Next Tick)について

目次 環境 Delay Until Next Tickについて 環境 Unreal Engine 5.1.1 Delay Until Next Tickについて Delay Until Next Tickを語る前に…UE4ではどうやってたの?っていうところ papersloth.hatenablog.comUE4のときはDelay Nodeを配置して Durationに0を設定…

UE4|IUE5 Delegate, EventDispatcherをC++で書く方法

目次 環境 Unreal Engineで使用可能なDelegateについて C++でDelegateを記述する方法 Singlecast delegateの場合(DECLARE_DELEGATE) Multicast delegateの場合(DECLARE_MULTICAST_DELEGATE) Dynamic singlecast delegateの場合(DECLARE_DYNAMIC_DELEGATE) Ev…

UE4 Blueprintで使える便利なフロー制御のノードについて

環境 概要 Flipflop Gate DoN MultiGate まとめ 参考資料 環境 UE4.26.0 概要 Blueprintにはデフォルトで用意されているノードにFlipflop, Gate, DoN, MultiGate等の便利なノードがあります。 C++で同じような処理を組む際には面倒なものでも、こういったノ…

UE4 KeyConfigの作成、Keyの変更/追加/削除について

環境 概要 Action/Axis Mappingsの簡単なおさらい Input Settingsについて Input Settingsからアクセス可能なノードの基本的な使い方について まとめ 環境 UE4.25.3 Windows 10 Pro 概要 以前にこんな記事を書いてKeyConfig用のサンプルを添えたPluginを作成…

UE4 ダメージの差分だけ徐々に減るHPゲージの実装

環境 概要 Widgetの実装 HPを持ったキャラクターのBlueprintの実装 まとめ 環境 UE4.25.3 概要 こういうやつを作ります (録画に失敗して緑のノイズが入っちゃいましたが、イメージは伝わるかと) HPゲージの実装方法については前々回の記事を参照いただければ…

UE4 大雑把に画面内に特定のActorが入っているかを判定

環境 概要 画面内判定の実装方法 case1 直近に描画されたかどうかで判定(正確さ : 更新頻度による) case2 カメラの位置/向きとActorの位置を元に特定に閾値内かどうかで判定(正確さ : そこそこ大雑把) case3 Screen座標変換時のノードで判定(正確さ : 最も大…

UE4 敵の頭上に表示されるHPバーの実装方法

環境 完成イメージ 実装方法 Widgetの用意 敵のBlueprintにWidgetを設定 HPバーの更新処理 参考資料 環境 UE4.25.3 完成イメージ 実装方法 Widgetの用意 まずはHPバーとなるWidgetを用意します。 今回は「WBP_HealthGauge」という名前でWidgetを作成しました…

UE4 ParticleDataを使用したNiagaraとBlueprintの連携

環境 NiagaraEmitterの情報にBluerprintからアクセスする方法 Niagara側の設定 data export用のModule作成 Niagara Systemの作成 Blueprint側の設定 まとめ 環境 UE4.24.3 (解説は基本的にすべて4.25です) UE4.25.2 NiagaraEmitterの情報にBluerprintからア…

UE4 LockOnCursorの実装

環境 概要 ロックオンカーソル実装(HUD編) ロックオンカーソル実装(Widget編) まとめ 参考資料 環境 UE4.25.1 概要 UE4でのロックオンの記事はちらほら見かけるけど、ロックオンカーソルの記事は少ないというのを見て書き始めました。 本記事ではロックオン…

UE4 KeyConfig作成用のPluginを公開しました

目次 概要 初期のバージョンでの実装 実装概要 追記: 大幅に仕様を変更し、サンプルプロジェクトを追加 参考資料 概要 UE4でのKeyConfigの作成の参考になるPluginを公開しました。 鋭意開発中でまだまだ機能不足が目立ちます。ProjectDirのPlugins以下に以下…

UE4 SceneCaptureComponent2DでTextureStreamingが走らない場合の対処法

目次 環境 概要 問題の再現 回避方法 [追記] Blueprintで動作させる 参考資料 環境 UE4.25.0 Preview7 Visual Studio Community 2019 概要 SceneCaptureComponent2Dを使用してCapture Every Frameフラグを有効化しているにも関わらず Capture先でTextureStre…

UE4 ノードの整理(ルートを直線にする方法)

目次 環境 概要 Blueprint編 Material Editor編 Niagara Editor編 まとめ 環境 UE4.25.0 Preview2 概要 以前にもBlueprint TipsのスライドでStraighten Connectionsの紹介をしましたが 他にも便利な機能があるのでそちらを紹介していこうと思います。 Bluepr…

UE4 Blueprintでdelegateを引数で使用する方法

環境 UE4.23.0 Delagateとは Blueprintから使用するDelegateではSetTimer by EventやEvent DispatcherにBindする際に使用するEvent等があります。 今回はSet Timer by Eventで例を作成していますが Event DIspatcherを使用した場合でも同様にBindすることが…

UE4 1フレーム処理をスキップさせる方法

環境 UE4.23.0 処理を1フレームスキップさせる方法 結論からいきましょう。 DelayノードをDuration 0で配置するだけで実装ができます。 実験その1 Sequence Sequenceノードは上から順に実行されていくものでしたね。 ここではThen 0で1フレーム後に"Delay"と…

UE4 Delay nodeと実行順序について

環境 : UE4.23.0目次 Delayの挙動のよくある勘違いについて ケース1 (Delay) ケース2 (Delay + Seqeuence) 処理を遅らせたい場合 -> Macroとして処理する Delayの挙動のよくある勘違いについて Delayを挟んだはずなのに何故か処理が遅れて実行されないという…

UE4 Blueprintで2次元配列を作成する方法

環境 UE4.22.2 Blueprintでの2次元配列の作成方法 先に結論だけを書くと 配列を持った構造体を用意 その構造体を配列で定義 上記の2ステップでできます。 コードで示すと下記になります。 USTRUCT(BlueprintType) struct FIntArrayElement { GENERATED_USTRU…

UE4 Actor間の距離の取得について

環境 距離の計算方法 Get ** Distance To GetDistanceTo GetHorizontalDistanceTo GetVerticalDistanceTo GetSquaredDistanceTo 環境 UE4.20.3 距離の計算方法 数学的な計算方法は調べれば沢山出てくるので割愛してUE4での使い方の話をします。C++側であれば…

UE4 無駄なTickを省く方法

環境 Tickが動作しているActor一覧の確認 Tickを止める方法 ①Blueprintの場合 ②C++の場合 追記 参考資料 環境 ・Unreal Engine4.20.3 Tickが動作しているActor一覧の確認 Console Commandの「dumpticks」でTickが動作しているActorやComponentの一覧が取得で…

UE4 Characterの多段ジャンプについて

環境 多段ジャンプの実装方法 環境 ・Unreal Engine4.20.3 多段ジャンプの実装方法 Characterクラス内に「Jump Max Hold Time」と「Jump Max Count」というパラメーターがある。 GitHubのログを見た限りではUE4.2の頃からあるようだ。 CharacterMovementComp…

UE4 UFUNCTIONの種類について

環境 概要 C++関数とBlueprintの連携について BlueprintCallable BlueprintPure BlueprintImplementableEvent BlueprintNativeEvent その他 Categoryの階層構造について 参照について 空のUFUNCION()について コードスニペットについて 参考資料 環境 ・Visu…

UE4 Fade処理について

環境 FadeIn, Outについて UE4での表現方法について FunctionLibraryに登録してFade終了後のCallback関数も登録可能にする まとめ 環境 UE4.19.2 FadeIn, Outについて FadeIn:画面が徐々に明るくなる演出 FadeOut:画面が徐々に暗くなる演出Level切替時やカ…

UE4 C++で複数実行ピンの作成

環境 概要 enumを使った関数のおさらい enumを使った複数実行ピンの作成方法 簡単な応用 環境 UE4.19.1 Visual Studio 2015 Community 概要 いくつかやり方があって、今回は一番簡単でお手軽なenumを使ったやり方を紹介します。 enumを使った関数のおさらい …

UE4 NiagaraとBlurprintの連携

環境 概要 Niagaraと連携するためのノード BlueprintからNiagaraを生成する 既存のBlueprintにNiagaraをアタッチする 環境 UE4.19.0 概要 今回はNiagaraActor, NiagaraComponentについても軽く触れます。前回と前々回の記事も参考にしてください。 前回 pape…

UE4 マウスカーソルを自作アイコンにする

環境 マウス座標の取得 マウスカーソルの変更 マウスカーソルの追従 参考資料 おまけ 環境 Unreal Engine 4.18.3 マウス座標の取得 Widgetでマウス座標を取得するには下記の2つのノードがあります。 ・Get Mouse Position ・Get Mouse Position Scaled by DP…

UE4 リフレクションに指定できる型について

環境 概要 Blueprintに公開可能な型 公開可能なプリミティブ型 公開可能なUE4の型 公開可能な構造体、列挙型 公開可能なcontainer Blueprintに公開不可能な型 コード全容 環境 Unreal Engine 4.17.2 概要 Blueprintに公開可能な型と公開できない型を書いてい…

UE4 ヒットストップの実装について

環境 Time Dilationについて Custom Time Dilationとは Global Time Dilationとは ヒットストップの実装 ※1点修正があったため追記しました。(2018/01/31 1:22) 詳しくはページ下部をご覧ください。 環境 Unreal Engine 4.17.2 Time Dilationについて ヒット…

UE4 Editorから外部アプリケーションの実行

この記事はUnreal Engine 4 (UE4) その2 Advent Calendar 2017の17日目の記事です。 Unreal Engine 4 (UE4) Advent Calendar 2017 - Qiita 目次 目次 環境 コードの記述 Editorからの実行 問題点 まとめ 環境 ・Visual Studio Community 2015 ・Unreal Engin…

UE4 ゲーム内で動画を再生する方法

目次 ・動画再生可能なフォーマット ・動画再生を行うには ・まとめ 環境 ・Unreal Engine4.17.2 ・Windows10 ※Mac, Linux, iOS, Android等の確認は行っていません。 動画再生可能なフォーマット Platformごとに使用可能なフォーマットは公式ドキュメントに…

UE4 検証で使用する際のBlueprint運用

目次 ・デバッグ用、無効なノードを設定する ・検証用のノードを用意する ・まとめ 環境 ・Unreal Engine4.17.2 デバッグ用、無効なノードを設定する Unreal C++で開発を行っている際はプリプロセッサの定義済みマクロを使用してDebug用のコードや検証用のコ…