İçeriğe atla
Son haberler
Rhino 8’de görünüm kaydetme ve doğru ekran görüntüsü alma rehberiBlender Grease Pencil Line Art: Mimari sahnelerde çizgi üretme rehberiBlender’da Python eklentisi nasıl yazılır? İlk operatörü oluşturmaGemini API ile mimari videoları analiz etme: adım adım rehberTripo P2.0 ve Astra, 3D varlık üretimini Blender iş akışına taşıyorBlender Cycles’ta daha temiz render: örnekleme ve denoising ayarlarıMSI XpertStation WS300 incelendi: GB300 gücü masaüstüne taşıyorLimassol Arts Centre için tasarım ve yapım denetimi yarışması duyurulduBlender EEVEE’de ışın izleme, Fast GI ve malzeme ayarları rehberiAvrupa Kolektif Konut Ödülü: Paris’ten iki proje kazandı
EğitimlerBlenderPython

Blender’da Python eklentisi nasıl yazılır? İlk operatörü oluşturma

Blender’ın resmî kılavuzu, Python bilen kullanıcıların bir betiği operatöre ve eklentiye dönüştürmesini anlatıyor. Bu rehber, sahnedeki nesneleri X ekseninde hareket ettiren örnekle temel adımları gösteriyor.

Mimari görselleştirme çalışma alanında Python eklentisi geliştirmeyi çağrıştıran sahneAI görsel
Temsilî görsel; yapay zekâ ile üretildi.Görsel: 3dsınıfı / FCA AI
KaydetPaylaş0

Kısaca

  1. Blender eklentisi, uygulamanın tanıyıp listeleyebilmesi için ek bilgiler içeren bir Python modülüdür.
  2. Örnek operatör, etkin sahnedeki tüm nesneleri X ekseninde 1 birim taşır.
  3. Eklenti, Blender’ın Metin Düzenleyicisi’nde test edilebilir ve .py dosyası olarak yüklenebilir.
  4. 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.

python
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 One seç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ı .py uzantı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 kaynak
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html
Özet

Kaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.

3dsınıfı yorumu
3dEditörün değerlendirmesi

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.

Bu habere tepkin ne?

Yorumlar 0

İlk yorumu sen yazKendi test sonuçlarını ya da sorunu paylaş.
+

İlgili haberler