Son xəbərlər
Blender-da Python əlavəsi necə yazılır? İlk operator və quraşdırmaSketchUp LayOut-da miqyaslı çertyoj, ölçüləndirmə və xətt üslubları bələdçisiGemini ilə memarlıq konsept videosu hazırlamaq: addım-addım prompt bələdçisiRealityScan komanda sətri bələdçisi: Fotodan 3D modelə iş axınıHoudini-də Redshift Proxy bələdçisi: ixrac və səhnədə səmərəli istifadəBlender-də işıq əlaqələndirməsi: Memarlıq səhnələrində seçici işıqlandırmaRevit-də Dizayn Variantları: Alternativləri bir modeldə idarə etmək bələdçisiRhino 8-də Flow və FlowAlongSrf: Əyri və səthlərə model köçürmə bələdçisiBlender əyriləri ilə memarlıq profilləri və boru həndəsəsi yaratmaqBlender Geometry Nodes Simulation Zone ilə zamanlı simulyasiya qurmaq üçün bələdçi
TəlimlərBlender

Blender-da Python əlavəsi necə yazılır? İlk operator və quraşdırma

Blender-in rəsmi təlimatlarında Python skriptlərini operator və əlavələrə çevirmə prosesi nümunələrlə göstərilir. Bu bələdçidə səhnədəki obyektləri hərəkət etdirən sadə alət yaratmağı, onu quraşdırmağı və komanda sətrindən render almağı nəzərdən keçiririk.

Memarlıq studiyasının masasının üzərində düzülmüş maketlər və abstrakt təsvirlərSüni intellekt şəkli
Təmsili şəkil, süni intellektlə yaradılıb.Şəkil: 3dsınıfı / FCA AI

Qısaca

  1. Nümunə operator aktiv səhnədəki obyektlərin X koordinatına 1,0 əlavə edir.
  2. Əlavəni Blender-da sınaqdan keçirdikdən sonra onu .py uzantılı fayl kimi saxlayıb Preferences bölməsindən quraşdıra bilərsiniz.
  3. Əlavə aktivləşdiriləndə Blender register(), deaktivləşdiriləndə isə unregister() funksiyasını işə salır.
  4. Blender -b seçimi ilə interfeys açmadan arxa planda işlədilə bilər.

Bu bələdçidə nə öyrənəcəksiniz?

Bu bələdçidə Blender-da sadə Python skriptini əvvəlcə operatora, sonra isə quraşdırıla bilən əlavəyə çevirmə prosesinə baxacaqsınız. Nümunə alət aktiv səhnədəki hər obyektin X koordinatına 1,0 əlavə edir. Məqsəd bu əməliyyatı hər memarlıq layihəsində istifadə etmək deyil; Blender-da alət hazırlamağın əsas elementlərini, kodun necə saxlanıldığını və istifadəçi interfeysindən necə çağırıldığını göstərməkdir.

Həmçinin komanda sətrindən arxa plan render-i başlatmaq üçün istifadə olunan bəzi seçimləri nəzərdən keçirəcəyik. Əlavə hazırlamaq və render almaq ayrı iş axınlarıdır; onları birləşdirən cəhət təkrarlanan işləri müəyyən və izlənə bilən addımlara çevirmələridir. Nümunələrdəki əməliyyatları vacib layihə faylında istifadə etməzdən əvvəl faylın surətində sınaqdan keçirmək məqsədəuyğundur.

Tələblər

Blender-dən əsas səviyyədə istifadə etməyi və Text Editor sahəsində skript işə salmağı bilmək lazımdır. Blender-in əlavə bələdçisi Python-un əsas məlumat növləri, modulları və sinifləri haqqında bilik də tələb edir. Xəta mesajlarını daha yaxşı araşdırmaq üçün Blender-i terminaldan işə salmaq da rəsmi təlimatda tövsiyə olunan üsullardandır.

Aşağıdakı əlavə nümunəsində bl_info lüğətində göstərilən (2, 80, 0) dəyəri bu əlavəni işlətmək üçün tələb olunan minimum Blender versiyasını bildirir. Bu, əlavənin daha yeni versiyalarla avtomatik uyğun olduğu anlamına gəlmir; kod istifadə ediləcəyi versiyada sınaqdan keçirilməlidir. Komanda sətri sənədləri isə Blender 5.2 LTS təlimatında yer alır.

İlk əlavənin addım-addım hazırlanması

  1. Blender-da Text Editor sahəsində yeni mətn yaradıb aşağıdakı kodu əlavə edin. Kod ObjectMoveX adlı operator təyin edir. Operator işə salındıqda aktiv səhnədəki obyektləri nəzərdən keçirir və hər obyektin X koordinatını 1,0 artırır. UNDO seçimi operator üçün geri qaytarma dəstəyini aktivləşdirir.

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 əlavənin adı və kateqoriyası kimi məlumatları Blender-ə ötürür; nümunədəki versiya sahəsi isə minimum tələbi bildirir. execute() operator işə salındıqda yerinə yetiriləcək əməliyyatı ehtiva edir. Burada səhnənin konteksti funksiyaya verilən context vasitəsilə əldə olunur. Rəsmi təlimat operatorlarda mümkün olduqda bu parametrdən istifadə etməyi tövsiyə edir.

  1. Text Editor-də Run Script düyməsinə basaraq kodu işə salın. Bu mərhələdə operator qeydiyyata alınır, lakin obyektlər hələ hərəkət etmir. Operator Search menyusunu açın, Move X by One adını axtarın və Enter düyməsini basın. Təlimatdakı nümunədə görünən ad bl_label sahəsində təyin olunur.

  2. Skripti əlavə kimi quraşdırmaq üçün .py uzantılı, Python modul adlandırma qaydalarına uyğun fayl adı ilə saxlayın. Blender-da Preferences > Add-ons > Install… bölməsinə keçib faylı seçin. Əlavə siyahıda görünəndə onu aktivləşdirin. Yenidən başladıqdan sonra da aktiv qalmasını istəyirsinizsə, təlimatdakı Save as Default seçimini istifadə edin.

Əlavə aktivləşdirildikdə Blender register() funksiyasını, deaktivləşdirildikdə isə unregister() funksiyasını çağırır. Kodda bu funksiyalar operator sinfinin qeydiyyata alınması və qeydiyyatdan çıxarılması işini görür. Hazırlıq mərhələsində skripti birbaşa işə salmaq sürətli sınaq imkanı yaradır; əlavəni quraşdırmaq isə Blender-in onu tərcihlərdəki əlavələr siyahısından idarə etməsinə şərait yaradır.

Memarlıq və vizuallaşdırma iş axınında istifadə

Nümunədəki operator aktiv səhnədəki bütün obyektlərə təsir edir. Buna görə memarlıq səhnəsində onu birbaşa işə salarkən hansı obyektlərin hərəkət edəcəyini nəzərə almaq vacibdir. Ofis üçün belə bir alət hazırlanırsa, əməliyyatın əhatə dairəsi layihənin strukturuna uyğun müəyyənləşdirilməli və alət əvvəlcə sınaq səhnəsində işlədilməlidir. Bu nümunə hazır memarlıq yerləşdirmə aləti deyil, operator məntiqini izah edən başlanğıc işidir.

Blender-in əlavə bələdçisindəki ikinci nümunə aktiv obyektin əlaqəli nüsxələrini 3D kursorla obyektin arasına yerləşdirir. Nüsxələr səhnə kolleksiyasına əlavə olunur; mövqeləri obyektlə kursor arasındakı əlaqəyə əsasən hesablanır. İlk versiyada nüsxələrin ümumi sayı 10 olaraq sabitlənib. Bu nümunə təkrarlanan elementlər üçün alətlərin necə qurula biləcəyini izah etməklə yanaşı, istifadəçinin dəyişdirə bildiyi parametrlərin də əlavə oluna biləcəyini göstərir.

Komanda sətrindən render almaq üçün Blender-i -b və ya --background seçimi ilə arxa plan rejimində işə sala bilərsiniz. Rəsmi sənəddəki Cycles nümunəsi konkret kadrı və cihazı belə seçir:

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

Bu əmr 20-ci kadrı render edir və OPTIX cihazını seçir. Təlimatda Cycles üçün etibarlı cihaz seçimləri CPU, CUDA, OPTIX, HIP, ONEAPI və METAL kimi göstərilir. Seçilən cihaz istifadə ediləcək sistemə uyğun olmalıdır.

Animasiya kadrlarını PNG formatında çıxarmaq üçün sənəddə ayrıca əmr nümunəsi də var:

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

Bu əmrdə -o çıxış yolunu, -F fayl formatını, -x uzantının əlavə edilməsini, -a isə animasiya kadrlarının render edilməsini bildirir. // ilə başlayan yol .blend faylına nəzərən hesablanır. Fayl adında # simvollarından istifadə olunarsa, onlar kadr nömrəsi üçün yer tutucu rolunu oynayır. Bu iki nümunə fərqli ehtiyaclara xidmət edir; kadr, fayl formatı, çıxış qovluğu və cihaz kimi seçimləri tələb olunan render növünə uyğunlaşdırmaq lazımdır.

Bu yanaşma təkrarlanan səhnə əməliyyatlarını avtomatlaşdırmaq istəyən Blender istifadəçiləri və render-i interfeysdən kənarda işlətməyi planlaşdıran komandalar üçün faydalı ola bilər. Bununla belə, mənbələrdə konkret avadanlıq tələbi və ya lisenziya xərci göstərilmir. Əlavə hazırlanarkən Blender versiyası ilə uyğunluq, render zamanı isə seçilmiş cihaz və dəqiq müəyyən edilmiş çıxış parametrləri yoxlanmalıdır.

Tez-tez rast gəlinən səhvlər və növbəti addımlar

  • Skripti işə salmaqla operatoru işə salmağı eyni addım hesab etməyin. Nümunədə ilk əməliyyat operatoru qeydiyyata alır; səhnədə dəyişiklik etmək üçün operator ayrıca çağırılmalıdır.

  • Operatorun əhatə dairəsini yoxlayın. Nümunədə aktiv səhnədəki bütün obyektlərin X koordinatı dəyişir.

  • bl_info daxilindəki (2, 80, 0) dəyərini minimum versiya tələbi kimi qəbul edin; bunu daha yeni Blender versiyaları ilə uyğunluq zəmanəti saymayın.

  • Arxa plan render-i zamanı fayl yolunu, çıxış formatını, kadr aralığını və Cycles cihazını ehtiyaca uyğun göstərin. Nümunə əmrlərdən birində digərində olmayan parametrlər ola bilər.

Növbəti mərhələdə Blender API sənədlərindəki bpy.context və bpy.types.Operator bölmələrini nəzərdən keçirmək olar. Rəsmi əlavə bələdçisi operator parametrləri ilə sabit dəyərləri istifadəçinin dəyişə biləcəyi hala gətirmək mövzusuna da toxunur. Alət böyüdükcə nüsxələrin sayı kimi dəyərləri tənzimlənən seçimlərə çevirmək müxtəlif səhnə ehtiyaclarını qarşılamağa kömək edə bilər.

Mənbə və lisenziya

Bu bələdçi Blender Manual-da yer alan “Add-on Tutorial” və “Command Line Arguments” sənədləri əsasında uyğunlaşdırılıb. Hər iki mənbə CC BY-SA 4.0 lisenziyası ilə yayımlanıb; məzmun həmin lisenziya şərtlərinə uyğun şəkildə Azərbaycan dilinə uyğunlaşdırılıb.

Mənbələr

2 mənbə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/advanced/command_line/arguments.html
Xülasə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html
Xülasə

Mənbə mətnləri yenidən dərc edilmir; qısa sitatlar işarələnir, qalanı bizim xülasə və şərhimizdir.

3dsınıfı rəyi
3dRedaktorun qiymətləndirməsi

Sadə operator nümunəsi Blender-da təkrarlanan işləri avtomatlaşdırmağa başlamaq istəyən memarlıq ofisləri və tələbələr üçün anlaşıqlı əsas yaradır. Əsas dəyər nümunədəki obyekt daşıma əməliyyatını olduğu kimi istifadə etməkdə deyil, operator, qeydiyyat və işə salma addımları arasındakı əlaqəni anlayıb layihənin ehtiyaclarına uyğunlaşdırmaqdadır.

Türkiyədə tətbiqə başlamazdan əvvəl komandanın Python təcrübəsini və istifadə ediləcək Blender versiyasını nəzərə almaq lazımdır. Mənbələrdə əlavə xərci və ya xüsusi avadanlıq tələbi göstərilmir. Arxa plan render-i zamanı isə seçilmiş Cycles cihazının sistemə uyğunluğunu yoxlamaq və çıxış parametrlərini dəqiq müəyyənləşdirmək vacibdir.

Tez-tez verilən suallar

Blender-da Python əlavəsi necə quraşdırılır?

Əlavə kodunu `.py` uzantılı faylda saxlayın. Preferences > Add-ons > Install… bölməsindən faylı seçib əlavəni aktivləşdirin.

Blender operatoru işə salınanda səhnə dərhal dəyişirmi?

Nümunədə skriptin işə salınması operatoru qeydiyyata alır. Səhnəni dəyişmək üçün Operator Search menyusundan operatoru ayrıca işə salmaq lazımdır.

Blender interfeys açmadan render ala bilərmi?

Bəli. Komanda sətrindəki `-b` və ya `--background` seçimi Blender-i arxa plan rejimində işə salır.

Şərhlər və forum türkcədir.Müzakirəyə qoşulun
+

Əlaqəli xəbərlər