【Hytale plugin 制作】配布モデルを自分のpluginとして読み込んでみる。#2

新規アイテムを追加する方法の紹介記事サムネイル

前回は開発環境のセットアップまでを解説しました。今回は、いよいよオリジナルのアイテムをHytaleの世界に召喚してみます。

Hytaleのバリデーション(ファイル検査)は非常に厳格で、一文字の間違いやフォルダ階層のミスで読み込めなくなります。正しいフォルダ構成(動作確認したもの)を紹介します。

前回 自作プラグイン環境を作る : 【Hytale plgin制作】開発環境の準備 githubから入手#1

※本記事はアーリーアクセス版(2026/04時点)の情報に基づいています。開発環境の仕様は今後変わる可能性があるため、公式の更新も併せてチェックしてくださいね。

0. 今回使用するモデル:公式の「Iron Sword」

hytale iron sword を blockbenchで読み込んだ画像

BlockBenchで読み込んでみた

いきなりモデリングしていってもいいですが、ひとまずは動くことが保証されている公式が配布しているモデルを読み込ませてみようと思います。

公式のNewsページ(2025/12/11)で配布されているサンプルモデルの中から iron_sword を使用します。

これをベースに、名前を My_Sword などに変更して、自分のプラグインの一部として読み込ませてみましょう。

モデリングの方法については、An Introduction to Making Models for Hytaleとして、テクスチャの書き方などから紹介されています。次回 推奨されるモデリングエディタ(BlockBench)のインストール方法とかおすすめとされているプラグインなどを紹介予定です。

BlockBenchインストール : (記事は現在利用できません: ID 6261)

最終的なフォルダ構成

注意点は、Commonというフォルダを作り、その中に決まった形式 ( Blocks/, Items/, Resources/, NPC/, VFX/, Consumable/のどれか)のフォルダを作ることです。 決まった形式の中は自由に書けますが、公式のフォルダ形式を見ていると、 ToolsやArmorなど比較的体系化されたフォルダ形式で管理されているみたいです。

resouses
└─Common
| └─Items <- ここまでは決まった形式
| | └─Tools <- ここからは自由
| |   └─ models
| |   |  └─ My_Sword.blockymodel
| |   └─textures
| |     └─ My_Sword.png
| └─ manifest.json  <- idなどの設定
└─Server 
| └─Item\Items\My_Sword.json <- アイテムの詳細(ファイル参照などを書く)
└─ manifest.json  <- パッケージについての説明(前回説明)

前回 自作プラグイン環境を作る : 【Hytale plgin制作】開発環境の準備 githubから入手#1

1. Commonなどのフォルダを作る。

plugin-templateのリポジトリをとってきて前回のファイル記述をした時点では、以下のようになっているはずです。

resouses
└─ manifest.json  <- パッケージについての説明(前回説明)

manifest.jsonだけ入っているので、とりあえずServerやCommonなどのフォルダを作ります。

resouses
└─Common
| └─Items
|   └─Tools <- ここからは自由
|     └─ models
|     └─ textures
└─Server 
| └─Item\Items
└─ manifest.json  <- パッケージについての説明(前回説明)

フォルダだけ作成した例

2. モデルとテクスチャを配置

自身でモデリング、または、公式からもらってきたモデルとテクスチャをmodelsとtexturesに配置します。

このとき、新規アイテムとして読み込みたいので、ファイル名を変えておきます。ファイル名は、頭文字を大文字にして命名してください。 (例 My_Sowrd.blockymodel , My_Sword.png)

3. [アイテム名].jsonを作る

Server\Item\Itemsに[アイテム名].jsonという名前のファイルを配置することで自動的に、アイテムがサーバにロードされるようになります。

My_Sowrd.json の例

{
  "Id": "My_Sowrd",
  "Model": "Items/Tools/models/My_Sowrd.blockymodel",
  "Texture" : "Items/Tools/textures/My_Sowrd.png",
}

このほかにも設定がいろいろできますが、最小構成としてはこんな感じになると思います。

4. 最後にmanifest.json (idなどの設定)をする

Commonの中に配置し、プラグインの名前空間などを設定するmanifest.jsonを作ります。

{
  "Id": "new_asset",
  "Name": "new Assets",
  "Version": "1.0.0",
  "ServerVersion": "*"
}

5. サーバを起動し、アイテム召喚する。

ここまで設定できたらサーバを起動します。

.\gradlew.bat devServer

正常に起動できれば、Itemの数が、バニラの 3683から1つ増えて 3684になっているはずです。

[AssetModule|P] Total Loaded Assets: Interaction: 7423, BlockType: 5746, RootInteraction: 5498, Item: 3684, CraftingRecipe: 1938, ParticleSpawner…..

サーバの認証

サーバ起動すると以下のようなwarnがあると思います。

[2026/MM/DD hh:mm:ss WARN] [HytaleServer] No server tokens configured. Use /auth login to authenticate.

localで起動していても、認証していないとゲーム側から接続できないので、以下のコマンドのどちらかで、自身のアカウントにログインして認証を行います。(Hytaleアカウントが必要です)

auth login browser
# または。
# auth login device

Hytaleインストールとアカウント : 【Hytale】アカウント作成からゲーム起動までの手順を徹底解説!導入ガイド

ゲームから接続

アイテムが登録できていることを確認出来たら、Hytaleを起動。serverから、直接接続を選び、localhostの172.0.0.1 を打ち込んで接続します。

hytaleにローカルホストで接続

localサーバに接続

アイテム付与してみる

ゲームにログインできたら、サーバのターミナル(CLI)に戻り、以下のコマンドを実行します。(ユーザ名はゲーム内の自身のアカウントの者に変えてください)このコマンドは、指定したキャラクタにアイテムを渡すコマンドです。

/give <Username> My_Sowrd

これを実行するとゲーム内のインベントリに、剣が追加されているはずです。

自分で追加したアイテムをゲーム内で確認した様子

My_Sowrd(アイテムのICON未指定なので ? 表示)

剣の見た目をしていますが、モーションなどは設定していないので、アイテムのデフォルトモーションになっていることが確認できます。

デフォルトモーションになっている

ここまででアイテムの導入まで完了しました。

さいごに

今回は、Hytaleの厳格な「フォルダ構造」の壁を突破し、公式サンプルモデルを自分のアイテムとしてゲーム内に登場させるまでを解説しました。

Hytaleのモッディングは、Minecraftなどのこれまでのゲームと比べてもバリデーション(データの整合性チェック)が非常に強力です。一見遠回りに見える「Itemsフォルダの中にmodelsフォルダを作る」といった独特な階層ルールも、エンジンの仕組みを理解してしまえば、整理された開発環境へと繋がっていきます。

今回のポイントを復習すると:

  • アセットは Common/ の直下に規定のルート名(Items/など)を置くこと
  • サーバー定義は Server/Item/Items/ で管理すること
  • JSONのキーは大文字から書き始めること

とりあえず「形」を表示させることはできましたが、今のままではアイコンが「?」だったり、剣なのに素手と同じ振り方をしたりと、まだ改善の余地があります。

関連記事は、2026年4月18日に公開予定 (あと21時間)

関連記事は、2026年4月18日に公開予定 (あと12時間)

関連記事

第0回 Hytale plugin用の環境構築 : Hytale plugin用の環境構築【VSCode ,Java ,BlockBench】

第1回 自作プラグイン環境を作る : 【Hytale plgin制作】開発環境の準備 githubから入手#1

第2回おまけ 名前空間などで小一時間溶かした話 :Hytaleプラグイン開発:アイテム定義JSONで”tkm:Items”と書いて1時間溶かした供養メモ。【Hytale plgin制作】