【技術本】C++でつくるUnrealEngineアプリ開発
https://amzn.to/4nQrAie
【技術本】C++でつくるUnrealEngineアプリ開発
へポスト
UE4で開発を進める上で、ブループリントでは賄えない高速処理や、各コンポーネントの機能拡張をしたい場合は、C++による実装が必要になってくる。
UE4で主に使用するC++は、UE独自に拡張されたものであり、利用するにはきちんと様式に従わないと正しく効果的に利用できない。
(例:BluePrintから呼び出せるようにしたり、ガベージコレクションの対象にしたりする場合は、マクロを呼び出す必要がある。テンプレートで自動生成されたクラスのメソッドにもいくつか注意点もある。)
これらを的確に使うための指南をまとめたのが本著。
最終的にプラグインを独自制作できるまでを目標に、一部のUEの基本クラス、APIの使い方を解説してくれている。
基本的なデータ型、マクロの解説などから、非同期・並列処理、スレッドセーフ、標準ライブラリなどとの連携まで言及してくれている。
UE4の膨大な機能、クラス群の中から、一部を掻い摘んで紹介しているので物足りなさは否めないが、これからUE4でC++を使っていこうとする人には、現時点(2018/06)ではUnityより断片的かつコーディングに関する情報量が少ないなかで正解の技術を今後蓄積していくための良い足掛かりにはなると思う。
C++はそこそこ知っていて、UE4で初めてC++導入するレベルの人には、満足する内容だと思います。
若干の駆け足感がぬぐえないのと、他の方もおっしゃってるブループリントイベントグラフの画像の小ささが気になりました。
-----------------------
以下のことを学ぶことができる。
・UE C++オブジェクト
クラス、構造体、列挙型
・マクロ
UCLASS():UEライブラリと連携させる
GENERATED_BODY()
・プロパティ
UPROPERTY():
ブループリントやレベルエディタから利用できる設定やアクセスコントロールを定める
ガベージコレクションの対象にする
・コールバック
動的マルチキャストデリゲート
BluePointイベント
BluePoint関数
・GC対象にするインスタンスの生成方法、スマートポインタ:安全なメモリ管理
・UE C++ライブラリ
UObject
AActor
アクタ定義
アクタコンポーネントの定義、生成の実装
アセットからオブジェクトの読み込み
・非同期・並列処理
スレッドプール
TaskGraph
ThreadPool
非同期
Async関数
AsynkTask関数
PararelFor関数
ロック
・標準C++との連携
標準ライブラリ、既存ソース、静的ライブラリ、動的ライブラリの利用
・プラグインの作成方法
・プラグイン作成例
ファイル入出力プラグイン
OpenCV利用プラグイン
レベルエディタのモード追加プラグイン
以上。
へポスト