パソコン実験工房PC Watch出張所 - Supported by パソコン工房
Unreal Engine 4に最適なマシンと開発のはじめ方
~公式推奨PCを4モデル発売
2018年2月16日 11:00
特定用途において、コストパフォーマンスに優れたPCとはどのようなものか、そしてそれを取り巻く周辺機器の必要性を、専門家やライター、およびじっさいにPCを製造するパソコン工房、PC Watchがともに検討。現実にPCを製品化していくとともに、周辺機器およびその活用を幅広く紹介するこのコーナー。
今回は、ゲーム製作統合開発環境として定番のEPIC GAMES製「Unreal Engine 4」(以下UE4)に向けた最適なマシンを探る。本企画ではEPIC GAMES JAPANサポート・エンジニアの岡田和也氏にご協力いただいた。
前編今後プロとしてゲーム制作に関わりたい人向けのUnreal Engine 4マシン)では、UE4の簡単な概要説明と特徴、そして開発で必要になりそうなPCのスペックを討論したが、後編ではその結果をもとに、パソコン工房にPC 3種類を用意していただき、岡田氏にその性能について検証していただいた。
GPUはいずれもGeForce GTX 1060
簡単に前回のおさらいをしておこう。まずCPUについては、多くのキャラクターを配置してAI処理をさせたり、物理演算が多発するようなシーンで性能が必要となっている。メモリは、高解像度テクスチャを読み込んだり、Photoshopなどのほかのソフトと併用するさいに必要になる。ストレージも、UE4のプログラム自体やアセットの読み込みが高速なSSDが良いとのことだ。
気になるGPUについては、最終的に開発する成果物が想定しているGPUよりも高性能なものを用意しておいた方がいい、とのことだ。UE4は基本的にリアルタイムレンダリングをするエンジンであるため、配布先の再生環境を考慮すると、高望みはせずミドルクラスのGPUでもある程度快適に動作することを想定したほうが良い。よって、今回用意する3モデルはすべてGeForce GTX 1060を採用した。
今回、パソコン工房に用意していただいたのは以下の3モデルとなっている。
検証モデルA | 検証モデルB | 検証モデルC | |
---|---|---|---|
CPU | Core i7-7700(3.6GHz) | Ryzen 7 1700(3GHz) | Core i7-7700HQ(2.8GHz) |
メモリ | 16GB(8GB×2) | ||
チップセット | Intel Z270 | AMD X370 | - |
SSD | 480GB 2.5インチ | ||
GPU | GeForce GTX 1060(6GB) | ||
液晶 | オプション | 1,920×1,080ドット表示対応15.6型非光沢IPS | |
OS | Windows 10 Home |
以下に、岡田氏よりいただいたCPUやメモリなどの検証の結果をお伝えする。
CPUコア数の差について
GithubからダウンロードしたUE4.17.2のエンジンコードを、DevelopmentEditor設定でクリーン → リビルドを10回行ない、その平均時間を計測いたしました。
ビルド時間の計測は、VisualStudioのBuild Timing設定を有効にしたさいに出力される数値を元にしています。
UE4.17.2 クリーン+リビルド | |
---|---|
検証モデルC | 2,193,580ms (36.5597分) |
検証モデルA | 2,080,722ms (34.6787分) |
検証モデルB | 1,351,108ms (22.5185分) |
一部の処理はシングルで動いていましたが、概ね分散されていたので、コア数の多いRyzen(検証モデルB)が良い結果を出していました。
プロの方ならincredibuild環境がありますが学生はないので、C++やエンジンコードの勉強をしたいプログラマーにとって、Ryzen搭載モデルはとても魅了的な数値かと思います。
メモリ容量の差について
インフィルトレーターとエレメンタルデモを開きつつ、Google Chromeを複数立ち上げ かつ 10数個のタブを開いた状態にした状態でUE4プロジェクトの編集作業を行なった際の挙動を確認いたしました(普段作業している環境がだいたいこのような形だからです)。
16GBメモリを載せているPCに関してはとくに挙動の変化はありませんでしたが、試しに8GBに減らしてみたところ、仮想メモリを使い始める関係でアセットを開いたりするさいの時間が体感で少し伸びたりと、少し作業にストレスが出てくるようになりました。
GPU
今回全面採用されているGeForce GTX 1060は、これからUE4でゲームを作りたい方にとって性能/価格の観点からちょうどいいバランスです。実際のプロのゲーム開発者も概ね同程度のスペックのPCを使っているかと思います。
ゲームを公開するさいは、さまざまな環境での性能を考慮する必要があるので、とくに初心者の方に関しては必要以上に高いスペックはおすすめできません。ただ低すぎると普段の開発に支障がでるので、GeForce GTX 1060はとてもよい位置にいるかと思います。
しかし、UE4でハイクオリティな映像作品を作りたい方に関してはより高いスペックを検討してもよいのかもしれません。
また、ノートPC(検証モデルC)のGPU性能にはとても驚きました。ElementalDemo 1080pで約70fps、Infiltrator 1080pで約40~50fpsを平均的にキープしていました。動画を見て頂ければ確認できますが、プロの方が作成したリアルタイムデモをノートPCでここまでの速さで動かせるというは、一昔前では考えられなかったと思います。
ただ、大量にオブジェクトが出ている場面では、フレームレートがデスクトップPCに比べガクッと落ちている箇所がありました。これはCPUのスペックの差によるるものです。描画処理はGPUだけではなくCPUも関わってきます。そのため、CPUのスペック差がフレームレートの差に現れたということになります。
もしご興味のある方は「ドローコール」という言葉を検索してみると面白いかと思います。
所感
どのPCも個人開発レベルで作業する分には申し分のない性能でした。特にノートPC(検証モデルC)に関してはデスクトップ(A、B)に匹敵するレベルでの速度が出ていたため、外出先でのデモや作業をするにはとても適していると感じました。普段の業務でも継続して使いたいと思ったほどです。
また、Ryzenによるビルド時間の削減度合いにも驚きました。エンジンコードを調査するさいは、どうしてもビルドを何度も行なう必要があります。そのため、この10分という差は短いように見えても、最終的にはかなり大きさ差になってきます。プログラマーの方には是非Ryzenを採用しているPCをオススメしたいです。
メモリは、重めのプロジェクトを複数開くとどうしても8GBでは足りなくなるケースが多いです。ただ今回検証したインフィルトレーターとエレメンタルデモは個人開発レベルを大幅に超えたプロジェクトというのもありますので、これに当てはまらない方も多いかと思います。なので、まずは8GBにし、物足りなくなってきたら16GBに増設という手も良いかもしれません。
次にSSDの容量に関してです。複数のエンジンバージョン、プロジェクトをSSDに置いていくと一気に残り容量が減っていきます。ですので、できれば大容量のSSD/HDDを増設することがオススメかと思います。
現在作業していないプロジェクトやアセットはそちらに格納し、エンジンと作業中のプロジェクトに関してはSSDに置いておくのが速度的にも容量的にもベストな運用方法かと思います。
テンプレートを利用してUE4を使ってみよう
続いては岡田氏より執筆していただいた、簡単なUE4のチュートリアルを掲載する。このチュートリアルはUE4.18.1(2017年12月5日現在最新)を使い、「ThirdPerson」のテンプレートで簡単なUE4の操作方法をご紹介する。これからUE4を使ってコンテンツ制作をしようと考えている読者の参考になれば幸いだ。
今回は、エンジンに標準で用意されているThirdPersonテンプレートを使用します。このテンプレートは3人称視点のアクションゲーム向けのテンプレートで、プロトタイプの作成や機能の検証などによく用いられます。実装内容はシンプルなので、はじめてUE4を触る人はこのテンプレートの中身をざっと見ることをオススメします。
プロジェクトを作成し、起動した状態です。上にあるプレイボタンを押すとエディタ上でゲームが開始します。キーボードやコントローラでキャラクターを移動させたり、ジャンプさせたりできます。
キャラクターの動きを変えるには?
プレイヤーが操作するキャラクター(ThirdPersonCharacter)の動きを変えるために、そのBlueprintを開きます。レベル上のキャラクターをクリックし、右上のアウトライナにある「ThirdPersonCharacterを編集」をクリックします。または、各アセットを管理するコンテンツブラウザにある「ThirdPersonCharacter」アセットをダブルクリックします。
Blueprintエディタが開きます。ここで操作キャラクターの挙動を実装したり、各パラメータを調整することができます。ThirdPersonCharacterで移動処理を管理しているのは、CharacterMovementコンポーネントです。(コンポーネント:Blueprintが持つパーツのようなもの。3Dモデルを表示するためのコンポーネントなど、さまざまなコンポーネントを組み合わせることでさまざまな表現・挙動を実現できます)
このCharacterMovementコンポーネントはとても機能が豊富で、移動速度やジャンプ力などといった基本的なものから、AI・ネットワークに関する複雑なものまで多数用意されています。今回は移動時の速度・加速度、ジャンプ力を調整してみましょう。
CharcterMovementコンポーネントをクリックで選択状態にすると、エディタの詳細パネルがCharacterMovement用になります。移動時の速度を調整するには、Character Movement : WalkingカテゴリのMax Walk Speedを調整します。その名の通り、この項目の値が移動時の最大速度になります。
試しにこの値を10倍の6,000にしてみましょう。元々のエディタに戻って再度プレイボタンを押してみて下さい。変更前に比べてキャラクターの移動速度が大幅に上昇しています。逆に値を小さくすると、キャラクターの移動速度が低下して、ゆっくり歩くようになります。作りたいゲームの内容・ステージの広さを考慮しつつ、この値を調整していくのが良いかと思います。
次に移動の加速度です。レースゲームのようにじわじわ速度が上がって欲しい場合もあれば、激しいアクションゲームのようにすぐ最大速度になって欲しい場合もあります。そんな時は、Character Movement(General Settings)カテゴリにあるMax Accelerationの値を調整します。この値を上げれば最大速度まですぐ到達するようになります。逆に値を下げるとじわじわと速度が上がっていくようになります。
ちなみに、その下にあるBraking Friction Factorは移動入力(スティックを倒すなど)を止めたさいの地面との摩擦力を調整します。この値を上げると直ぐ止まるようになります。逆に0に近づけると地面を滑ってなかなか止まらないようになります。例えば、ゲームではよくある氷の上を歩く場面ではこの値を下げることでツルツルと滑る挙動を実現することができます。
最後にジャンプ力です。Character Movement : Jumping / FallingのCharacter Z Velocityを調整することでジャンプ力を変えることができます。もし落下速度も調整したい場合は、Character Movement(General Settings)にあるGravity Scaleの値を変更してみましょう。
今回紹介した各パラメータはゲームの手触りに大きく影響してくる部分なので、是非色々調整して自分の作りたい作品にあった値にしてみましょう。そして、もっと凝った制御をしたい場合は、Character Movementコンポーネントの各パラメータを調べてみたり、公式ドキュメントを参考にBlueprintのノードをカスタマイズしてみましょう。
カメラワークを変えるには?
ThirdPersonテンプレートのカメラワークも、このThirdPersonCharacterが管理しています。具体的には、カメラであるFollowCameraコンポーネント、そのカメラの位置を制御するCameraBoomコンポーネント、そしてBlueprintによる入力に応じた制御、これらがカメラワークを構成しています。今回はCameraBoomコンポーネントのパラメータを調整してみましょう。
CameraBoomコンポーネントもさまざまな機能を持っています。CameraBoomコンポーネントの詳細パネルのCameraカテゴリでは、カメラの位置を変更することが可能です。Target Aim Lengthではキャラクターとカメラ間の距離を変更することができます。そして、その下にある2つのパラメータでは、Target Aim Lengthで決まったカメラの位置を基準にしつつ、カメラの位置の微調整を行なうことができます。
ほかにもLagカテゴリにある各項目を変更することで、「カメラが遅れてついてくる」表現を実装することが可能です。スピード感を表現する際にとても役に立ちますので、是非試してみて下さい。
もしカメラの向きを変えたい場合はFollowCameraの向き(回転)を調整しましょう。詳細パネルのトランスフォームカテゴリにある「回転」やカメラを選択した際に表示されるUIを使って調整可能です(ビューポート画面の上にある回転アイコンを選択するか、Eキーを押して回転変更用のUIに切り替える必要があります)。
色々値を変更したら、一度プレイしてみましょう。初めの状態から大きくカメラの挙動が変わっていると思います。UE4ではプログラムを組まなくても、元々用意されている機能を使うことでさまざまな挙動を簡単に実現することができます。
光源を変えてみるには?
キャラクターの挙動の話から変わって、次はゲーム内の各オブジェクトを照らす光源についてです。ThirdPersonテンプレートでは、Light Sourceという名前のDirectionalLightが配置されています。DirectionalLightは太陽光を表現するために用いられるライトです。Light Sourceをクリックすると、右下の詳細パネルに各パラメータが表示されます。こレラのパラメータを変更することでLight Sourceによって照らされている各オブジェクトの見え方が変化します。
例えば、トランスフォームの回転を変更すると、ライトの向きが変わるため、各オブジェクトの影の向きが変化します。ゲーム中に太陽が表示される場合は、その表示とライティングが一致するように回転を調整する必要があります。
次に注目すべきパラメータは、LightカテゴリのIntensityとLight Colorです。Intensityは光の強さ、Light Colorはライトの色を変更できます。これらのパラメータを調整することで、夜の薄暗い感じにライティングすることができます。
もしライトを追加したい場合は、エディタの左側にあるモードパネルをライトに切り替えましょう。ライトが4種類あるので、その中から好きなライトの種類をドラッグアンドドロップでレベルに配置します。
ポイントライトやスポットライトをレベルにあるオブジェクトに合わせて置くと、見た目がぐっと良くなるので是非試してみて下さい。
簡単なエフェクトを付けるには?
最後にアニメーションにエフェクトを埋め込む方法について説明します。まずエンジンが標準で用意しているサンプルアセットをプロジェクトに追加します。コンテンツブラウザの新規追加ボタンをクリックし、表示されたメニューの一番上にある「機能またはコンテンツパックを追加」をクリックします。
そして、表示されたウィンドウのコンテンツパックタブ内にあるStarter Contentを選択します。右下のプロジェクトに追加ボタンを押すと、コンテンツブラウザにStarterContentフォルダが追加されます。この中にさまざまなアセットが含まれています。今回はその中の爆発エフェクト(P_Explosion)を使用します。
エフェクトアセットの準備ができたので、次はアニメーションにそのエフェクトを埋め込んでいきます。コンテンツブラウザのMenequin / Animationsにある ThirdPersonJump_Startをダブルクリックして下さい。アニメーションを編集するためのPersonaエディタが立ち上がります。
このジャンプ開始アニメーションに対して爆発エフェクトを埋め込めば、爆発の勢いで大ジャンプするキャラクターを表現してみます。通知バーの左端で右クリックを押し、表示されたメニューを「通知を追加」→「Play Particle Effect」の順でクリックします。
そして、通知バーに追加されたPlayParticleEffectという名前のエリアをクリックすると、エディタ右側にそのエリアに関する詳細パネルが表示されます。その中にあるParticle Systemという項目の右に「ある」、「なし」と書かれた部分をクリックします。設定するエフェクトの一覧が表示されるので、今回はP_Explosionを選択します。
すると、アニメーションが再生される度に爆発エフェクトが表示されるようになります。試しにゲームをプレイしてジャンプボタンを押してみて下さい。先ほど設定した爆発エフェクトが再生されるようになっています。
今回は使いませんでしたが、この詳細パネルのLocation Offset, Rotation Offsetでエフェクトの位置を調整できますし、Socket Nameにキャラクターが持つボーン名を入れれば、その骨に追従する形でエフェクトが生成されるようになります。(例えばこのモデルの場合、foot_lと入力すれば左足からエフェクトが生成されます)。
今回は少し変わった演出でしたが、このアニメーションへのエフェクト埋め込み機能はさまざまな演出で活用することができます。例えば、走るモーションで足が地面についたタイミングで砂煙を出したり、剣をふるモーションにその剣の軌跡を表示したりなどが挙げられます。こちらもプログラムを組むことなくく簡単に実装できるので、ぜひ活用してみてください。もしBlueprintからエフェクトを生成したい場合はSpawn Emitter at Locationノードをご利用下さい。
検証結果を踏まえて、パソコン工房ではUnreal Engine 4推奨のクリエイター向けPC 4種類を用意し、製品として販売する。各モデルのおもな仕様および価格などは下表のとおり。
製品名 | Unreal Engine 4推奨ミニタワーパソコン スタンダートモデル | Unreal Engine 4推奨ミドルタワーパソコン スタンダートモデル | Unreal Engine 4推奨ミドルタワーパソコン スタンダートモデル | Unreal Engine 4推奨 15型フルHD薄型ノートパソコン スタンダートモデル |
---|---|---|---|---|
CPU | Core i7-7700K | Core i7-8700 | Ryzen 7 1700 | Core i7-7700HQ |
チップセット | Intel H110 | Intel Z370 | AMD X370 | Intel HM175 |
メモリ | 16GB(8GB×2) | |||
ストレージ | 480GB SSD | |||
光学ドライブ | DVDスーパーマルチ | なし | ||
GPU | GeForce GTX 1060 6GB | |||
フォームファクタ | microATX | ATX | ノート | |
液晶 | なし | 1,920×1,080ドット表示対応15.6型非光沢 | ||
税別価格 | 149,980円 | 156,980円 | 162,980円 | |
製品販売ページ | SENSE-M022-i7K-RNS-UE4 | SENSE-R037-i7-RNS-UE4 | SENSE-R0X3-R8X-RNS-UE4 | SENSE-15FX093-i7-RNFS-UE4 |