PaperSloth’s diary

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

C/C++

UE5 UE_LOGをもうちょっと使いやすくする話

環境 概要 通常のUE_LOGのおさらい UE_LOGをもうちょっと使いやすくするには LogCategoryの追加 UE_LOGを独自Categoryで再定義する 別Moduleでも使用したい場合 まとめ 環境 Unreal Engine 5.3.2 Rider 2023.3.3 概要 実際に記述方法として 先日登壇したUnre…

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

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

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…

UE5 .NET Core関連のビルドエラーあるいは文字化けしたエラーの対処について

目次 環境 エラーについて 環境 ・Unreal Engine 5.1.1 ・JetBraings Rider 2022.1.1結論 .NetCoreをインストールすると解決する場合がある .NET Core 3.1 Runtime (v3.1.32) - Windows x64 Installer のダウンロード エラーについて 新規PCに移行後に、解決…

お知らせ 株式会社インターネット立方体を設立しました

株式会社インターネット を設立しました 会社HPも作ったよ~(3時間の突貫工事なので、不備があったらこっそり教えてね) www.internetcube.coTwitterアカウント twitter.com 主な事業内容 1. PC/家庭用テレビゲームソフトの企画及び制作 2. AR/VR/MR(Mixed Re…

UE4 Material Expressionの気持ちが知りたい

環境 概要 Material Expressionはどこから見れるの? 1. HLSL Codeから追う 2. MaterialExpression.cpp を追う 3. HLSL Codeでは追えないの? まとめ 環境 UE4.27.0 概要 Material Expressionの実装が知りたくて追っていました。 docを読むだけで使い方は分…

XAudio2 で新しいフォルダー (2)を活用する話

概要 環境 新しいフォルダー (2) とは 完成したもの 実装方法について 新規プロジェクトの作成 XAudio2 の初期化 ボイスの再生 呼び出すアプリケーションでの設定 まとめ 概要 この記事は もなふわすい~とる~む Advent Calendar 2020 - Adventar 12/18(18…

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 外部ライブラリの使用方法について

この記事はUnreal Engine 4(UE4) Advent Calendar 2019の22日目の投稿記事です。 Unreal Engine 4 (UE4)のカレンダー | Advent Calendar 2019 - Qiita 目次 環境 結論 概要 Static Libraryの作成 Dynamic-link libraryの作成 UE4でのLibraryの使用方法 Stati…

UE4 C++のバージョンを変更する方法

環境 ・UE4.23.1 ・Visual Studio Comuunity 2019 UE4のUnreal C++環境について リリース時のUE4のUnreal C++はC++11をベースに一部C++14で開発されていました jp docだとC++11, us docだとC++14と記載されています。 Coding Standard | Unreal Engine Docum…

UE4 EditConditionsについて

環境 UE4.23.0 Visual Studio Community2017 EditConditionsについて EditConditions metadataはbool値によって任意のPropertyの編集を有効化/無効化する機能です。例 : 水泳可能フラグが有効なキャラクターのみ水泳速度を設定する場合 UPROPERTY(EditAnywhe…

UE4 Includeファイルが認識されない場合の対処法

環境 UE4.23.0 Visual Studio 2017 Community Includeファイルがエラーになるケース/対処法 例えばキャラクターの生成時にNiagaraEffectをSpawnしたいケース 下記のようなコードを書いてみます。 // SandboxCharacter.h #pragma once #include "CoreMinimal.…

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

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

UE4 Unreal C++でのEnumとStringの変換について

環境 UE4.20.3 Visual Studio 2017 CommunityUnreal C++でのenumについてはこちら papersloth.hatenablog.com Enumから文字列への変換 先ずは列挙型の宣言と定義から。 UENUM(BlueprintType) enum class EConnectionType : uint8 { Multicast, Unicast, NUM …

UE4 PluginのHotReloadについて

環境 UE4.22.1 Visual Studio 2017 Community 概要 通常のProject同様にEditorからCompileボタンを押してHotReload! というわけにはいかず悩んだ人もいるかもしれないと思ったのでメモ書きを残しておきます。 PluginのHotReloadについて まず、EditorにあるC…

UE4 JsonFileの読み込みについて

環境 UE4.20.3 Visual Studio 2017 Community Windows10 概要 とりあえずでこのリポジトリに突っ込んでるJsonLoad関数を文字に書き起こしただけの備忘録です。 github.comUE4のゲーム実行時のオプションやプロパティ等を外部ファイルで編集したいとか 用途は…

SDL SDLの導入について

環境 ・Windows 10 ・Visual Studio 2017 Community ・SDL 2.0.9 SDLとは SDL (Simple DirectMedia Layer) は、Graphic, Sound系のAPIを提供するC言語のマルチプラットフォーム対応のライブラリ。公式サイトは下記 Simple DirectMedia Layer - HomepageForum…

UE4 C++でfpsを取得する方法について

環境 FPSの取得、あるいは計算方法 stat fpsで表示される値 C++側でのfpsの取得について この記事は「Unreal Engine 4 (UE4) Advent Calendar 2018」16日目の記事です。 Unreal Engine 4 (UE4) Advent Calendar 2018 - Qiita 環境 UE4.20.3 FPSの取得、ある…

UE4 不要なComponentを継承先で作成させない方法

環境 ・Unreal Engine4.20.3 不要なComponentを継承先で作成させない方法 例えばCharacterクラスを継承したいけど、Skeletal Meshを使用しないためMeshを継承させたくない場合愚直に実装をするとctor内でこう書くと思います。 AExampleCharacter::AExampleCh…

UE4 無駄なTickを省く方法

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

UE4 C++でTimerを使用した処理の書き方

環境 SetTimer by Eventについて Unreal C++での実装について FTimerManagerについて SetTimerについて タイマーの停止、再開について タイマーの終了処理について 引数付きの関数を渡す場合について 参考資料 環境 ・Visual Studio Community 2017 ・Unreal…

VisualStudio UE4のCode Snippets登録について

環境 Code Snippetsについて UE4のCode Snippetsについて Code Snippetsのインポート方法 Code Snippetsの使い方 参考資料 環境 ・Visual Studio Community 2017 ・Unreal Engine4 git release branch(4.20.2) Code Snippetsについて 簡単に言ってしまうとよ…

UE4 UFUNCTIONの種類について

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

UE4 IDEの変更方法

環境 IDEの変更方法について 環境 UE4.19.1 Visual Studio 2017 Community IDEの変更方法について Unreal C++のIDEはMacではXCode, WindowsではVisual Studioを使用することが多いと思います。IDEの変更方法はEditor PreferencesのSource Codeから変更します…

UE4 C++でGameModeの初期化を行う方法

環境 GameModeで登録する初期値の初期化について 環境 UE4.19.1 Visual Studio 2015 Community GameModeで登録する初期値の初期化について ここの部分の初期化についてです。 C++で作成したGameModeBaseだと編集できないのですが Blueprintだと楽に編集がで…

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

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

UE4 SpawnActorDeferredについて

環境 SpawnActorについて SpawnActorDeferredについて 環境 UE4.19.0 Visual Studio Community 2015 SpawnActorについて SpawnActorを呼び出すにはWorld, 生成位置、回転情報、名前や所有者の登録等のオプションが必要になります。 #include "Engine/World.h…

UE4 C++でのExposeOnSpawnについて

環境 Expose On Spawnとは 環境 UE4.19.0 Visual Studio Community 2015 Expose On Spawnとは Spawn Actor from ClassでActorをSpawnする際に初期化できる変数のことです。 Blueprintで設定する際は下図のように設定を行います。 Expose on Spawnにチェック…

UE4 Unreal C++でデストラクタ

環境 参考文献 UE4でのデストラクタ まとめ 環境 UE4.19.0 Visual Studio 2015 Community 参考文献 下記ドキュメントはUE4を触っている人は必ず目を通しておくべきだと思います。 今回はこのドキュメントを参考にActorの解放処理についてみていきます。 Unre…