はじめに
バニラ環境において、RPG配布ワールドを制作する場合、一つの壁となるのが「モブの見た目の差別化」です。
ゾンビやスケルトンといった人型モブに、既存の防具やブロックを被せるのも一つの手段ですが、やはり独自の見た目を用意したい!と思う方もいるでしょう。
本記事では、バニラとは全く違った見た目を持つモブ(以下「カスタムモブ」)を実現する方法の中で、アーマースタンドとリソースパックを使用した方法についてのノウハウを紹介していきます。
カスタムモブの基礎
本記事におけるカスタムモブは、
パーツ(アイテムモデル)を装備したアーマースタンド を 当たり判定となるモブ に TPで追従させる
という形の実装が基本となります。
パーツを装備したアーマースタンドのイメージ(Blockbench)
基本的には、パーツ(頭・胴体・足など)の数だけアイテムモデルを用意し、それらをアーマースタンドに装備させ、当たり判定となるモブを中心に、TPの位置を調整することで形を作っていきます。
渓流の蜥蜴 レトリ(全8パーツ8エンティティ+当たり判定)
細かい記述は省きますが、以上が基礎部分となります。
アーマースタンドの利点
そもそも最近は、Displayという優秀なエンティティが登場していて、アーマースタンドを使用する必要があるのか、と思う方もいらっしゃるでしょう。
アーマースタンドには、以下のメリットがあると考えます。
- 3つのパーツを1エンティティで保持できる
- 回転の仕様が直感的
3つのパーツを1エンティティで保持できる
アーマースタンドを使用すると、頭・右腕・左腕と3か所でパーツを描画することができます。
回転の軸が固定であるという問題はありますが、これにより、複数のパーツを1つのエンティティにまとめられる場合があります。
パーツが中央に集中している、小型や節足動物型のモブに有効です。
例えば下記のモブの場合、表示に必要なのは2エンティティです。
- 頭・前脚&後脚(両手)
- 胴体・中脚(両手)
回転の仕様が直感的
アーマースタンドは、Poseタグによって頭・胴体・腕・足の回転を設定できます。
XYZによる指定であるため、スコアとの同期が容易です。
Displayの場合の回転は、四元数形式によって表されているため、アーマースタンドに比べると直感的ではなく、知識や慣れが必要となります。
(私は四元数形式による回転を理解しきれていないため、詳細な比較はできません)
アーマースタンドの欠点と対策
アーマースタンドには、一つの重大な欠点があります。
それが回転がずれる問題です。
アーマースタンドによるカスタムモブ製作を試みた方なら、一度は体験したことがあるのではないでしょうか。
これは、アーマースタンドの回転が持つ、特殊な仕様によって引き起こされるものです。
詳細は不明ですが、恐らくTPや回転を視覚的に補完する機能によるものだと思われます。
実際には、カスタムモブが急旋回をした際、静止していた状態から動き始めた際などに発生し、突然パーツがあらぬ方向を向いてモデルが崩れたり、攻撃モーションと当たり判定がずれたりなど、様々な問題が発生します。
この問題の対策として、こまめに回転を加えるという手段があります。
数Tickに一度、1度程度の小さな回転を加えるだけで、このずれは大きく軽減されます。
おわりに
本記事の内容は以上となります。
拙い内容ではありますが、問題解決や、カスタムモブ製作のきっかけになれば幸いです。
余談ですが、本記事において使用した画像は、全て制作中のRPG配布ワールド「FinzKiil(フィンズ・キイル)」のものです。
今冬に第一作をリリース予定ですので、リリースされた際には是非プレイしていただけると嬉しいです!
ここまで読んでいただきありがとうございました!