İçeriğe atla
Son haberler
Blender’da Python eklentisi nasıl yazılır? İlk operatör ve kurulumSketchUp LayOut’ta ölçekli çizim, ölçülendirme ve çizgi stili rehberiGemini ile mimari konsept videosu hazırlama: adım adım prompt rehberiRealityScan komut satırı rehberi: Fotoğraftan 3D modele iş akışıHoudini’de Redshift Proxy rehberi: dışa aktarma ve verimli sahne kullanımıBlender’da ışık bağlantısı: Mimari sahnelerde seçici aydınlatmaRevit’te Tasarım Seçenekleri: Alternatifleri tek modelde yönetme rehberiRhino 8’de Flow ve FlowAlongSrf: Eğri ve yüzeylere model aktarma rehberiBlender eğrileriyle mimari profiller ve boru geometrisi oluşturmaBlender Geometry Nodes Simulation Zone ile zamanlı simülasyon kurma rehberi
EğitimlerBlender

Blender’da Python eklentisi nasıl yazılır? İlk operatör ve kurulum

Blender’ın resmi kılavuzları, Python script’lerini operatör ve eklentiye dönüştürme sürecini örnekliyor. Bu rehberde sahnedeki nesneleri taşıyan basit bir araç oluşturup kurmayı ve komut satırından render almayı ele alıyoruz.

Mimari stüdyo masasında sıralı maketler ve soyut görsellerAI görsel
Temsilî görsel; yapay zekâ ile üretildi.Görsel: 3dsınıfı / FCA AI
KaydetPaylaş0

Kısaca

  1. Örnek operatör, etkin sahnedeki nesnelerin X konumuna 1,0 ekler.
  2. Eklentiyi Blender’da denedikten sonra .py uzantılı dosya olarak kaydedip Preferences içinden kurabilirsiniz.
  3. Eklenti etkinleştirildiğinde Blender register(), devre dışı bırakıldığında unregister() işlevini çalıştırır.
  4. 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

  1. Blender’da Text Editor alanında yeni bir metin açıp aşağıdaki kodu ekleyin. Kod, ObjectMoveX adlı 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. UNDO seçeneği operatör için geri alma desteğini etkinleştirir.

python
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.

  1. 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 One adını arayın ve Enter’a basın. Kılavuzdaki örnekte bu görünen ad, bl_label alanında tanımlanıyor.

  2. Script’i eklenti olarak kurmak için .py uzantı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:

bash
blender -b file.blend -f 20 -- --cycles-device OPTIX

Bu 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:

bash
blender -b animation.blend -o //render_ -F PNG -x 1 -a

Bu 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_info iç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 kaynak
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/advanced/command_line/arguments.html
Özet
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

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.

Bu habere tepkin ne?

Yorumlar 0

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

İlgili haberler