Son xəbərlər
Blender-də rəng idarəetməsi: AgX, xətti iş axını və düzgün ixrac3ds Max-də V-Ray Enmesh istifadəsi: təkrarlanan səth naxışları yaratmaqBlender Python Console ilə səhnə obyektlərini tez redaktə etməkBlender Geometry Nodes-da Boolean və Extrude: Memarlıq modelləşdirmə bələdçisiUnreal Engine Level Snapshots bələdçisi: səhnə variasiyalarını təhlükəsiz idarə edinMemarlıq vizualını videoya çevirmək: Gemini Omni üçün addım-addım bələdçiUnreal Engine 5.0-da memarlıq vizuallaşdırması: Lumen, Nanite və kölgələrRhino 8-də Make2D və Print: 2D çertyoj və pafta çapı bələdçisiUnreal Engine Movie Render Graph ilə yüksək keyfiyyətli memarlıq renderiReactor-a NVIDIA dəstəyi: real vaxt 3D infrastrukturuna investisiya
TəlimlərBlender

Blender Python Console ilə səhnə obyektlərini tez redaktə etmək

Blender Python Console kiçik kod parçalarını sınaqdan keçirmək və Blender API-sini araşdırmaq üçün istifadə oluna bilər. Bu bələdçidə seçilmiş obyektə baxmaq, mövqeyini dəyişmək və səhnəyə işıq əlavə etmək addımları yer alır.

Blender səhnəsində interyer modeli və nöqtəvi işıqla işləyən vizuallaşdırma masasıSüni intellekt şəkli
Təmsili şəkil, süni intellektlə yaradılıb.Şəkil: 3dsınıfı / FCA AI

Qısaca

  1. Python Console əmrləri Return ilə icra edir; əvvəlki əmrlərə tarixçə vasitəsilə yenidən müraciət etmək mümkündür.
  2. bpy.context cari səhnə və seçilmiş obyektlər kimi kontekst məlumatlarına çıxış verir.
  3. Aktiv obyektin mövqeyini Python Console vasitəsilə dəyişmək olar.
  4. Blender API sənədlərindəki nümunə ilə səhnəyə nöqtəvi işıq əlavə etmək mümkündür.

Blender-in Python Console aləti qısa kod parçalarını icra etməklə səhnə məlumatlarını yoxlamaq və Blender API-sini araşdırmaq üçün istifadə oluna bilər. Blender sənədlərindəki nümunələr aktiv obyektin mövqeyini dəyişməyi, seçilmiş obyektləri göstərməyi və səhnəyə yeni işıq əlavə etməyi nümayiş etdirir. Aşağıdakı addımlar Python Console-dan kiçik və nəzarət edilə bilən əməliyyatlar üçün istifadə etməyə yönəlib.

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

Python Console daxil edilən əmri icra etməklə yanaşı, əmr tarixçəsi və avtomatik tamamlama imkanları da təqdim edir. İlk mərhələdə cari konteksti, yəni Blender-də aktiv olan obyekti və rejimi sorğulayacağıq. Sonra aktiv obyektin mövqeyini redaktə edəcək, seçilmiş obyektləri siyahıya alacaq və yeni işıq obyekti yaradacağıq.

Bu yanaşma hər əməliyyat üçün uzun skript hazırlamaqdansa, kiçik sınaqlar aparmaq üçün əlverişlidir. Əmr gözlənildiyi kimi işlədikdə Console tarixçəsi onu yenidən istifadə etməyi asanlaşdırır. Blender sənədlərinə görə, tarixçədəki əmrləri yuxarı və aşağı ox düymələri ilə çağırmaq, əmr sətrində isə Tab düyməsi ilə avtomatik tamamlama funksiyasını açmaq mümkündür.

Tələblər və hazırlıq

Bu nümunələr Blender-in Python Console alətinə və Blender Python API-si olan bpy-yə əsaslanır. Mənbə sənədlərdə konkret Blender versiyası nömrəsi, hesab tələbi, minimum avadanlıq göstəricisi və ya quraşdırma üsulu qeyd edilmir. Buna görə nümunələrdən istifadə edəcəyiniz versiyada API davranışını ayrıca yoxlamaq lazımdır.

Console-da əmr Return düyməsi ilə icra olunur. Əmr yazarkən Tab düyməsi mövcud üzvlər üçün avtomatik tamamlama təkliflərini göstərir. Blender sənədləri Console mühitini tanımaq üçün dir() əmrini icra etməyi də tövsiyə edir. İlk nümunə cari kontekstdəki rejimi və aktiv obyekti sorğulayır:

python
bpy.context.mode
bpy.context.active_object

Birinci sətir cari qarşılıqlı əlaqə rejimini, ikinci sətir isə aktiv obyekti göstərir. Sənədlərdə düzgün nəticə əldə etmək üçün 3D Viewport-da obyektin seçilmiş olması xüsusilə vurğulanır. Aktiv obyekt yoxdursa, obyektin xüsusiyyətlərinə müraciət edən əmrlər gözlənilən nəticəni verməyəcək. Buna görə redaktəyə başlamazdan əvvəl səhnədə uyğun obyektin aktiv olduğuna əmin olun.

Addım-addım: Console-da əsas əməliyyatlar

1. API üzvlərini araşdırın

Blender API-də hansı xüsusiyyətlərdən istifadə oluna biləcəyini araşdırarkən avtomatik tamamlamadan yararlana bilərsiniz. Console-a aşağıdakı ifadəni yazıb Tab düyməsini basmaq bpy daxilində alt modullar, xüsusiyyətlər və metodlar üçün təklifləri göstərir. Sənədlərdə metodların təkliflərdə adlarının sonunda mötərizə ilə fərqləndiyi qeyd olunur.

python
bpy.

Dəyişənin və ya modulun üzvlərini araşdırmaq əzbərdən əmr yazmaqdansa, mövcud API-ni görərək irəliləməyə imkan verir. Console mühitində bpy.context üçün C, bpy.data üçün isə D qısa adlarından da istifadə olunur. İlk addım kimi dir() əmrini icra edib mühitdə müəyyən edilmiş ümumi funksiyaları və dəyişənləri araşdırmaq mümkündür.

2. Aktiv obyektin mövqeyini dəyişin

Kontekst vasitəsilə aktiv obyektə müraciət etmək olar. Sənədlərdə obyektin X koordinatını dəyişmək və koordinata kiçik artım əlavə etmək nümunələri var. Əvvəlcə obyektin cari koordinatını yoxlayın, sonra aşağıdakı əmrlə X oxu üzrə 0,5 vahid artım tətbiq edin:

python
bpy.context.object.location.x += 0.5

Bu əmr aktiv obyektin mövqe xüsusiyyətini dəyişir. Obyekt seçilməyibsə, bpy.context.object uyğun obyekt qaytarmaya bilər. Buna görə əmri icra etməzdən əvvəl aktiv obyektin mövcudluğunu yoxlamaq vacibdir. Yuxarı ox düyməsi əvvəlki əmri tarixçədən çağırır, lakin bu, səhnədə edilmiş dəyişikliyi geri qaytarmır. Başqa koordinatı sınamazdan əvvəl aktiv obyekti və səhnədəki nəticəni yoxlayın.

3. Üç koordinatı birlikdə təyin edin

Mövqenin hər üç komponentini eyni anda redaktə etmək üçün koordinatları tuple şəklində vermək olar. Aşağıdakı nümunədə X, Y və Z qiymətləri müvafiq olaraq 1, 2 və 3 təyin edilir:

python
bpy.context.object.location = (1, 2, 3)

Yalnız X və Y komponentlərini dəyişmək də mümkündür. Mövcud Z qiymətini qoruyaraq iki koordinata eyni vaxtda qiymət vermək lazım gəldikdə bu üsuldan istifadə etmək olar:

python
bpy.context.object.location.xy = (1, 2)

Bu nümunələr aktiv obyektin mövqeyinə birbaşa müraciət edir. Səhnəni redaktə edərkən hansı obyektin aktiv olduğunu izləmək yanlış obyektin dəyişdirilməsinin qarşısını alır. Daha geniş əməliyyatlardan əvvəl tək bir obyekt üzərində sınaq aparmaq və nəticəni səhnədə yoxlamaq ehtiyatlı yanaşmadır.

4. Seçilmiş obyektləri göstərin

Bir neçə obyekt seçildikdə bpy.context.selected_objects seçilmiş obyektlərin siyahısını qaytarır. Aktiv obyekt xaricindəki seçilmiş obyektləri görmək üçün bu ifadədən istifadə etmək olar:

python
[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]

Bu nümunə seçilmiş obyektlər üzərində gəzir və aktiv obyektlə eyni olmayanları nəticə siyahısına əlavə edir. Beləliklə, aktiv obyektlə digər seçilmiş obyektlər arasındakı fərqi Console vasitəsilə araşdıra bilərsiniz. bpy.context cari səhnə, seçilmiş obyektlər və mövcud rejim kimi kontekst məlumatlarına, bpy.data isə seçilmiş və ya aktiv olub-olmamasından asılı olmayaraq blend faylındakı məlumatlara çıxış verir.

5. Səhnəyə nöqtəvi işıq əlavə edin

Blender API sənədlərindəki nümunə yeni işıq məlumat bloku və ondan istifadə edən obyekt yaradır, sonra onları aktiv kolleksiyaya bağlayır. Ardınca işığın mövqeyini təyin edir və obyekti seçərək aktivləşdirir. Aşağıdakı kod sənədlərdəki əsas nöqtəvi işıq nümunəsini təkrarlayır:

python
import bpy

view_layer = bpy.context.view_layer
light_data = bpy.data.lights.new(name="New Light", type='POINT')
light_object = bpy.data.objects.new(name="New Light", object_data=light_data)
view_layer.active_layer_collection.collection.objects.link(light_object)
light_object.location = (5.0, 5.0, 5.0)
light_object.select_set(True)
view_layer.objects.active = light_object

Kod əvvəlcə işıq məlumatını yaradır, sonra isə həmin məlumatla əlaqəli obyekti səhnə kolleksiyasına əlavə edir. Mövqe təyin edildikdən və obyekt seçildikdən sonra yeni işıq aktiv obyekt olur. Sənədlərdəki nümunə belə bir obyektin yaradılması, səhnəyə bağlanması, mövqeyinin təyin edilməsi və aktivləşdirilməsi ardıcıllığını göstərir.

Tez-tez rast gəlinən xətalar

Ən əsas problemlərdən biri aktiv obyekt olmadan onun xüsusiyyətlərinə müraciət etməyə çalışmaqdır. Mövqe nümunələrindən əvvəl obyektin seçildiyini və aktiv olduğunu yoxlayın. Başqa obyektin redaktə edilməsi də çox vaxt kontekstdə aktiv olan obyektin gözdən qaçırılmasından qaynaqlanır.

Digər qarışıqlıq əmr tarixçəsini Console ekranını təmizləməklə eyniləşdirməkdir. Blender sənədlərinə görə, Console menyusundakı Clear All görünüşü yeniləyir, lakin əmr tarixçəsini silmir. Əvvəlki və növbəti əmrləri ox düymələri ilə çağırmaq olar. Shift+Return əmri icra etmədən tarixçəyə əlavə edir; əmri icra etmək üçün Return düyməsindən istifadə olunur.

Qısa sınaqlardan sonra əmrləri skript kimi saxlamaq istəyənlər sənədlərdə göstərilən Copy as Script qısayolu ilə tarixçə buferinin hamısını mübadilə buferinə köçürə bilərlər. Bu məzmunu mətn faylına yapışdırıb Python skripti kimi istifadə etmək mümkündür. Daha böyük işə başlamazdan əvvəl kodu və onun səhnəyə təsirini nəzərdən keçirmək sınaq əmrlərinin təsadüfən istehsal faylına köçürülməsinin qarşısını almağa kömək edir.

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

Memarlıq, interyer dizaynı və archviz işlərində Console aktiv obyektin mövqeyini tez dəyişmək, seçilmiş obyektləri araşdırmaq və ya səhnəyə işıq əlavə etmək kimi kiçik, təkrarlanan əməliyyatları sınamaq üçün faydalı ola bilər. Xüsusilə Blender səhnəsində Python API-sini öyrənməyə başlayan tələbələr və vizuallaşdırma mütəxəssisləri bir əmrə əsaslanan sınaqlarla kontekst və obyekt xüsusiyyətləri arasındakı əlaqəni müşahidə edə bilərlər.

Bununla belə, burada verilən nümunələr əsas səviyyədədir; mənbələr konkret layihə şablonu, render ayarı, avadanlıq tələbi və ya başqa proqramlarla uyğunluq barədə məlumat vermir. Ofis iş axınında avtomatlaşdırma planlaşdırılırsa, nümunələri istifadə olunan Blender versiyasında və layihədəki obyekt strukturu ilə sınaqdan keçirmək lazımdır. Əmrlərin səhnəyə təsirini yoxlamaq və lazım gəldikdə tarixçəni skript kimi saxlamaq kiçik sınaqları daha nizamlı prosesə çevirməyə kömək edir.

Növbəti addımlar

Əvvəlcə konteksti sorğulayan əmrlərlə başlayın, sonra mövqe və seçilmiş obyekt nümunələrini ayrı-ayrılıqda sınayın. Bir neçə əmri birləşdirmək lazım gəldikdə, Blender API sənədlərindəki Object nümunəsinə baxaraq məlumat bloku yaratmaq, onu kolleksiyaya bağlamaq və obyekti aktivləşdirmək ardıcıllığını izləyin. Operatorlar da adətən düymə və ya menyu ilə başladılan əməliyyatları proqram vasitəsilə çağırmağa imkan verir; uyğun operatoru seçmək üçün müvafiq API sənədlərinə baxmaq lazımdır.

Mənbə və lisenziya

Bu bələdçi Blender Manual-dakı “Python Console” səhifəsindən və Blender Python API-dəki “Object” istinadından yararlanaraq hazırlanıb. Hər iki mənbə CC BY-SA 4.0 lisenziyalıdır; məzmun Azərbaycan dilinə tərcümə edilərək yenidən işlənib, kod nümunələri isə müvafiq API sənədlərindəki istifadəyə əsaslanır.

Mənbələr

2 mənbə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/editors/python_console.html
Xülasə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Object.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

Türkiyədəki memarlıq ofisləri və tələbələr üçün bu bələdçinin praktik faydası Blender səhnəsindəki kiçik düzəlişləri API vasitəsilə sınaqdan keçirərək öyrənməyə imkan verməsidir. Seçilmiş obyekti sorğulamaq, mövqeyini dəyişmək və işıq əlavə etmək nümunələri daha geniş avtomatlaşdırmaya keçməzdən əvvəl yaxşı başlanğıc təqdim edir.

Lakin mənbələr versiya uyğunluğu, avadanlıq tələbi və ya məhsulun qiyməti barədə məlumat vermir. Buna görə nümunələri istehsal fayllarına tətbiq etməzdən əvvəl istifadə olunan Blender versiyasında və layihə səhnəsində yoxlamaq; lisenziya, avadanlıq və iş axını ilə bağlı qərarları da ayrıca dəyərləndirmək lazımdır.

Tez-tez verilən suallar

Blender Python Console-da əmr necə icra olunur?

Əmri Console sətrinə yazıb Return düyməsini basın. Tab avtomatik tamamlama təkliflərini göstərir; yuxarı və aşağı ox düymələri əmr tarixçəsində hərəkət etməyə imkan verir.

Blender-də aktiv obyektin mövqeyini Python ilə necə dəyişmək olar?

Aktiv obyektə bpy.context.object vasitəsilə müraciət edib location xüsusiyyətini redaktə etmək olar. Məsələn, X koordinatına 0,5 əlavə etmək üçün bpy.context.object.location.x += 0.5 əmrindən istifadə edilə bilər.

Python Console vasitəsilə Blender səhnəsinə işıq əlavə etmək mümkündürmü?

Bəli. Blender Python API sənədlərindəki nümunə nöqtəvi işıq məlumat bloku və obyekti yaradır, onları aktiv kolleksiyaya bağlayır, işığın mövqeyini təyin edir və onu aktivləşdirir.

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

Əlaqəli xəbərlər