見出し画像

初心者がUnreal Engine 5でPCゲームを作る Day6 ~ さよならUE、こんにちはUnity

Day6まとめ

  • Spine使うならUnity!

キャラを極太にした

全ての線の太さを2~3倍にした

これなら綺麗に映るだろ。行くぞUnreal!

ジワっていらっしゃる

設定でなんとかできるのかもしれないがマジで情報がない。

試しにUnityで入れてみる

もしやエンジン側の処理の問題か? と思い、UnityにSpineランタイムを導入して確認してみる。

ランタイム導入がビビるほど楽でビビる

これ一発!
  • .unitypackageファイルをダウンロード

  • 導入したいプロジェクトを開いておく

  • ダブルクリックでインポート

これで終わりだ。
Spine-UEのように複雑な工程を踏む必要がない。
作例としてサンプルファイルも色々入っており(もちろんインポートしないことも選択可能)、学習の上でも楽そうだ。
もうこの時点で「Spineを一番使いやすいのはUnityだ」という予感がある。

Unity用にSpineモデルをエクスポート

Unrealと書き出し拡張子が異なる(.skel.txtとか.atlas.txtとか)。
インポートは生成されたファイルをドラッグアンドドロップ。

めっちゃくっきり出た

やっぱりUnityで開発すべきか……
Godotを使うことも考えたが、以下からやはりUnityを選定すべきと考える。

  • Unity Pros

    • Spineを扱うノウハウの蓄積

    • Asset Storeに2D向けアセットが大量にある

      • 特にアセットが正規版でなくてよいプロトタイプは超高速化しそう

  • Godot Cons

    • メッチャ良いらしい独自言語がSpineランタイムで扱えない

      • C++での開発となる

Godotは1.5億円以上売れてもライセンスが無料という点が非常に強いが、迅速な完成が優先される。

セットアップ

Unityをいじっていたのが2021年とかなので設定を一応見直す。

エンジン本体

LTSの最新版を入れ直し。

VSCode

Omnisharp云々だけ対応した。

サンプルシーンを見てみる

サンプルシーン #4、WASD移動とクリックで発砲するモデルを参考にオリジナルのものを書いてみる。

構造読解

3つのコンポーネントにそれぞれScriptがアタッチされている。

  • PLAYER INPUT(スクリプトのみ)

    • 入力関連の宣言とUpdateでの入力監視

    • 入力があったらPLAYER Modelから対応する関数を呼び出す

      • 入力元がFireとかJumpとか言ってるが、どこでキーバインドしているのかわからない

  • PLAYER Model(スクリプトのみ)

    • 入力を受け取ってモデルにかかっているTransformやspeedをいじる

    • 「BodyState」として現在行っている動作をVIEW Modelに伝える

  • VIEW Model(Spine Skeleton Animation)

    • PLAYER Modelから「BodyState」を受け取りアニメーションを再生

    • Spine側で設定したイベントに応じてサウンドやパーティクルを再生

      • アニメーションやイベントはReferenceAssetsフォルダに書き出してアタッチ

      • サウンドやパーティクルは子オブジェクトとして設定してアタッチ

ReferenceAssetsの書き出し方

  • アニメーション

Create Animation Reference Assetsボタンを使用するとスケルトンのすべてのアニメーションのリファレンスアセットを生成できます。AnimationReferenceAssetは、単一のSpine.Animationを参照するUnityアセットとして機能し、Inspectorでコンポーネントのプロパティに割り当てることができます

  • イベント

    • わかんね

FireとかJumpとかなんやねん→デフォルトのボタンでした。

UnityではFire1 ~ 3、JumpをデフォルトのボタンとしてString変数から呼び出せるらしい。

InputSystemを導入する

インストール

Fire1~3の方に「新しいInput Systemの使用をご検討ください」と書いてあった。UEみたくInput管理が直近で刷新されたようだ。

アクションマップの設定

ここから諸々設定。

_rigidbody て何

フィールド(インスペクターから値を入れられるやつ)は_から始めるという暗黙の了解があるらしい。

一時停止入れるならUpdateに注意

キーバインド見てて「そういや一時停止ってどうすんねん」と思って調べたらUpdateで書いたものは止まってくれない旨の記述を発見。
ゲームを一瞬止めるためにはUpdateで処理書いたらアカン模様。

コーディング基礎からかもしれない

コーディング回りはフンワリと触ったことがあるものの、詰まるところが多い予感がしている。
詰まるたびに学ぶより一括でドカッと知識を入れた方が時間の短縮になりそうなので、公式チュートリアルをやってみようと思う。


この記事が気に入ったらサポートをしてみませんか?