独習 Unity アプリ開発

独習でスマフォ向けアプリ開発を勉強中

【UE5 C++】Unreal Engine で テトリス風ゲームを作ってみる#1

目次に戻る

 Unreal Engine Version 5.3.2

はじめに


Unity を使ってテトリス風ゲームを作成したが、同じものをUnreal Engine で作るとどうなるのかを考えてみる。

 

Unreal Engine だとどう作る?


テトリスに必要なものは以前ここで整理しているので、それをUnreal Engine では何の仕組みを使うと実現できるのか?を整理していく。

 

まずは、Unity の機能がUnreal Engineでは何にあたるのかをざっと確認してみる。

Unreal Engine のドキュメント上に、Unity と Unreal Engine の用語対応表があるのでそこを参照するのがよい。ちなみに使用するバージョンは5.3.2 を想定。

docs.unrealengine.com

 

ブロックを画面に表示する


テトリスの基本となるブロックを画面上に表示する方法を確認する。

Unity でいえば、SpriteRenderer の付いたGameObject をScene 上に配置すればよいが、それをUnreal Engine だとどうするのか?

 

まずは空のレベルを作成する。Unity で言うところのScene に相当している。メニューバーから、"File" → "New Level" を選んで、"Empty Level" を選択する。

これで空の新しいレベルが作成されたので、今度はメインンツールバーの "BluePrints" ボタン(3個の箱がつながっているアイコン)を選択して、"Open Level Blueprint" を選択して、BluePrints Editor を開く。

Open Level BluePrint

そしたらファイルアイコンを押して名前を付けて保存する。保存先のフォルダは"Content" の下に、"TetrisLikeTest1/Maps" を作成し、そこに保存する。

Map 保存

 

今度は、レベルビューポートの設定をいくつか変更する。

2D ゲームを作成するため、カメラを"Perspective" から "Right" (Orthographic 投影でXZ平面)に変更。Rendering を "Lit" から "Unlit" に変更。グリッドを "10" から "100" に変更する。"100" の意味は 100 Unit 単位でグリッド線を表示するという意味である。

ビューポート 設定


次は、テクスチャとスプライトの準備。

"Content/TetrisLikeTest1" フォルダの下に"Assets/Sprites" フォルダを作成。そのフォルダにUnity の時に使ったものと同じBlock のPNGファイルをDrag & Dropする。

Sprite 作成

 

Unreal Engine では2D 用のテクスチャに変換するが必要なようで、テクスチャファイルのアイコン(現時点では上図のように真っ白)の上で、右クリックから"Sprites Actions" → "Apply Paper2D Texture Setting" を選択して変換を実行。

Paper2D 適用

 

すると正しくBlock のテクスチャが表示されるようになる。

Paper2D 変換後

 

このテクスチャから今度はスプライトを作成する。手順は、テクスチャファイルのアイコンから右クリックで、"Sprites Actions" → "Create Sprite" を実行するだけ。

Spriteの生成

 

すると同一フォルダ内にBlock のテクスチャをもったスプライトが生成される。

Sprite

 

Unreal Engine には特有の命名規則GitHub - Allar/ue5-style-guide: An attempt to make Unreal Engine 4 projects more consistent)があるみたいで、先ほど作成したブロックのテクスチャファイルとスプライトファイルの名前をそれに合わせて変更しておく。

テクスチャは、プレフィックスに"T_"を追加。スプライトは、プレフィックスに"SPR_"を追加。

命名規則に従ってファイル名を変更

 

次にブロックのアクターを作成し、上記のスプライトをアタッチする。Unity で言うところのGameObject にSpriteRenderer コンポーネントをアタッチするのと同様。

"Content/TetrisLikeTest1" フォルダの下に"BluePrints" フォルダを作成。空のフォルダエリアを右クリックして、"BluePrint Class"を選択する。

BluePrint Class 作成

 

すると、どのクラスから派生するかの選択肢が表示されるので、"Actor" クラスを選択する。出来たBluePrint Class の名前を"BP_Block"に変更する。

Actor BluePrint 作成

 

作成されたBluePrint のアイコンをダブルクリックしてBluePrint エディタを起動させる。BluePrint エディタの左側にある"Components" タブで、"+Add" ボタンを押して "Paper Sprite" コンポーネントをアタッチする。この辺りの概念はUnity と同じである。

Sprite コンポーネントをアタッチ

 

アタッチした"Paper Sprite" コンポーネントに作成しておいた"SPR_Block" スプライト を設定する。

Block スプライトを適用

 

最後にコンパイルして保存すれば完了。BluePrint エディタ上で何か作業をした場合は、必ずコンパイルと保存が必要なので注意する。

コンパイルと保存

 

試しに"BP_Block"をレベルビュー上にDrag & Drop すると、ちゃんと表示されることが確認できた。実際には、Unity の時と同様にPixel Per Unit の値を少し変更しているが、それは次回以降に説明予定。

BluePrintをレベルビューに配置

 

 

次の記事


Unreal Engine で テトリス風ゲームを作ってみる#2 - 独習 Unity アプリ開発

 

目次に戻る