本稿では、Unreal Engine(以下 UE) 5 のサードパーソンテンプレートに含まれているアニメーションブループリント(ABP_Manny)の内容を詳しく読み解いていきます。
アニメーションブループリントは、AnimGraph とイベントグラフのふたつの機能を持っていますが、本稿では AnimGraph のみ扱います。
環境は以下。
Unreal Engine 5.3.1 および 5.4.2
Windows 11 Home
Visual Studio 2022
本稿では、Unreal Engine(以下 UE) 5 のサードパーソンテンプレートに含まれているアニメーションブループリント(ABP_Manny)の内容を詳しく読み解いていきます。
アニメーションブループリントは、AnimGraph とイベントグラフのふたつの機能を持っていますが、本稿では AnimGraph のみ扱います。
環境は以下。
Unreal Engine 5.3.1 および 5.4.2
Windows 11 Home
Visual Studio 2022
本稿では、UE5 C++ の LineTraceMultiByProfile 関数を使った際に、私が分かりにくいと感じた点について調査し、分かったことを共有したいと思います。
Unreal Engine の C++ の使い方を習得している方が対象となります。
動作環境
Visual Studio 2022
Unreal Engine 5.4.1
Windows 11 Home
少数を100倍とか10000倍とかして整数で扱う手法です。
浮動小数 3.14 ⇒ 固定少数 314
今のゲーム開発では使わなくなったんじゃないでしょうか。
正確には「固定少数点数」ですが、長いので「固定少数」と呼ぶことにします。
メリット
1.昔のハードウェアでは float や double より int の方が計算が速かった。
2.float や double 特有の誤差が出ない。
デメリット
1.int を float や double に変換するのが面倒。
2.速度の問題なら、今のハードウェアでは float か double で良い。
3.誤差の問題なら、誤差が出ない実数型を使えば良い。
マニアックなことに挑戦する機会があったので、技術共有したいと思います。
ゲームを起動中に UMG を表示するのは簡単ですが、ゲームを起動していないときに UMG をレベルエディタに表示するのは面倒工夫が必要でした。
以下の環境で動作確認しています。
Unreal Engine 5.1.1
Visual Studio 2022
Windows 11 Home
以下の環境で動作確認しています。
Unreal Engine 5.1.1
Visual Studio 2022
Windows 11 Home
“【UE5】ウィジェットブループリント(UMG)の変数をバインドすることなく(UPROPERTYを使わずに) C++ で取得する方法【C++】” の続きを読む
スペルミスは良くあることなので、気づいたら直せば良いのですが、和製英語は広く社会に認知されているのでどうしようもないのが困ります。
OpenCV を使うために、NuGet パッケージをインストールしたんですが、まったく使い物にならないので、GitHub からバイナリパッケージをダウンロードしてインストールする必要がありました。
C++ の const の基本的な使い方は以下の記事にまとめています。
今回は言語仕様で明確に決まっていないところ(運用面の問題)について説明します。
・Visual Studio を無料で使える人数を超えてしまう
・エンタープライズ企業に当てはまる
などの理由で、会社や派遣先のクライアントが Visual Studio Professional のライセンスを用意してくれない場合に Visual Studio Code を使うことになります。
C# はわりと良い子なのですが、C++ のセットアップはすこぶる面倒です。
ググっても英語サイトや古い情報、不十分な情報の断片ばかりヒットするので、Cygwin や Linux 環境でコンパイルした経験がない人にはハードルが高いと思います。
個人利用とか、特にこだわりがないなら Visual Studio を使った方が断然良いです。
Visual Studio Code で C++ の boost が使えるようになるまで、2時間くらい格闘したので、セットアップ手順を書きます。
“【C++】Visual Studio Code で MinGW を使って C++ の boost をコンパイルする” の続きを読む
C++ を使っているチームのソースコードを見てるとクロージャという言葉をちょいちょい目にするのですが、C# だと全く見ないですね。
厳密な定義はないっぽい(ぼんやりとした定義はある)ので、人によって認識がバラバラです。
なので、「関数オブジェクトのことっぽいけど、なんでクロージャって言うんだろう?関数オブジェクトとは違うの?」という疑問があったので調べてみました。