【UE】c++でUNiagaraParameterCollectionの値を設定する

ParameterCollectionInstance->SetVectorParameterなどで値を設定することが出来ます #pragma once #include "CoreMinimal.h" #include "NiagaraComponent.h" #include "NiagaraParameterCollection.h" #include "EffectControlActor.generated.h" UCLASS(Bl…

【C++】デバックした際変数の中身が見えないときは最適化をオフにすれば見える

C++

pragma optimizeで囲むことで最適化をオフにすることができ変数の中身が見えるようになります #pragma optimize("", off) int myFunc() {...} #pragma optimize("", on)

【UE】c++のTMapでDELEGATEを使用する

DECLARE_DELEGATE_RetValマクロが、テンプレート引数を持つ型(この場合はTMap)を直接的にサポートしていないため、型エイリアスを使用する必要があります /*下記はコンパイルエラー DECLARE_DELEGATE_OneParam(FTMapDelegate, TMap<FString, int32>); */ //型定義 typedef </fstring,>…

【Unity】ReflectionProbe.customBakedTextureを変更しても見た目が反映されないときの対処方法

やり方 ReflectionProbeのenabledをオフ、オンにすると見た目が反映されるようになります public ReflectionProbe reflectionProbe; public Texture tex; private void SetCustomBakedTexture) { reflectionProbe.customBakedTexture = tex; reflectionProbe…

【Unity】VFXGraphでUIエフェクトを使用するとき描画順を調整する

はじめに 環境は Unity 6です やり方 VFXGraphでUIエフェクトを出す時もParticle Systemとやり方は基本変わりません yurinchi2525.com ただし描画順の調整だけやりかたが異なります VisualEffectからRenderを取得することが出来るのでそのRenderのsortingOrd…

【Unity】AssetのPathからプレハブの名前を取得する

Assets/Test/TestPrefa.prefabからTestPrefa.prefabを抽出したいときに使う public string GetPrefabName(string path) { var prefabNames = path.Replace('\\','/').Split("/"); var prefabName = prefabNames[prefabNames.Length - 1]; return prefabName;…

【Unity】ShaderGraphで使用できる半透明オブジェクト含む背景テクスチャ_CameraTransparentTextureを作成、表示できるパスを追加する(RenderGraph版)

はじめに bravememo.hatenablog.com これのRenderGraph版のやり方を紹介します 環境は Unity 6.0.0b12です コード using UnityEngine; using UnityEngine.Rendering.Universal; using UnityEngine.Rendering; using UnityEngine.Rendering.RenderGraphModule…

【Unity】Input Systemで毎フレームなにかしらのInputActionを行う

はじめに 環境 unity 2021.3 コード InputTestFixtureの中身をunity test frameworkを使用しない形に置き換えたものです 入力実行の流れとしてはInputEventPtr作成→InputSystem.Queueに積む→ InputSystem.Update()で入力実行になります using System; using …

【Unity】エディタ拡張 : Toggleの表示をボタン風にする

やり方 EditorStyles.miniButtonを使用することで表示をボタン風にできます using UnityEditor; using UnityEngine; public class TestEditWindow : EditorWindow { private bool isOn = true; [MenuItem("Tools/テストウィンドウ")] public static void Ope…

【Unity】数値を1kみたい省略した表記に変換する

コード using UnityEngine; public static class MathUtility { /// <summary> /// 桁数を取得 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int Digit(ulong num) { System.Text.StringBuilder Sb = new System.Text.StringBuilder(); Sb.Append(num); return Sb.Length; } ///

【Unity】モデルの頂点カラーや法線を確認する

モデルのメッシュをクリックして下記場所で確認できる

【Unity】グラデーションパラメータをHDRに対応させる

やりかた GradientUsageを使用することでHDRカラーに対応させることが出来ます docs.unity3d.com using UnityEngine; public class ExampleScript : MonoBehaviour { //trueにするとHDRカラー //ColorSpaceを変更することで色空間をガンマかリニアに変えるこ…

【Unity】ProfilerのHighlights使用してGPU負荷を確認する

Unity2023.2から追加されたHighlightsを使用することでGPUの負荷を確認することが出来ます 参考 docs.unity3d.com

【Unity】shurikenエフェクトを最初から再生する

Clearを呼ぶことで再生状況をリセットできます using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// Shurikenエフェクト /// </summary> public class TestEffectObject : MonoBehaviour { [SerializeField] ParticleSystem eff…

【Unity】TerainのCollisionをOnにしておかないと塗れない

Terain ColliderをONにしておかないと木の配置等できないので注意する必要があります 処理負荷の軽減のためにOFFにしてたらハマったのでメモ

【Unity】VFXGraphを途中から再生する

Simulateを使用すると途中から再生することができます docs.unity3d.com using UnityEngine; using UnityEngine.VFX; public class Test : MonoBehaviour { public VisualEffect effect; // Update is called once per frame void Update() { if(Input.GetKe…

【Unity】値を正規化する

0~100の間で10だったら0.1を返して欲しいとき等特定の値が指定した範囲のどこにあるか調べるとき使用する コード public float NormalizeValue(float value,float min, float max) { var output = 0.0f; output = (value - min) / (max - min); return Math…

【Unity】VFXgraphのInstancingを設定して大量に配置できるようにする

はじめに 環境はUnity 2023.2です やり方 VFXgraphを大量に配置するとFPSがかなり低下します 下記画像は1000個生成したときのものです。FPSが40前後になってます VisualEffectAssetファイルのInstancing設定をCustom batch capacityかAutomatic batch capaci…

【Unity】ShaderGraphで使用できる半透明オブジェクト含む背景テクスチャ_CameraTransparentTextureを作成、表示できるパスを追加する(URP14版)

はじめに bravememo.hatenablog.com これのURP14版のやり方を紹介します 環境は Unity 2022.2です コード 下記クラスを作成したら前の記事のようにRendererFeatureに登録すれば_CameraTransparentTextureを使用することができます using UnityEngine; using …

【Unity】MaterialのSetBool拡張メソッドを作成する

はじめに MaterialにSetBoolはないみたいなのでSetBoolの拡張メソッドを作成していきます forum.unity.com コード using System.Collections; using UnityEngine; public static class MaterialExtension { public static void SetBool(this Material materi…

【Unity】ShaderGraphでUI用シェーダーを作成する

はじめに Unity2023.2からShaderGraphでUI用シェーダーが作成できるようになったので紹介していきたいと思います 環境は Unity 2023.2です Universal Render Pipeline を使用しています。 やり方 Canvas ShaderGraphを作成することでUI用シェーダーを作成す…

【Unity】ShaderGraphでコメントをつける

はじめに 今回はShaderGraphでコメントつける方法を紹介します 環境は Unity 2023.2です やり方 右クリック→Create Sticky Noteを選択することでコメントが書けるNoteが生成されます ここにコメントを書くことができます Noteを右クリックすることで文字の大…

【Unity】VFXGraphでTimeScaleの影響を受けないようにする

はじめに 今回はVFXGraphでTimeScaleの影響を受けないようにする方法を紹介します 環境は Unity 2022.3です やり方 VisualEffectAsset内にあるIgonreTimeScaleをオンにするとそのエフェクトはTimeScaleの影響を受けなくなります 個別のエフェクトをスローさ…

【Unity】VFXGraphでスクリプトからスロー再生させる

はじめに playRateを使用することでエフェクトの再生速度を変えることができます コード エフェクトを0.5倍速するテストコードです using System.Collections; using UnityEngine; using UnityEngine.VFX; public class TestScene : MonoBehaviour { public …

【Unity】すべての子や孫から指定した名前のオブジェクトを取得する拡張メソッド

はじめに Transform.Findだと子のオブジェクトしか検索できないのですべての子や孫から指定した名前のオブジェクトを取得する拡張メソッドを作成していきます コード using System.Collections; using System.Collections.Generic; using UnityEngine; using…

【Unity】Publicな変数を編集できないようにするCustom Attributeを作成する

はじめに Publicな変数を編集できないようにするReadOnlyなCustom Attributeを作成します スクリプト using UnityEngine; using UnityEditor; public class ReadOnlyAttribute : PropertyAttribute { } [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] p…

【Unity】ShaderGraphでグローバル変数を使用する

はじめに 今回はShaderGraphでグローバル変数を使用する方法を紹介していきます。 環境はUnity 2022.3です Universal Render Pipeline を使用しています。 やり方 スクリプト側でグローバル変数を設定します using System.Collections; using System.Collect…

【Unity】指定したパス内にあるテクスチャのパスをすべて取得する

はじめに 今回は指定しパス内にあるテクスチャのパスをすべて取得する方法を紹介します 環境は Unity 2021.3.25f1です コード Directory.GetFilesでパス内にあるファイルを取得できるのでそれを活用します using System.Collections; using System.Collectio…

【Unity】VFXEventAttributeとcustom spawner blockを使用してスクリプトの値をVFXGraph内で使用する

はじめに スクリプトの値をVFXGraph内で使用する方法を紹介します 環境は Unity 2022.3.1です コード custom spawner block内にあるVFXSpawnerStateのvfxEventAttributeでSet○○を呼ぶことでCustoumAttributeの値をセットすることができます パラメーター名は…

【Unity】VFXGraphでパーティクルをGameObjectに追従させないようにする

はじめに 今回はVFXGraphでパーティクルをGameObjectに追従させないようにする設定方法を紹介します 初期設定だとすべてのパーティクルが追従してしまう 環境は Unity 2022.3.1です 追従させないようにする SpaceをWordに設定させます これで追従しないよう…