Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4で完全な2Dゲームを作れるか?

Unreal Engine 4を使って完全なスプライトベースな2Dゲームは作れるのか?という疑問が色々あったりする人も多いのではないかと思います。

現状では公式からマーケットプレイスで配信されている、TappyChickenというゲームが最も参考になる例です。

TappyChickenの作り方

3分クッキングというわけにはいきませんが、簡単に解説してみます。

f:id:alwei:20140707220222j:plain

実際に横から見てみるとわかりやすいですが、完全に3Dですね。カメラの設定がOrthographic(正射影)になっており、作り方としては3Dのそれとほとんど変わりません。

TappyChickenのロジックは全て"BP_MainGame"というブループリントに含まれており、これだけで全てのロジックを俯瞰することができます。逆に言えばこれだけの処理をやっているんだということがよくわかりますね。

f:id:alwei:20140707220714j:plain

元々プログラミング経験がないアーティストが作ったものなので、構造化とかはそこまで考えられていませんので、大分規模が大きいものになってしまっています。これはやはりちゃんと整理しないとこうなってしまうよ、という典型例です。

f:id:alwei:20140707221538j:plain

そしてこれがChickenの2Dテクスチャーデータで、これをUVアニメーションさせることによりスプライトアニメーションを実現しています。実際にスプライトアニメーションを実現させているのが以下のようなマテリアルです。

f:id:alwei:20140707221647j:plain

小さくてわかりにくいですが、中心の方にある青いノードがテクスチャーサンプルデータです。このデータのカラー情報をエミッシブカラーとして渡すことによりライトの影響は一切受けないようになっています。アルファやカラー制御もここで行なわれています。

そして左下の方のノードにはマテリアルパラメーターというものが使われており、これは上の方にでも紹介した"BP_MainGame"の中から直接参照することができるので、FrameNumberというパラメーターを弄ることによりスプライトアニメーションが実現されています。

ただ、スプライトアニメーションのためにやるにはちょっと荷が重いですよね…UE4のアニメーション機能も使えないですし。

UE4.3から大幅に2D機能が強化

UE4には元々公式の2Dプラグインである"Paper2D"というものがありました。これが地道に改良を重ねた結果、UE4.3からは大幅に機能が増えて専用のスプライトエディター等もつくようです。

以下は公式のフォーラムにあったUnreal Engine開発者の投稿です。

Project: Paper2D

 これによると、UE4.3からは…

  • エンジンのデフォルトでPaper2Dプラグインが有効化
  • スプライトとフリップブック(アニメーション機能)が使えるように
  • 2Dコリジョン、物理、スプラインテライン、グループアトラス化、タイルマップを実験的に追加
  • 2Dサイドスクロールテンプレートの追加
  • ピクセルをアンリアル上の単位にスケールするスプライト
  • スプライトエディター上にビジュアルパス追加
  • フリップブックコンポーネントを完全に刷新
  • フリップブックコンポーネントに再生/停止、ループ、逆再生などなど追加

とまぁかなり凄い追加が入っているようです。ただまだ実験的な要素も多いのですぐに使えるわけというものでもないかもしれません。

しかしインディーデベロッパー向けにもこういったものを用意してくれるのは非常に助かりますね。期待しています。