İçeriğe geç
Rehber

ItemsAdder modeli nasıl yapılır

3 dk okuma

ItemsAdder için bir model yapmak tek bir dosya hazırlamak değil, dört ayrı parçayı birbirine bağlamak demek: modelin geometrisi, dokusu, eklentinin yapılandırma dosyası ve oyuncuya inen kaynak paketi. Aşağıda her birinin ne olduğu, nereye konduğu ve sık takılınan yerler var.

Önce şunu anlamak gerekiyor: Minecraft aslında yeni eşya tanımıyor

Sunucuda gördüğün özel sandalye, aslında sandalye değil. Sunucu oyuncuya sıradan bir eşya veriyor (çoğunlukla kâğıt) ve üstüne bir işaret koyuyor. Oyuncunun bilgisayarındaki kaynak paketi o işareti görüp "bunu kâğıt gibi değil, şu modeli kullanarak çiz" diyor. ItemsAdder, Oraxen, Nexo ve CraftEngine'in hepsi bu numaranın üstüne kurulu.

Bunun iki sonucu var. Birincisi: kaynak paketi olmayan oyuncu senin modelini göremez, elinde kâğıt görür. İkincisi: model dosyası sunucuda değil, oyuncunun istemcisinde çalışır. Sunucu tarafında olan tek şey eşyanın davranışı — nereye konabildiği, çarpışma kutusu, kırılınca ne düşürdüğü.

Dört parça

ParçaNe olduğuNereye gider
Model JSON'uKutuların koordinatları ve her yüzün dokudaki yeriresourcepack/assets/<ad alanı>/models/
Doku (PNG)Modelin yüzlerine gerilen görsel atlasresourcepack/assets/<ad alanı>/textures/
Yapılandırma (yml)Eşyanın adı, malzemesi, davranışı, çarpışma kutusuconfigs/
Kaynak paketiYukarıdakilerin oyuncuya inen paketiItemsAdder üretiyor

Model JSON'u nasıl bir şey

Minecraft modeli, eksenlere hizalı kutuların listesinden ibaret. Her kutunun bir başlangıç köşesi (from) ve bir bitiş köşesi (to) var, koordinatlar 16 birimlik bir kübün içinde ölçülüyor: 16 birim tam olarak bir blok.

json
{
  "textures": { "0": "minemodelai:masa", "particle": "minemodelai:masa" },
  "elements": [
    {
      "name": "tabla",
      "from": [1, 12, 1],
      "to": [15, 14, 15],
      "faces": {
        "up":   { "uv": [0, 0, 8, 8], "texture": "#0" },
        "down": { "uv": [8, 0, 16, 8], "texture": "#0" }
      }
    }
  ]
}

uv alanı o yüzün doku atlasının neresinden boyanacağını söylüyor. Elle model yaparken en çok zaman alan iş bu: her kutunun altı yüzü için atlasta yer ayırmak ve koordinatları tutturmak. Blockbench bunu senin yerine yapıyor.

Yapılandırma dosyası

ItemsAdder eşyayı bu dosyadan tanıyor. En sade hâli şöyle: ad alanı, eşya kimliği, görünen ad, hangi vanilla eşyanın üstüne bindiği ve hangi modeli kullanacağı.

yaml
info:
  namespace: benim_paketim
items:
  ahsap_masa:
    display_name: "Ahşap masa"
    resource:
      generate: false
      material: PAPER
      model_path: ahsap_masa
    behaviours:
      furniture:
        solid: true
        placeable_on:
          floor: true
          walls: false
          ceiling: false
        hitbox:
          width: 1
          length: 1
          height: 1

generate: false önemli: ItemsAdder'a "dokuyu sen üretme, benim hazırladığım model dosyasını kullan" diyor. furniture davranışı eşyayı yere konabilen bir mobilyaya çeviriyor; onsuz elde tutulan sıradan bir eşya olarak kalıyor.

Klasör düzeni

Bütün bunlar tek bir ağaç hâlinde plugins/ItemsAdder/contents/ altına giriyor:

text
contents/
  benim_paketim/
    configs/
      ahsap_masa.yml
    resourcepack/
      assets/
        benim_paketim/
          models/ahsap_masa.json
          textures/ahsap_masa.png

Sonra sunucuda /iazip çalıştırılıyor — ItemsAdder kaynak paketini kurup dağıtıma hazırlıyor — ve /iareload ile yapılandırma yeniden okunuyor.

Sık takılınan yerler

  • Mor-siyah damalı model: doku yolu yanlış. Model JSON'undaki textures girdisi <ad alanı>:<dosya adı> biçiminde olmalı ve klasördeki adla birebir aynı yazılmalı — büyük/küçük harf dahil.
  • Model görünmüyor ama eşya elde duruyor: kaynak paketi oyuncuya inmemiş. Sunucu ayarlarında paket zorunlu tutulmuyorsa oyuncu reddetmiş olabilir.
  • Model havada duruyor ya da zemine gömülü: mobilya ölçeği ve kayması yanlış. ItemsAdder mobilyayı küçük bir armor stand'in kafa yuvasında çiziyor, bu yüzden ölçeğin telafi edilmesi gerekiyor.
  • Çarpışma kutusu modelden büyük: hitbox blok cinsinden, birim cinsinden değil. İki blok eninde bir masa için width: 2.

Bu işi elle yapmak ne kadar sürüyor

Basit bir masa için Blockbench'te yarım saat, doku için bir o kadar, yapılandırma ve deneme yanılma için biraz daha. İlk modelde bunun katı; çünkü Blockbench'in kendi mantığını, UV yerleşimini ve eklentinin beklediği klasör düzenini aynı anda öğreniyorsun.

MineModel AI tam olarak bu dört parçayı üretiyor: tarifi yazıyorsun, model JSON'u, doku atlası ve doldurulmuş yml dosyası contents/ altına atılmaya hazır bir klasör ağacı hâlinde iniyor. Aynı üretimden Nexo, Oraxen, CraftEngine, Blockbench ve düz kaynak paketi sürümleri de çıkıyor.