Edited at

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

More than 1 year has passed since last update.


はじめに


  • 時は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向けゲームエンジン達


無料


有料