Kısaca
- Blender eklentisi, uygulamanın tanıyıp listeleyebilmesi için ek bilgiler içeren bir Python modülüdür.
- Örnek operatör, etkin sahnedeki tüm nesneleri X ekseninde 1 birim taşır.
- Eklenti, Blender’ın Metin Düzenleyicisi’nde test edilebilir ve .py dosyası olarak yüklenebilir.
- Kılavuz, Blender ve Python temellerinin yanı sıra modül ve sınıf kavramlarını bilmeyi öneriyor.
Bu rehberde ne öğreneceksiniz?
Bu rehberde, Blender’da çalışan basit bir Python betiğini bir operatöre ve ardından yüklenebilir bir eklentiye dönüştüreceksiniz. Örnekteki araç, etkin sahnedeki bütün nesneleri X ekseninde 1 birim hareket ettiriyor. Amaç, hazır bir üretim aracı sunmak değil; Blender’ın operatörleri nasıl tanımladığını, kaydettiğini ve çalıştırdığını adım adım açıklamak.
Bir eklenti, Blender’ın tanıyıp listesinde gösterebilmesi için gereken ek bilgilere sahip bir Python modülüdür. bl_info sözlüğü eklentinin adı ve kategorisi gibi bilgilerin yanı sıra çalışması için gereken en düşük Blender sürümünü belirtir. Operatör ise bir işlemi Blender içinden çağrılabilir hâle getirir. Bu örnekte işlemi Operatör Arama penceresinden çalıştıracağız.
Önemli bir ayrıntı: örnek, yalnızca seçili nesneleri değil, etkin sahnedeki tüm nesneleri etkiler. Bu nedenle ilk testleri önemli bir proje dosyasında değil, deneme sahnesinde veya dosyanın bir kopyasında yapmak daha güvenlidir.
Gereksinimler
Blender’ın temel kullanımını bilmeniz ve Metin Düzenleyicisi’nde bir betiği çalıştırabilmeniz bekleniyor. Python tarafında sayı, Boolean, metin, liste, demet, sözlük ve küme gibi temel türlere aşinalık da öneriliyor. Kılavuz ayrıca Python modülleri ve sınıfları hakkında temel bilgiye sahip olmayı tavsiye ediyor.
Kılavuzdaki örneğin eklenti bilgilerinde Blender sürümü (2, 80, 0) olarak belirtilmiş. Bu değer, örnek metadata’sında yazan en düşük sürüm bilgisidir; kodun güncel Blender sürümleriyle ayrıca sınandığı anlamına gelmez. Kullandığınız sürümde API davranışını doğrulamak gerekir. Bir kullanıcı hesabı, donanım özelliği veya ücretli lisans gereksinimi belirtilmiyor.
Hata ayıklamak için Blender’ı terminalden çalıştırmak seçeneklerden biri. Kılavuz, tercihlerden Geliştirici Ekstraları’nı açmanın da eklenti geliştirme sürecini destekleyebileceğini belirtiyor.
Adım adım: ilk operatörü yazın
1. Kodu Metin Düzenleyicisi’ne ekleyin
Aşağıdaki örnekte ObjectMoveX sınıfı operatörü tanımlar. execute() çalıştırıldığında etkin sahnenin nesneleri tek tek ele alınır ve her birinin X konumuna 1.0 eklenir. bl_options içindeki UNDO seçeneği, operatörün geri alma desteğiyle kullanılmasını sağlar.
bl_info = {
"name": "Move X Axis",
"blender": (2, 80, 0),
"category": "Object",
}
import bpy
class ObjectMoveX(bpy.types.Operator):
"""My Object Moving Script"""
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()Bu sade örnek, operatör sınıfını kaydeder; ayrıca menüye bir arayüz öğesi eklemez. unregister() da kaydedilmiş sınıfı kaldırır. bl_idname operatörün benzersiz kimliğini, bl_label ise Blender arayüzünde ve aramada görünen adını belirtir. İşlem başarılı olduğunda execute() fonksiyonu FINISHED sonucunu döndürür.
2. Betiği çalıştırın ve operatörü çağırın
Kodu Blender’ın Metin Düzenleyicisi’ne yapıştırıp çalıştırın. Betik, operatörü kaydeder; nesneleri bu aşamada kendiliğinden hareket ettirmez. Ardından Operatör Arama penceresini açın, Move X by One adını aratın ve operatörü çalıştırın. İşlem etkin sahnedeki tüm nesneleri X yönünde 1 birim taşır.
execute(self, context) içindeki context parametresini kullanmak önemlidir. Blender, operatörleri bazı durumlarda özel bir bağlamla çalıştırabilir. Kılavuz bu nedenle doğrudan genel bağlama başvurmak yerine operatöre verilen context değerinin kullanılmasını öneriyor.
3. Dosyaya kaydedip eklenti olarak yükleyin
Test ettiğiniz betiği bir dosyaya kaydedin. Dosya adını Python modülünde kullanılabilecek biçimde seçin ve .py uzantısını ekleyin. Blender tercihlerinde Eklentiler bölümündeki yükleme seçeneğini açın, dosyayı seçin ve eklentiyi listeden etkinleştirin. Yeniden başlatma sonrasında da etkin kalmasını istiyorsanız, kılavuzdaki Varsayılan Olarak Kaydet seçeneğini kullanabilirsiniz.
Eklentiyi açmak, Blender’ın modülü çalıştırıp register() içindeki kayıt işlemlerini yapmasını sağlar. Eklentiyi kapatırken Blender bu kez unregister() işlevini çağırır; örnekte bu, operatör sınıfının kaldırılması demektir. Kurulum sırasında kaynak ve hedef klasörler konsolda gösterilebilir. Kılavuz, eklenti yollarını Python Konsolu’nda addon_utils.paths() kullanarak görüntüleme yöntemini de anlatıyor.
Mimarlık ve görselleştirme iş akışında kullanım
Bu örnek, teknik sanatçıların veya geliştiricilerin tekrar eden işleri Blender içinde bir operatöre dönüştürmesinin temel mantığını gösterir. Mimari sahnelerde benzer bir yaklaşım, açıkça tanımlanabilen ve tekrar tekrar yapılan işlemler için özel araçlar tasarlarken başlangıç noktası olabilir. Ancak bu kod, üretim sahnesinde doğrudan kullanılmaya hazır bir ofis aracı değildir: etkin sahnedeki tüm nesnelerin konumunu değiştirir.
İlk test için kopya bir sahne kullanın ve operatörün hangi nesnelere etki ettiğini kontrol edin. Eklentiyi ekipte paylaşmadan önce hedef Blender sürümünü ve kullanılan API öğelerinin uyumluluğunu ayrıca doğrulayın. Kaynak, belirli bir donanım gereksinimi belirtmiyor; bu nedenle donanım tavsiyesi çıkarmak mümkün değil. Lisans koşulları ve sürüm uyumluluğu da dağıtım öncesinde değerlendirilmelidir.
Sık yapılan hatalar
Betiği çalıştırınca nesnelerin hemen hareket etmesini beklemek: İlk çalıştırma operatörü kaydeder. Nesneleri değiştirmek için Operatör Arama penceresinden
Move X by Oneseçilmelidir.Etki alanını gözden kaçırmak: Kod seçili nesnelerle sınırlı değildir; etkin sahnedeki bütün nesneleri işler.
Dosya biçimini unutmak: Eklenti dosyasını
.pyuzantısıyla kaydedin ve Python modülünde kullanılabilecek bir ad seçin.Kaydetme ile etkinleştirmeyi aynı işlem sanmak: Dosyanın kaydedilmesi tek başına eklentiyi etkinleştirmez. Dosyanın tercihlerden yüklenmesi ve listeden açılması gerekir.
Sonraki adımlar
Önce örneği deneme sahnesinde çalıştırın ve operatörün sonucunu gözlemleyin. Ardından bl_info, operatör sınıfı, execute() ve kayıt işlevlerinin görevlerini ayrı ayrı inceleyin. Sonraki geliştirme aşamasında sabit değerleri kullanıcı tarafından ayarlanabilir operatör özelliklerine dönüştürmeyi araştırabilirsiniz; Blender kılavuzunun devamında bu konu ve bağlı nesne kopyaları oluşturan başka bir örnek ele alınıyor.
Hata mesajlarıyla karşılaşıldığında Blender’ın konsol çıktısını incelemek sorunun hangi adımda oluştuğunu anlamaya yardımcı olabilir. Blender API genel bakışı, bpy.context ve bpy.types.Operator belgeleri de kullanılan kavramları daha ayrıntılı incelemek için kılavuzun işaret ettiği başvuru kaynakları arasında.
Kaynak ve lisans
Bu rehber, Blender’ın resmî “Add-on Tutorial” belgesindeki eklenti ve operatör örneği temel alınarak Türkçeye uyarlanmıştır. Kaynak CC BY-SA 4.0 lisanslıdır.
Sık sorulan sorular
Blender’da Python eklentisi nasıl çalıştırılır?
Kodu Metin Düzenleyicisi’nde çalıştırarak operatörü kaydedin. Ardından Operatör Arama penceresinde operatörün etiketini aratıp çalıştırın.
Blender Python eklentisi nasıl yüklenir?
Dosyayı `.py` uzantısıyla kaydedin, Blender tercihlerindeki Eklentiler bölümünden yükleyin ve listeden etkinleştirin.
Örnek Blender eklentisi hangi nesneleri taşır?
Örnek operatör etkin sahnedeki bütün nesneleri X ekseninde 1 birim taşır; yalnızca seçili nesnelerle sınırlı değildir.
Kaynaklar
1 kaynakKaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.
Blender’da tekrarlanan sahne işlemlerini küçük araçlara dönüştürmek, Python bilen mimarlık ofisi ekipleri ve teknik sanatçılar için işe yarar bir başlangıç. Ancak bu örneğin etkisi geniş: sahnedeki bütün nesneleri hareket ettiriyor. Bu yüzden önce bir kopyada denemek ve gerçek projeye uyarlarken operatörün kapsamını dikkatle belirlemek gerekiyor.
Kaynak belirli bir donanım veya ücret şartı vermiyor; burada asıl dikkat edilmesi gerekenler eklentinin hedeflediği Blender sürümü, API uyumluluğu ve ekip içinde nasıl dağıtılacağı. Öğrenciler içinse temel kazanım, bir Python betiğinin Blender’da operatör olarak nasıl kaydedilip çağrıldığını kavramak.




Yorumlar 0