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ça | Ne olduğu | Nereye gider |
|---|---|---|
| Model JSON'u | Kutuların koordinatları ve her yüzün dokudaki yeri | resourcepack/assets/<ad alanı>/models/ |
| Doku (PNG) | Modelin yüzlerine gerilen görsel atlas | resourcepack/assets/<ad alanı>/textures/ |
| Yapılandırma (yml) | Eşyanın adı, malzemesi, davranışı, çarpışma kutusu | configs/ |
| Kaynak paketi | Yukarıdakilerin oyuncuya inen paketi | ItemsAdder ü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.
{
"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ğı.
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: 1generate: 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:
contents/
benim_paketim/
configs/
ahsap_masa.yml
resourcepack/
assets/
benim_paketim/
models/ahsap_masa.json
textures/ahsap_masa.pngSonra 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
texturesgirdisi<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:
hitboxblok cinsinden, birim cinsinden değil. İki blok eninde bir masa içinwidth: 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.