Kısaca
- Örnek operatör, etkin sahnedeki nesnelerin X konumuna 1,0 ekler.
- Eklentiyi Blender’da denedikten sonra .py uzantılı dosya olarak kaydedip Preferences içinden kurabilirsiniz.
- Eklenti etkinleştirildiğinde Blender register(), devre dışı bırakıldığında unregister() işlevini çalıştırır.
- Blender, -b seçeneğiyle arayüz açmadan arka planda çalıştırılabilir.
Bu rehberde ne öğreneceksiniz?
Bu rehberde Blender’da basit bir Python script’ini operatöre, ardından kurulabilir bir eklentiye dönüştürme sürecini inceleyeceksiniz. Örnek araç, etkin sahnedeki her nesnenin X konumuna 1,0 ekliyor. Buradaki amaç bu işlemi her mimari projede kullanmak değil; Blender’da araç geliştirmenin temel parçalarını, kodun nasıl kaydedildiğini ve kullanıcı arayüzünden nasıl çağrıldığını göstermek.
Ayrıca komut satırından arka plan render’ı başlatmak için kullanılan bazı seçenekleri de ele alacağız. Eklenti geliştirme ile render alma ayrı iş akışlarıdır; ortak noktaları, tekrarlanan işleri belirli ve takip edilebilir adımlara dönüştürmeleridir. Örneklerdeki işlemleri önemli bir proje dosyasında kullanmadan önce kopya bir dosyada denemek yerinde olur.
Gereksinimler
Blender’ın temel kullanımını ve Text Editor alanında script çalıştırmayı bilmek gerekir. Blender’ın eklenti rehberi ayrıca Python’ın temel veri türleri, modülleri ve sınıfları hakkında bilgi sahibi olunmasını bekliyor. Hata mesajlarını daha iyi incelemek için Blender’ı terminalden çalıştırmak da resmi kılavuzda önerilen yöntemlerden biri.
Aşağıdaki eklenti örneğindeki bl_info sözlüğünde yer alan (2, 80, 0) değeri, bu eklentiyi çalıştırmak için gereken minimum Blender sürümünü belirtir. Bu değer, eklentinin daha yeni sürümlerle otomatik olarak uyumlu olduğu anlamına gelmez; kodun kullanılacağı sürümde test edilmesi gerekir. Komut satırı belgesi ise Blender 5.2 LTS kılavuzunda yer alıyor.
Adım adım ilk eklentiyi oluşturma
Blender’da Text Editor alanında yeni bir metin açıp aşağıdaki kodu ekleyin. Kod,
ObjectMoveXadlı bir operatör tanımlar. Operatör çalıştırıldığında etkin sahnedeki nesneler üzerinde dolaşır ve her nesnenin X konumunu 1,0 artırır.UNDOseçeneği operatör için geri alma desteğini etkinleştirir.
bl_info = {
'name': 'Move X Axis',
'blender': (2, 80, 0),
'category': 'Object',
}
import bpy
class ObjectMoveX(bpy.types.Operator):
"""Move every scene object along the X axis."""
bl_idname = 'object.move_x'
bl_label = 'Move X by One'
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
scene = context.scene
for obj in scene.objects:
obj.location.x += 1.0
return {'FINISHED'}
def register():
bpy.utils.register_class(ObjectMoveX)
def unregister():
bpy.utils.unregister_class(ObjectMoveX)
if __name__ == '__main__':
register()bl_info, eklentinin adı ve kategorisi gibi bilgileri Blender’a verir; örnekteki sürüm alanı da minimum gereksinimi bildirir. execute() ise operatör çalıştırıldığında yapılacak işlemi içerir. Burada sahnenin bağlamı, fonksiyona verilen context üzerinden alınır. Resmi kılavuz, operatörlerde mümkün olduğunda bu parametrenin kullanılmasını öneriyor.
Text Editor içindeki Run Script düğmesine basarak kodu çalıştırın. Bu aşamada operatör kaydedilir; nesneler henüz taşınmaz. Operator Search menüsünü açıp
Move X by Oneadını arayın ve Enter’a basın. Kılavuzdaki örnekte bu görünen ad,bl_labelalanında tanımlanıyor.Script’i eklenti olarak kurmak için
.pyuzantılı, Python modülü adlandırma kurallarına uygun bir dosya adıyla kaydedin. Blender’da Preferences > Add-ons > Install… yolunu açıp dosyayı seçin. Eklenti listede göründüğünde etkinleştirin. Yeniden başlatma sonrasında da etkin kalmasını istiyorsanız kılavuzdaki Save as Default seçeneğini kullanın.
Eklenti etkinleştirildiğinde Blender register() işlevini, devre dışı bırakıldığında unregister() işlevini çağırır. Kodda bu işlevler operatör sınıfını kaydetme ve kaldırma görevini üstleniyor. Geliştirme aşamasında script’i doğrudan çalıştırmak hızlı bir deneme sağlar; eklentiyi kurmak ise Blender’ın onu tercihler içindeki eklenti listesinde yönetmesine imkân verir.
Mimari ve görselleştirme iş akışında kullanım
Örnekteki operatör, etkin sahnedeki tüm nesneleri etkiler. Bu nedenle bir mimari sahnede doğrudan çalıştırıldığında hangi nesnelerin hareket edeceği önemlidir. Ofis içinde böyle bir araç geliştirilecekse, işlemin kapsamını proje yapısına göre belirlemek ve önce deneme sahnesinde çalıştırmak gerekir. Bu örnek, hazır bir mimari dağıtım aracı değil, operatör mantığını anlatan başlangıç çalışmasıdır.
Blender’ın eklenti rehberinde ikinci bir örnek, etkin nesnenin bağlantılı kopyalarını 3D imleç ile nesne arasına yerleştiriyor. Kopyalar sahne koleksiyonuna bağlanıyor; konumları nesne ile imleç arasındaki ilişkiye göre hesaplanıyor. İlk sürümde toplam kopya sayısı 10 olarak sabitlenmiş. Bu örnek, tekrarlanan elemanlara yönelik araçların nasıl kurulabileceğini anlatırken, kullanıcı tarafından değiştirilebilen ayarların da eklenebileceğini gösteriyor.
Komut satırından render almak için Blender’ı -b ya da --background seçeneğiyle arka plan modunda çalıştırabilirsiniz. Resmi belgede yer alan Cycles örneği, belirli bir kareyi ve cihazı şöyle seçiyor:
blender -b file.blend -f 20 -- --cycles-device OPTIXBu komut 20. kareyi render eder ve OPTIX cihazını seçer. Kılavuzda geçerli Cycles cihaz seçenekleri CPU, CUDA, OPTIX, HIP, ONEAPI ve METAL olarak listeleniyor. Cihaz seçimi, kullanılacak sistemle uyumlu olmalıdır.
Animasyon karelerini PNG olarak çıktı almak için belgede ayrı bir komut örneği de bulunuyor:
blender -b animation.blend -o //render_ -F PNG -x 1 -aBu komutta -o çıktı yolunu, -F dosya biçimini, -x uzantının eklenmesini ve -a animasyon karelerinin render edilmesini belirtiyor. // ile başlayan yol .blend dosyasına göreli olarak değerlendirilir. Dosya adında # karakterleri kullanılırsa kare numarası için yer tutucu görevi görür. İki örnek farklı ihtiyaçları gösteriyor; kare, dosya biçimi, çıktı konumu ve cihaz gibi seçenekleri istenen render türüne göre düzenlemek gerekir.
Bu yaklaşım, tekrar eden sahne işlemlerini otomatize etmek isteyen Blender kullanıcılarına ve render’ı arayüz dışında çalıştırmayı planlayan ekiplere yarar sağlayabilir. Ancak kaynaklar belirli bir donanım gereksinimi ya da lisans maliyeti belirtmiyor. Eklenti bakımından Blender sürüm uyumluluğu, render tarafında ise seçilen cihaz ve açıkça tanımlanmış çıktı ayarları kontrol edilmeli.
Sık karşılaşılan hatalar ve sonraki adımlar
Script’i çalıştırmakla operatörü çalıştırmayı aynı adım sanmayın. Örnekte ilk işlem operatörü kaydeder; sahne değişikliği için operatör ayrıca çağrılmalıdır.
Operatörün kapsamını gözden geçirin. Örnekte etkin sahnedeki tüm nesnelerin X konumu değişir.
bl_infoiçindeki(2, 80, 0)değerini minimum sürüm gereksinimi olarak okuyun; bunu yeni Blender sürümleriyle uyumluluk garantisi saymayın.Arka plan render’ında dosya yolu, çıktı biçimi, kare aralığı ve Cycles cihazını ihtiyaca göre belirtin. Örnek komutların biri diğerinde bulunmayan ayarlar içerebilir.
Bir sonraki aşamada Blender API belgelerindeki bpy.context ve bpy.types.Operator başlıkları incelenebilir. Resmi eklenti rehberi operatör özellikleriyle sabit değerleri kullanıcı tarafından ayarlanabilir hâle getirme konusuna da geçiyor. Araç büyüdükçe kopya sayısı gibi değerleri ayarlanabilir seçeneklere dönüştürmek, farklı sahne ihtiyaçlarını karşılamaya yardımcı olabilir.
Kaynak ve lisans
Bu rehber, Blender Manual’daki “Add-on Tutorial” ve “Command Line Arguments” belgelerinden yararlanılarak uyarlanmıştır. Her iki kaynak da CC BY-SA 4.0 lisansıyla yayımlanmıştır; içerik bu lisans koşullarına uygun biçimde Türkçeye uyarlanmıştır.
Sık sorulan sorular
Blender’da Python eklentisi nasıl kurulur?
Eklenti kodunu `.py` uzantılı dosyaya kaydedin. Preferences > Add-ons > Install… yolundan dosyayı seçip eklentiyi etkinleştirin.
Blender operatörü çalıştırılınca sahne hemen değişir mi?
Script’in çalıştırılması örnekte operatörü kaydeder. Sahne değişikliği için Operator Search menüsünden operatörü ayrıca çalıştırmak gerekir.
Blender arayüz olmadan render alabilir mi?
Evet. Komut satırında `-b` veya `--background` seçeneği Blender’ı arka plan modunda çalıştırır.
Kaynaklar
2 kaynakKaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.
Küçük bir operatör örneği, Blender’da tekrarlanan işleri otomatikleştirmeye başlamak isteyen mimarlık ofisleri ve öğrenciler için anlaşılır bir temel sunuyor. Asıl değer, örnekteki nesne taşıma işlemini aynen kullanmak değil; operatör, kayıt ve çalıştırma adımları arasındaki ilişkiyi kavrayıp proje ihtiyacına göre uyarlamak.
Türkiye’de uygulamaya geçmeden önce ekipteki Python deneyimi ve kullanılacak Blender sürümü hesaba katılmalı. Kaynaklar eklenti maliyeti veya özel donanım gereksinimi belirtmiyor. Arka plan render’ında ise seçilen Cycles cihazının sistemle uyumunu kontrol etmek ve çıktı ayarlarını açıkça tanımlamak önemli.




Yorumlar 0