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

Kaynak: https://3dsinifi.com/haber/blenderda-python-eklentisi-nasil-yazilir-ilk-operator-ve · Kategori: Eğitimler · Yayın: 4 Ekim 2026

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

## 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

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.

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

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

## Pro ipucu
Operatörü önce kopya bir sahnede deneyin ve hangi nesnelerin etkilendiğini doğrulamadan önemli proje dosyasında çalıştırmayın.

## 3dsınıfı yorumu
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.

## Kaynaklar
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html) (özet)
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
