This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold temelde bir 3B motordur. Yalnızca 2B içerikle çalışırken bile tüm işleme (rendering) 3B olarak yapılır, ancak ekrana ortografik izdüşümle yansıtılır. Defold, 3B varlıkları (asset), yani modelleri (model) koleksiyonlarınıza (collection) ekleyerek tamamen 3B içerik kullanmanıza olanak tanır. Yalnızca 3B varlıklarla tamamen 3B oyunlar geliştirebilir veya 3B ve 2B içeriği istediğiniz gibi birleştirebilirsiniz.
Model bileşenleri (model component), diğer oyun nesnesi (game object) bileşenleri gibi oluşturulur. Bunu iki şekilde yapabilirsiniz:

Modeli oluşturduktan sonra bazı özellikleri belirtmeniz gerekir:
Id, Position ve Rotation özelliklerine ek olarak bileşene özgü şu özellikler bulunur:
Yukarıdaki özelliklere ek olarak modelin her örgüsüne bir materyal (material) atamak için bir alan da bulunur:
Materyale bağlı olarak bir veya daha fazla doku (texture) özelliği bulunur:
Model bileşenini ekledikten sonra standart Scene Editor araçlarıyla bileşeni ve/veya onu içeren oyun nesnesini düzenleyip değiştirebilir, modeli istediğiniz gibi taşıyabilir, döndürebilir ve ölçekleyebilirsiniz.
Modelleri çalışma sırasında çeşitli işlevler ve özellikler aracılığıyla değiştirebilirsiniz (kullanım için API belgelerine bakın).

Defold, animasyonu çalışma sırasında kontrol etmek için güçlü destek sunar. Model animasyonu kılavuzunda daha fazla bilgi bulabilirsiniz:
local play_properties = { blend_duration = 0.1 }
model.play_anim("#model", "jump", go.PLAYBACK_ONCE_FORWARD, play_properties)
Animasyon oynatma imleci, elle veya özellik animasyonu (property animation) sistemi aracılığıyla canlandırılabilir:
-- set the run animation
model.play_anim("#model", "run", go.PLAYBACK_NONE)
-- animate the cursor
go.animate("#model", "cursor", go.PLAYBACK_LOOP_PINGPONG, 1, go.EASING_LINEAR, 10)
Modeller glTF biçim hedefi animasyonlarını da kullanabilir. Biçim hedefi ağırlıklarına diğer model animasyonlarında olduğu gibi model.play_anim() ile animasyon uygulanır. Bu ağırlıklar çalışma sırasında model.get_blend_weights() ve model.set_blend_weights() kullanılarak okunabilir veya geçersiz kılınabilir. Ayrıntılar için model animasyonu kılavuzundaki biçim hedefleri bölümüne bakın.
Bir modelin go.get() ve go.set() kullanılarak değiştirilebilen çeşitli özellikleri de vardır:
animationhash) (SALT OKUNUR). Animasyonu model.play_anim() kullanarak değiştirirsiniz (yukarıya bakın).cursornumber).materialhash). Bunu bir materyal kaynak özelliği ve go.set() kullanarak değiştirebilirsiniz. Bir örnek için API başvuru belgelerine bakın.playback_ratenumber).textureNhash). Bu özellikleri go.get() ile okuyabilir, bir doku kaynak özelliği ve go.set() kullanarak değiştirebilirsiniz. Defold, çizim başına en fazla 16 dokuyu destekler; ancak doku örnekleyici sınırı daha düşük olan grafik bağdaştırıcılarında bir gölgelendiricinin (shader) kullanabileceği sayı daha az olabilir.3B yazılımlar genellikle nesnenizin köşelerinde (vertex) renklendirme ve doku kaplama gibi özellikler ayarlamanıza olanak tanır. Bu bilgiler, 3B yazılımınızdan dışa aktardığınız glTF .gltf veya .glb dosyasına yazılır. Oyununuzun gereksinimlerine bağlı olarak nesneleriniz için uygun ve iyi performans gösteren materyaller seçmeniz ve/veya oluşturmanız gerekir. Bir materyal, gölgelendirici programlarını (shader program) nesnenin işlenmesi için kullanılan bir dizi parametreyle birleştirir.
Başlangıç noktası olarak kullanabileceğiniz birkaç yerleşik materyal vardır:
Yerleşik model materyalleri yerel köşe uzayını (local vertex space) kullanır. İskelete bağlı modellerde yerel köşe uzayı, köşe gölgelendiricisinin bir kemik matrisi dokusu kullanarak GPU üzerinde iskelete bağlama (skinning) işlemini gerçekleştirmesini sağlar; model örneği oluşturma işlemi için de yerel köşe uzayı gereklidir. Bu nedenle, GPU üzerinde iskelete bağlanan veya örnek oluşturma kullanılan modeller için tasarlanan özel bir materyalin Local köşe uzayı ayarını kullanması önerilir.
Kemik matrisi önbelleği bir RGBA32F dokusu kullanır. Etkin grafik bağdaştırıcısı bu doku biçimini desteklemiyorsa Defold, yerel uzay materyali kullanan animasyonlu bir Model bileşeni oluşturamaz. Bu nedenle OpenGL ES 2.0 ve WebGL 1.0 üzerindeki destek, bağdaştırıcının kayan noktalı doku uzantısına bağlıdır. Bu uzantıya sahip olmayan bir bağdaştırıcıyla uyumluluk için, CPU üzerinde iskelete bağlama yapan ve model örneği oluşturmayı desteklemeyen özel bir dünya uzayı materyali kullanın. Önbellek boyutları Model proje ayarları ile ayarlanabilir.
Modelleriniz için özel materyaller oluşturmanız gerekiyorsa bilgi için Materyal belgelerine bakın. Gölgelendirici kılavuzu, gölgelendirici programlarının nasıl çalıştığı hakkında bilgi içerir.
Varsayılan model materyalinde (material), go.set() veya go.animate() kullanarak değiştirebileceğiniz aşağıdaki sabitler bulunur (daha fazla ayrıntı için Materyal kılavuzuna bakın). Örnekler:
go.set("#model", "tint", vmath.vector4(1,0,0,1))
go.animate("#model", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tintvector4). Renk çarpanı vector4 ile temsil edilir; x, y, z ve w sırasıyla kırmızı, yeşil, mavi ve alfa renk çarpanlarına karşılık gelir.Varsayılan işleme betiği (render script), 2B oyunlar için özel olarak hazırlanmıştır ve 3B modellerle çalışmaz. Ancak varsayılan işleme betiğini kopyalayıp betiğe birkaç satır kod ekleyerek modellerinizin işlenmesini etkinleştirebilirsiniz. Örneğin:
function init(self)
self.model_pred = render.predicate({"model"})
...
end
function update()
...
render.set_depth_mask(true)
render.enable_state(graphics.STATE_DEPTH_TEST)
render.set_projection(stretch_projection(-1000, 1000)) -- orthographic
render.draw(self.model_pred)
render.set_depth_mask(false)
...
end
İşleme betiklerinin nasıl çalıştığına ilişkin ayrıntılar için İşleme belgelerine bakın.