エモートとModelEngineの現状
Wikiで編集エモートとModelEngineの現状
このページは、ItemsAdderの「エモート」機能と、ModelEngineプラグインに関するリソースパック側の実装状況をまとめたものです。トップページにあった「1_21_4_to_5 / 1_21_5 / 1_21_6 各フォルダも動作に必要」というメモは現状のリポジトリ構成と一致しなくなっているため、このページが最新の内容に置き換えます。エモートを追加・修正する作業を行う前に、まずこのページ全体に目を通してください。
エモートとは、
/iaemoteコマンドで再生できる、プレイヤーキャラクターのポーズ・動作演出のことです。ItemsAdderというプラグインの機能で、サーバー側の設定とリソースパック側のファイルの両方が揃って初めて正しく表示されます。
1. ItemsAdderエモートの仕組み(平易な説明)
エモートを再生すると、ItemsAdderは見た目の上でプレイヤーの体(頭・胴・腕・脚など)を、リソースパックの中に用意された専用の「差し替え用モデル」にこっそり入れ替えます。この差し替え用モデルを画面に正しく描画するために、専用の「シェーダー」もあわせて使われています。
シェーダーとは、Minecraftの画面がどのように描画されるかを細かく指定するプログラムファイルです。エモート用のモデルは通常のプレイヤーモデルとは違う方法で描画する必要があるため、専用のシェーダーファイルが追加されています。
関連ファイルは主にassets/_iainternal/ネームスペースに置かれています。中身は次のような構成になっています。
| フォルダ | ファイル数の目安 | 役割 |
|---|---|---|
_iainternal/items/player_model/ | 8件(head, torso, left_arm, right_arm など) | プレイヤーの部位ごとのアイテム定義。ItemsAdderがこれらのアイテムを使ってモデルを差し替えます。 |
_iainternal/models/item/player_model/ | 3,449件(body_cube_*など) | 実際の差し替え用モデル本体。ItemsAdderが自動生成した大量のパーツファイルです。 |
_iainternal/models/item/ia_auto/ | 7件 | ItemsAdderのGUIアイコン(矢印・検索・キャンセルなど)用モデル。 |
_iainternal/models/entity/player/ | 13件(dummy_*, phead_0など) | エンティティ側のプレイヤーモデル定義。 |
_iainternal/textures/gui/ | 7件 | ItemsAdderのメニュー・クラフト画面などのGUI画像。 |
_iainternal/textures/hud/small_cooldown_bar/ | 21件(連番png) | クールダウン表示用のHUD画像(アニメーションのコマ)。 |
_iainternal/textures/icons/ | 7件 | GUIアイコン用の画像。 |
_iainternal/font/gui.json | 1件 | ItemsAdder用フォント定義(現状は空の設定)。 |
これに加えて、バージョンごとの互換性を保つための「オーバーレイ」にもエモート関連ファイルが分散しています。
オーバーレイとは、
pack.mcmetaで指定した条件(Minecraftのバージョンに対応する「pack_format」の範囲)を満たしたときだけ、追加で読み込まれるフォルダのことです。バージョンごとに書き方が違うファイルを共存させるための仕組みです。
| オーバーレイフォルダ | 適用範囲(pack_format) | 中身 |
|---|---|---|
ia_overlay_1_20_5_plus/assets/minecraft/shaders/core/ | 32以上 | rendertype_entity_translucent.vsh(1件、旧形式のシェーダーファイル) |
ia_overlay_1_21_2_plus/assets/minecraft/shaders/core/ | 42以上 | rendertype_entity_translucent.json、rendertype_armor_cutout_no_cull.json、rendertype_text.json(3件、新形式のシェーダー定義) |
ia_overlay_1_21_4_plus/assets/_iainternal/textures/item/player_model/ | 46以上 | プレイヤーモデル用の追加テクスチャ |
もう一点、pack.mcmetaには次のようなSodium向けの設定が入っています。
"sodium": {
"ignored_shaders": [
"rendertype_entity_translucent.fsh",
"rendertype_entity_translucent.vsh"
]
}
Sodiumは描画を高速化する人気のクライアントMODです。バニラのMinecraftとシェーダーの扱い方が一部異なるため、この設定でエモート用シェーダーの一部を「Sodium側では無視してよい」と伝えています。これを消すと、Sodium導入プレイヤーの環境でエモートの見え方に影響が出るおそれがあります。
2. エモートが動くために必要な構成要素(触ってはいけないもの)
次のファイル・設定は、いずれもエモート表示に関わっています。内容を理解しないまま削除したり、大きく書き換えたりしないでください。
assets/_iainternal/ネームスペース全体(特にitems/player_model/とmodels/item/player_model/、models/entity/player/)ia_overlay_1_20_5_plus/assets/minecraft/shaders/core/内のシェーダーファイルia_overlay_1_21_2_plus/assets/minecraft/shaders/core/内のシェーダーファイルia_overlay_1_21_4_plus/assets/_iainternal/textures/item/player_model/内のテクスチャpack.mcmeta内のsodium.ignored_shaders設定、および上記オーバーレイを有効にしているoverlays.entriesの各項目
過去には、これらと似た名前・似た役割のファイルを「使われていないだろう」と判断して削除し、エモートが表示されなくなった経緯があります(詳しくは後述の「4. 過去の経緯と教訓」を参照してください)。判断に迷うファイルがあれば、削除する前に必ずturu64さんまたは詳しい人に確認してください。
3. 新しいエモートを追加する手順(骨子)
エモートの追加は、サーバー側のItemsAdder設定作業と、リソースパック側への取り込み作業の2段階に分かれます。
- サーバー側でItemsAdderの設定にエモートを追加する。【要記入: サーバー側の具体的な設定方法・設定ファイルの場所】
- サーバー側で
/iazipコマンド(ItemsAdderの設定内容からリソースパックを自動生成する機能)を実行する。【要記入: 実行場所・実行権限の詳細】 - 生成されたリソースパックの中から、新規または更新された
_iainternal配下のファイル(新しいplayer_model関連のモデル・テクスチャなど)を、mofupack_officialリポジトリの該当フォルダに取り込む。 - 取り込みの際に、ItemsAdder生成物に含まれる
items/配下のアイテム定義(minecraft:ネームスペースのバニラアイテム上書き)を誤って一緒に取り込まないよう注意する(理由は次章参照)。 - 取り込んだ内容で開発版リソースパックをビルドし、
/iaemoteで動作確認する。
ItemsAdder生成パックとの具体的なマージ手順(ファイルの見分け方・取り込み方の詳細)は、/resourcepack/develop/itemsadder-mergeにまとめています。あわせて参照してください。
4. 過去の経緯と教訓
エモート関連の実装は、これまでに何度か試行錯誤が繰り返されています。作業前に一度目を通しておくと、同じ問題を繰り返さずに済みます。
| 時期 | コミット | 内容 |
|---|---|---|
| 2025-12-03 | e5779cb | 不足していたシェーダーファイルと最新バージョン用オーバーレイディレクトリを追加。 |
| 2025-12-05 | 9d1a790 | 「minecraft/shadersフォルダを削除(1.21.8で正常に読まない)」。ベースパック直下にシェーダーフォルダを置く方式をやめ、オーバーレイ側に移す方針に転換。 |
| 2025-12-20 | 22dd3d9 | 「Emotes未対応」。この時点でエモートが正しく動いていない状態だったことを示す記録。 |
| 2026-04-09 | f3272a2 | ItemsAdder生成パックからデータを取り込み、エモートを修正。 |
| 2026-04-09 | c646f8b | 「ItemsAdderによるmodel_path上書き分を削除」。ItemsAdder生成パックに含まれるminecraft:ネームスペースのitems/上書きファイルが、独自に実装しているバニラCITの表示を壊してしまうことが判明し、取り込んだ分を削除した。 |
| 2026-04-09 | 379e902 | 「ia_overlay_1_21_6_plusをpacksquash圧縮から除外(ItemsAdderのエモートファイルが含まれていて、圧縮するとうまくエモートが表示できない)」。エモート関連ファイルは圧縮処理との相性問題も起きやすいことを示す記録。 |
| 2026-04-10 | 69b5529 | 「ItemsAdderエモート対応(packsquash確認済み)」。圧縮後のパックでもエモートが動くことを確認。 |
| 2026-04-27 | d92e6a7 | 「エモートの1.21.11対応を追加(レンダラーファイルを追加)」。現在のpack.mcmetaのオーバーレイ構成・sodium.ignored_shaders設定はこのコミットで整備された。 |
この経緯から読み取れる教訓は、主に次の2点です。
- ItemsAdderが生成するパックの
items/配下(バニラアイテムのモデル上書き)は、そのまま取り込んではいけません。このリポジトリでは独自のバニラCIT(minecraft:selectを使ったカスタム名アイテムの実装)を大量に持っているため、ItemsAdder側の上書きと衝突し、テクスチャが壊れます。取り込んでよいのは_iainternal配下のエモート専用ファイルのみです。 - シェーダー関連は、Minecraftのバージョンが上がるたびに書き方や互換性の問題が繰り返し発生しています。実際に、旧形式の
.fsh/.vshファイルを新形式の.jsonシェーダーに置き換える作業や、特定バージョンで「正常に読まない」ために削除する作業が複数回起きています。バージョンアップに追従する際は、シェーダー周りを最優先で実機確認してください。
なお、
a62235f(「梅雨の防具追加」、2026-05-22)というコミットは、コミットメッセージ上は防具の追加が主目的ですが、実際の変更差分には旧形式シェーダー(entity.fsh/entity.vsh/rendertype_text.vsh)の削除も含まれていました。ブランチのマージに伴って混ざり込んだものと見られます。git履歴を調べる際は、コミットメッセージだけでなく実際の差分も確認することをおすすめします。
5. 既知の不確実点
このページの内容は現在のリポジトリのファイル構成とgit履歴から確認できる事実にもとづいていますが、次の点は実機での検証が済んでいません。正直に不確実点として残しておきます。
ia_overlay_1_21_2_plus内のシェーダーがJSON形式であること自体は確認できていますが、この記述形式が1.21.11・26.1環境で意図した通りに機能しているかどうかは、ファイルを読んだだけでは判断できません。実機でのエモート表示確認を推奨します。ia_overlay_1_20_5_plus(旧形式.vshを含む)などのオーバーレイフォルダが、packsquash.tomlのforce_include設定に含まれていない点も確認しました。【要記入: これが意図的な設定なのか、対応漏れなのかの確認】- エモートの動作確認方法は、リリース前のテスト項目としてすでにリソースパックの更新と公開に「
/iaemote [emote名]で、3種ほどランダムに試してみて下さい」と記載されています。新しいエモートを追加した場合は、追加したものも含めてテストしてください。
6. ModelEngineの現状
ModelEngineは、トップページに記載の通り現在「一時休止中」の扱いです。新規のエンティティモデル追加や本格的な統合作業は行われていません。
現状残っているデータ
assets/modelengine/ネームスペース(約248KB、gitで追跡されているファイルは44件)には、次の7体分のエンティティモデルの断片が残っています。
| モデル名 | モデルファイル(models/) | テクスチャ(textures/entity/) | 備考 |
|---|---|---|---|
| amane | 4件 | なし | |
| apple_cartoon_character | 9件 | あり | |
| datanankaneeyo | 1件 | なし | |
| internal_fire | 0件 | なし | モデルデータが実質空。items/internal_fire/フォルダのみ存在。 |
| leviathan | 10件 | あり | |
| maxwell | 15件 | あり(2種類のテクスチャ) | もっとも多くのパーツを持つモデル。 |
| sukuna | 0件 | なし | モデルデータが実質空。models/sukuna/head/という空フォルダのみ存在。 |
いずれのモデルも、assets/modelengine/items/配下の対応フォルダ自体は存在しますが中身が空で、ItemsAdderの_iainternalのような「アイテム定義からモデル本体を呼び出す」ところまでは完成していない状態です。【要記入: これらのモデルが今後どう使われる予定なのか、あるいは完全に廃止予定なのか】
過去の復活の試みとその撤回
2026年4月6日に、「ModelEngineモデル復活」(コミット5663666)という変更が一度行われましたが、同日中に「Revert "ModelEngineモデル復活"」(コミット7e32b93)として取り消されています。
実際の差分を確認したところ、このときの変更内容は
assets/modelengine/ネームスペース自体の更新ではなく、プレイヤーヘッド(player_head.json)のカスタムモデルと、それに付随するentity.fsh/entity.vshシェーダーを1_21_5・1_21_6という名前のフォルダに追加するものでした。「復活」というコミット名がついていますが、厳密にはエモート・プレイヤーモデル描画に近い領域の変更だった点に注意してください。
このときに作成され、Revert後もリポジトリ内に空のディレクトリとして残っているのが次のフォルダです。中身はなく、gitの管理対象にもなっていない「残骸」ですが、削除してよいかどうかは念のため確認してから行ってください。
1_21_2/(空)1_21_5/(空)1_21_6/(空)ia_overlay_modern_atlas/(assets/minecraft/atlases/のみで中身のファイルなし)ia_overlay_legacy_atlas/(同上)
pack.mcmetaのoverlays.entriesには、これら5つのフォルダを指すオーバーレイ設定が現在も残っていますが、フォルダの中身が空のため実質的には何も読み込まれません。
再開する場合の注意点
ModelEngineの統合作業を将来再開する場合は、次の点を事前に確認・整理することをおすすめします。
- シェーダー互換性: エモートの項目で触れた通り、シェーダーはMinecraftのバージョンごとに書き方が変わりやすい部分です。ModelEngine側で必要になるシェーダーが、現在サポートしている1.21.11・26.1の両方で正しく動くか確認してください。
- アトラス設定:
ia_overlay_modern_atlas・ia_overlay_legacy_atlasという名前のオーバーレイが空のまま用意されています。テクスチャアトラス(複数のテクスチャをまとめて管理する仕組み)の設定が必要になった場合、この2つのフォルダを使う想定だったと考えられますが、詳細は【要記入: 当時アトラス分割が必要だった理由・設計意図】です。 packsquash.tomlのforce_include: 新しくModelEngine用のオーバーレイフォルダを使う場合、packsquash.tomlにforce_include設定を追加しないと、圧縮処理の際に意図せずファイルが除外される可能性があります。エモート対応でも同様の理由でオーバーレイの除外・force_include設定を調整した経緯があるため、あわせて確認してください。
関連ページ
- サーバーリソースパックの開発者向けトップページ
- /resourcepack/develop/itemsadder-merge(ItemsAdder生成パックとのマージ手順)
- リソースパックの更新と公開
