Help us understand the problem. What is going on with this article?

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

More than 3 years have 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向けゲームエンジン達

無料

有料

DandyMania
ただのしがないゲームプログラマです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした