古(いにしえ)の技術、固定少数点数とは?

少数を100倍とか10000倍とかして整数で扱う手法です。

浮動小数 3.14 ⇒ 固定少数 314

今のゲーム開発では使わなくなったんじゃないでしょうか。
正確には「固定少数点数」ですが、長いので「固定少数」と呼ぶことにします。

メリット
1.昔のハードウェアでは float や double より int の方が計算が速かった。
2.float や double 特有の誤差が出ない。

デメリット
1.int を float や double に変換するのが面倒。
2.速度の問題なら、今のハードウェアでは float か double で良い。
3.誤差の問題なら、誤差が出ない実数型を使えば良い。

“古(いにしえ)の技術、固定少数点数とは?” の続きを読む

【UE5】レベルエディタにウィジェット(UMG)を表示する方法【c++】

マニアックなことに挑戦する機会があったので、技術共有したいと思います。

ゲームを起動中に UMG を表示するのは簡単ですが、ゲームを起動していないときに UMG をレベルエディタに表示するのは面倒工夫が必要でした。

以下の環境で動作確認しています。

Unreal Engine 5.1.1
Visual Studio 2022
Windows 11 Home

“【UE5】レベルエディタにウィジェット(UMG)を表示する方法【c++】” の続きを読む

【UE5】ウィジェットブループリント(UMG)の変数をバインドすることなく(UPROPERTYを使わずに) C++ で取得する方法【C++】

こちらの記事で、ウィジェットブループリントと C++ のソースコードをバインドする方法を紹介しましたが、バインドできない状況がまれにあります。
そんなときに、ブループリントの変数(ブループリント側で作成した変数)にアクセスする方法を紹介します。

以下の環境で動作確認しています。

Unreal Engine 5.1.1
Visual Studio 2022
Windows 11 Home

“【UE5】ウィジェットブループリント(UMG)の変数をバインドすることなく(UPROPERTYを使わずに) C++ で取得する方法【C++】” の続きを読む

【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき

スペルミスは良くあることなので、気づいたら直せば良いのですが、和製英語は広く社会に認知されているのでどうしようもないのが困ります。

“【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき” の続きを読む

【C++】Visual Studio 2022 で OpenCV 4.8.0 を使えるようにする

OpenCV を使うために、NuGet パッケージをインストールしたんですが、まったく使い物にならないので、GitHub からバイナリパッケージをダウンロードしてインストールする必要がありました。

“【C++】Visual Studio 2022 で OpenCV 4.8.0 を使えるようにする” の続きを読む

【C++】const の扱いが複雑すぎる その2- 言語仕様で決まっていない運用面の問題について

C++ の const の基本的な使い方は以下の記事にまとめています。

今回は言語仕様で明確に決まっていないところ(運用面の問題)について説明します。

“【C++】const の扱いが複雑すぎる その2- 言語仕様で決まっていない運用面の問題について” の続きを読む

【C++】Visual Studio Code で MinGW を使って C++ の boost をコンパイルする

・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#】Closure(クロージャ)って何?

C++ を使っているチームのソースコードを見てるとクロージャという言葉をちょいちょい目にするのですが、C# だと全く見ないですね。
厳密な定義はないっぽい(ぼんやりとした定義はある)ので、人によって認識がバラバラです。
なので、「関数オブジェクトのことっぽいけど、なんでクロージャって言うんだろう?関数オブジェクトとは違うの?」という疑問があったので調べてみました。

“【C++/C#】Closure(クロージャ)って何?” の続きを読む

【UE4 C++】デリゲートの使い方まとめ

この記事では、Unreal Engine の C++ でデリゲートを扱う方法についてまとめています。

執筆時に扱った Unreal Engine のソースコードのバージョンは 4.25.4
プラットフォームは Windows 10 (64ビット版) を対象としています。
ビルドに使用したアプリ(IDE)は Microsoft Visual Studio 2019 です。

以降、Unreal Engine 4 を UE4 と略記します。

“【UE4 C++】デリゲートの使い方まとめ” の続きを読む

【UE4】ブループリントを一切使わずに子ウィジェットを操作する

これはアンリアルエンジンのウィジェットブループリント(以下、WBP)に関する記事です。
使用したアンリアルエンジンのバージョンは 4.25.3
ソースコードのビルドには Visual Studio 2017 を使用しました。

“【UE4】ブループリントを一切使わずに子ウィジェットを操作する” の続きを読む