このセクションは、内容を広く浅くした、初心者による初心者向けの概要として設計されており、最初の Mod を開始する前に背景知識として必要な基本的な概念と定義をカバーしています。ゲームに表示される要素に関連する概念もあれば、 Mod 製作中に頻繁に使用される使用済みファイルまたはクラスに関連する概念もあります。これらの用語と概念を理解することで、ウィキの他のセクションを理解しやすくなることを願っています。
概念 | 和訳 | 説明 |
---|---|---|
Item | アイテム | 手に持ったり、地面に落としたり、在庫に入れたり、コンテナに保管したりできるものを指します。それはそれを置く前に手に持った道具かブロックかもしれません。 |
Block | ブロック | Minecraft で構築し、世界中に配置されているものすべての重要なコンポーネントを指します。多くのブロックは立方体ですが、世界に配置するほとんどのものは、かまどのようにブロックとして実装されます。ボタン、柵、ドアなど、一部のブロックは立方体のようには見えませんが、それでもブロックとして扱われます。ブロックは、ゲームで見られる実際の単一のブロックではなく、ブロックのタイプの定義としてコードで考えられるべきであることに注意することが重要です。 |
Block state | ブロック状態 | ブロックの状態(コードでは “state” という名前でよく見られます)とそのプロパティ(方向、浸水、成長段階など)とともにブロックの特定のインスタンスを指します。これは、プレイ中に通常ブロックとして考えるものです。各ブロック状態は、独自の3Dモデルを持つことができます。 |
Block item | ブロックアイテム | ブロックのアイテムとしての状態を指します。あなたが手に持ったり、複数個をまとめて収納したりできるものです。 |
Entity | エンティティ | 通常移動する、世界の動的なオブジェクトを指します。たとえば、アイテムの場合は ItemEntity であり、当然ながら LivingEntity もです。 発射物、額縁、絵画など、他のいくつかのものもエンティティとして実装されることがあります。 |
Living entity | 生物エンティティ | プレイヤーやモブ(牛、ゾンビ、コウモリなど)のように、生きていて動いているエンティティを指します。エンティティのサブカテゴリにあたります。 |
Block entity | ブロックエンティティ | チェストに収められているアイテムやかまどの精錬の進行状況などの、ブロックの追加データを保持します。ティックするときなどに、ブロックに追加のロジックを提供できます。BlockEntityProvider を実装するもののみがブロックエンティティを持ち、 すべてのブロックにブロックエンティティがあるわけではありません。ブロックエンティティはエンティティと同じものではありません! |
Block/item model | ブロック/アイテムモデル | モデルは、ブロックまたはアイテムの外観を表すために使用される記述データのセットを指します。たとえば、鉄ブロックやかまどには、各面の形状とサイズを説明する情報や、特定の表面に独自の外観を与えるために使用されるテクスチャ(画像)の場所に関する情報が含まれます。 モデルは通常 JSON ファイルで記述されますが、 Java コードを介して生成することもできます。 |
Entity model | エンティティモデル | エンティティには独自の 3D モデルもあり、通常はコードで net.minecraft.client.render.entity.model.EntityModel のインスタンスとして完全に定義されます。 |
Texture | テクスチャ | 表面に独自の外観を与えるために使用される画像を指します。これらは通常、ブロックやアイテムの場合は 16 × 16 ピクセルの .PNG ファイルとして、エンティティや GUI 要素の場合はより大きな画像として実装されます。 |
Renderer | レンダラー | ほとんどの Mod は、 blockstates を使用し、 JSON ファイルと .PNG テクスチャをモデル化してブロックとアイテムの完全な表現を提供し、デフォルトのレンダリングメカニズムに依存してそれらを世界に表示しますが、より複雑な挙動をさせたくなる場合があります。このような場合、カスタムレンダラーを作成する必要があります。エンティティは常にレンダラーを使用します。 |
NBT | NBT | NBT は、Minecraft で使用されるデータファイルのフォーマットです。NBT の save/load メソッドはエンティティやブロックエンティティクラスで使われ、ワールドの保存や読み込みを可能にします。複雑に聞こえるかもしれませんが、2 つのメソッドをオーバライドして数行のコードを書くだけです。ブロックエンティティの追加 に詳しい説明があります。 |
Sides | サイド | Minecraft は、クライアントとサーバーの 2 つのサイドで設計されています。サーバーでプレイする場合は、それらの区分は明確です。しかし、自分のコンピューターでプレイする場合であっても、サーバーの部分は存在します。クライアントとサーバーの両方から呼び出されている特定のオーバーライドされたメソッドがよく見られます。どちらの側に応答しているかを区別するには、それをテストする必要があります。最も簡単で一般的な方法は、boolean 値を返すメソッド world.isClient() で確認することです。 サイド に詳しい説明があります。 |
Data sync | データの同期 | ブロックのデータをそのブロックエンティティに保存することはできますが、そのようなデータはサーバーとクライアントの間を自動的に移動しません。これを有効にするために、数行のコードを書く必要があります。ブロックエンティティの追加 に詳しい説明があります。 |
この記事は初期バージョンです。まだ追加するべき多くの概念があるでしょう。初心者の方で、学習中に説明されていない概念に出くわし困った場合は、このページに追加してください。専門家の方は、 Minecraft や Fabric の改造について何も知らない人でも理解できるように、説明をわかりやすくしたり、誤りを修正したりしてください。