UE4のソースコードを落として読んでみた

  • 166
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

  • 時は2014年。このげいむ業界はUnity帝国の統治により平和な日々(!)を過ごしていた。しかし突然、地底からUE4が・・・(伝記 戦争の歯車の冒頭より) でも実は、UEの歴史はすごく古いデス。
    ※僕も実はアンリアル1の頃からMod作るためにちょこっとエディタ触ってました。ValveのSorceエンジンやQuakeエンジンのエディタより断然使いやすかったなぁ( ´∀`)

GDC2014で歴史的発表がなされた。

【GDC 14】Epic Games、「Unreal Engine 4」にサブスクリプションモデルを導入―月額19ドルで全ての機能が利用可能に gamespark
→ 2015年3月3日から無料になりました\(^o^)/

え?今更オープンソース化?カーマック先生(Quake・Doom開発者・現Oculus CTO)は昔からやってたよ!あれちがう!?安いとは言え金取るのかよ!!今までと変わらんじゃないか!

と発表直後は思いました。

しかしよく調べてみると、

  • 最新のエンジン・グラフィックス技術の実装が見放題
  • ソースコードは自由に改変可能
  • 契約はいつでもやめて良い。その時取得したソースコードはそのまま持っといてもOK。プログラムのアイデアを自分のコードに反映することは全然構わない。(UE以外のプロジェクトへの転用は不可)
  • 対応プラットフォームは、Windows、Mac、iOS、Android、(PS4・XBOX ONEも対応予定?)
  • 売上が発生した場合には総収入の5%のロイヤリティ支払えばOK。良心的(・∀・)

あれ。コレって速攻契約しなきゃ損ってやつじゃんよ?

ってことでVS2013でソースコードビルドするとこまで簡単に説明

ビルドに必要なもの

  • 月々2千円(プライスレス)
  • GitHubのアカウント
  • VS2013(無料版でも可らしい)
  • DirectX SDK
  • 割りとハイスペックなマシン(エンジンのビルド・実行に相当CPUとメモリを使います)
  • ソースコードへの愛と情熱
    ※あと、VisualAssistXとかあると解析がとても捗ります。購入を強くおすすめします。

ビルドまでの簡単な手順

  1. UE4のページにアクセスして、「GET UNREAL」をクリック。アカウント作ります。
  2. 淡々と個人情報を入力していきます。クレジットはInternationalなやつじゃないと使えないので注意。住所の入力方法に癖があるのでネットで調べながら入力。
  3. アカウントが作成出来たら、さっきのトップページから、SignIn します。
  4. GitHubとの連携的な項目があるので説明に沿って設定。
  5. GitHubは、Git(ギット?)っいう大リーナス神が考案したバージョン管理システムを使ってるので、TortoiseGitをインストールするなり、SouceTreeを使うなりしてインストールします。面倒ならZipで落としてきてもOK。
  6. あとは、GitHubの Getting up and running に書かれてるとおりに、dependencies(追加の依存ファイル)を落としてきて、ソースフォルダに上書きする。(Optional/Required_1of2.zip/ Required_2of2.zipの3つ)
  7. エンジンのルートフォルダの、README.mdの手順に沿って、GenerateProjectFiles.bat を実行。(ここでなんかハマった気がするけど忘れた)
  8. VS2013を起動して、フルビルド。しばらくアニメでも見ながらビルドが終わるのを待つ。
  9. ビルドが終わったら実行してみる。

ソースコード解析のポイントなど

  • UE4のGUI部分はC#。エンジン部分はC++で書かれてる。
  • エディタ起動しながらの、C++コードのホットロードの実力を体感せよ!(エディタ起動しながらビルドして即反映の仕組み)
  • UnrealEngine\Engine\Source\Runtime\Engine 以下フォルダがエンジンのコアのソースコード
  • 描画系は、UnrealEngine\Engine\Source\Runtime\Renderer の当たり。
  • シェーダーは独自言語。UnrealEngine\Engine\Shaders 以下の.usfファイルがシェーダーファイル。
  • 話題沸騰のBluePrint(ノードベーススクリプティング環境。旧Kismet)のコードは、UnrealEngine\Engine\Source\Runtime\Engine\Private\Blueprint.cpp らへん。
  • UObject がすべてのクラスの基底クラス。シリアライズ/デシリアライズや、エディタとの連携処理などが実装されてる。
  • Actorは、定期更新処理を持つオブジェクトの基底。キャラとかエフェクトとかギミックはコレを継承して作られてる。
  • オキュラス関連は、UnrealEngine\Engine\Plugins\OculusRift\Source\OculusRift

  • APIドキュメントといいつつDoxygenそのまま。あまり整備されてないからちょっと見づらい。
    UnrealEngine\Engine\Documentation\CHM\API.chm

まとめ

  • 月額2000円でソースコード見放題とかそのへんのエッチなサイトより断然安い\(^o^)/(コラ
  • ソースコードを読むには、ゲームエンジンの構造に関する知識が必要なので、gemsやゲームエンジン・アーキテクチャなど読んで事前に勉強した方が良いかも。ネットにも情報は沢山あります。

  • UE4を自作ゲームで使う・使わないに関係なく、プログラムスキルを磨くために見ないと損。

ってことで簡単に導入まで書いてみましたとさ。

その他ソースコードが読める3D向けゲームエンジン達

無料

有料