この記事はUnreal Engine 4 Advent Calender 2018の1日目の記事です。
1日目で恐縮ですが、この記事は完全にダークサイドUE4な内容となっておりますので、UE4初心者が読むことを全く考慮しておりません。読む際には十分承知の上で読み進めてください。
UE4ではエンジンのソースコードがGitHub上に公開されているため、自分でリポジトリーからソースコードを拾ってきて、それをビルドすることでエンジンをいくらでもカスタム可能な事がウリのひとつとなっています。
が、世の中にはエンジンを改造するにはちょっと荷が重いプロジェクトが大半で、エンジン改造されたリポジトリーを共有するというのはかなりインフラが整ったゲーム会社でなくては厳しいという現実があります。
実際UE4のプロジェクトでもゲーム、VR、映像と関わってきましたが、エンジンを改造せずに、uprojectが入っているフォルダー以下を共有するという現場もそこそこありました。大規模なゲーム開発をしている現場からすれば「そんなのエンジンに少し手を入れればイーじゃん」くらいの感覚かもしれません。
しかし!
なぜかエンジンを改造したい!!
バグをどうしてもなんとかしなくてはならない!!!
といった、状況がそこそこ大量にあります。
もし、エンジンを改造せずにエンジンに手を入れる方法があるとすれば難易度別の選択肢としては以下のようなものがあります。
難易度 Lv1 : エンジン側のクラスを継承し、関数をオーバーライドする
難易度 Lv2 : エンジンのソースコードをゲームモジュールにコピーして利用する
難易度 Lv3 : エンジンモジュールを丸ごと上書きし、ゲームモジュール側で乗っ取る
Lv1 は特に改造でもなんでもないですが、エンジン側のクラスの関数がオーバーライドできるのならこれだけでも出来る事はそれなりにあります。
Lv2 はそこそこコアなUE4使いであればやったことがある人もいると思います。基本的にはこの内容を期待していた人が多いのではないかと思います。
Lv3 は未知の領域です。ダークサイドです!今回はこれについてを取り上げます!そもそも乗っ取るとはどういうことなのか…?
それでは早速詳しい話へといきましょう。
今回の検証は全てEpic Games LauncherからDLした、UE4.21.0にて検証しております。
尚、今回の結果を実際に試してみて問題が発生したとしても、いかなる責任も負いかねますのでご了承ください。
続きを読む