Son xəbərlər
Houdini Solaris və USD: Memarlıq səhnələri üçün laylı iş axını bələdçisiBlender 5.2 LTS-də memarlıq renderini komanda sətrindən alınUnreal Engine 5.3-də ortoqrafik memarlıq vizuallaşdırmasını necə sınaqdan keçirmək olar?Frank Lloyd Wrightın inşa edilmiş yeganə planetariumu bərpa olunaraq açıldıUnreal Engine Movie Render Graph-da render callback-lərini qurmaq üçün bələdçiRevit-də layihə mərhələləri: yenilənmə və söküntü görünüşlərini tənzimləməkUnreal Engine-də interyer vizualları üçün ekspozisiya və sahə dərinliyi bələdçisiLayOut-da düzgün ölçüləndirmə: Memarlıq çertyojları üçün addım-addım bələdçiMuse Spark Open təqdim edildi: 816 milyard parametrli multimodal modelDiffusers ilə FLUX memarlıq vizualları: nəzarət və sürət bələdçisi
TövsiyələrUnreal EngineMovie Render Graph

Unreal Engine Movie Render Graph-da render callback-lərini qurmaq üçün bələdçi

Unreal Engine 5.4-ün Movie Render Graph sistemi render işindən və ya hər kadrdan əvvəl və sonra Python callback-ləri işə sala bilir. Bu bələdçi Execute Script Node ilə quraşdırmanı və nəzərə alınmalı məqamları izah edir.

Gün işığı alan müasir interyer və render kadrlarını xatırladan iş masasıSüni intellekt şəkli
Təmsili şəkil, süni intellektlə yaradılıb.Şəkil: 3dsınıfı / FCA AI

Qısaca

  1. Movie Render Graph callback-ləri render işi və ya kadr başlamazdan və tamamlandıqdan sonra xüsusi məntiqi işə sala bilər.
  2. Callback sinfi MovieGraphScriptBase sinfindən törədilir və uyğun funksiyalar yenidən təyin olunur.
  3. Kadr üzrə callback-lər üçün Global Output Settings Node daxilindəki Flush Disk Writes Per Shot seçimini aktivləşdirmək olar.
  4. Callback sinfini Unreal Editor hər dəfə açıldıqda əlçatan etmək üçün müvafiq Python sinfi init_unreal.py faylından import edilə bilər.

Unreal Engine 5.4-dəki Movie Render Graph (MRG) render işlərindən əvvəl və sonra əlavə əməliyyatlar icra etmək üçün callback sistemi təqdim edir. Epic Games-in rəsmi sənədlərinə əsasən, bu əməliyyatları qrafikə əlavə edilən Execute Script Node vasitəsilə konfiqurasiya etmək mümkündür. Bu bələdçi render başlamazdan əvvəl hazırlıq görmək, iş tamamlandıqda çıxış məlumatlarını yoxlamaq və ya kadr üzrə əməliyyat aparmaq istəyən komandalar üçün əsas quraşdırma gedişatını nəzərdən keçirir.

Callback-lər nə vaxt faydalıdır?

Callback render axınının müəyyən mərhələsində icra olunan xüsusi koddur. İşin başlanğıcı və bitməsi üçün job callback-lərindən, hər bir kadrın başlanğıcı və bitməsi üçün isə shot callback-lərindən istifadə etmək olar. Məsələn, iş başa çatdıqdan sonra çıxış məlumatlarına baxmaq və ya kadr tamamlandıqda həmin kadra aid fayl yollarını emal etmək mümkündür.

MRG-dəki Execute Script Node callback-ləri qrafik konfiqurasiyasına əlavə etməyə imkan verir. Callback sinfi Unreal-ın Python API-sindəki MovieGraphScriptBase sinfindən törədilir. Müvafiq funksiyalar @unreal.ufunction(override=True) ilə yenidən təyin olunur. Callback sinfi qeydiyyata alındıqdan sonra onu Execute Script Node daxilindəki seçim menyusundan istifadə etmək mümkündür.

1. Movie Render Queue plaginini və qrafiki hazırlayın

Əvvəlcə Unreal Editor-da Edit > Plugins yolunu izləyərək Rendering bölməsindəki Movie Render Queue plaginini aktivləşdirin və redaktoru yenidən başladın. Layihədə render ediləcək Level Sequence olmalıdır.

Movie Render Graph-a Movie Render Queue vasitəsilə daxil olmaq mümkündür. Epic-in sənədlərindəki ardıcıllıq belədir:

  1. Window > Cinematics > Movie Render Queue yolu ilə Movie Render Queue pəncərəsini açın.

  2. Render düyməsinə basıb müvafiq Level Sequence-i seçin.

  3. Settings sütunundakı Unsaved Config menyusundan Movie Render Graph (Beta) seçimini açın.

  4. Create New Asset bölməsindən Movie Render Graph yaradın, ona ad verin və yadda saxlayın.

  5. Yaratdığınız qrafik konfiqurasiyasını Settings sütunundan açıb redaktə edin.

Mövcud iş axınında Movie Render Queue (MRQ) ilə Movie Render Graph birlikdə istifadə oluna bilər. MRQ işləri növbəyə düzmək və toplu render üçün interfeys təqdim edir, MRG isə render proseslərini düyün əsaslı qrafiklə konfiqurasiya edir.

2. Python callback sinfini yaradın

Aşağıdakı nümunədə işin başlanması və bitməsi üçün callback-lər göstərilir. on_job_finished render işi tamamlandıqda çağırılır; bu mərhələdən uğurla başa çatma ilə yanaşı ləğv halında da istifadə etmək olar. İşin uğurlu olub-olmadığını nəticə məlumatındakı success atributu ilə yoxlamaq mümkündür.

python
import unreal

@unreal.uclass()
class CallbackOverrides(unreal.MovieGraphScriptBase):
    @unreal.ufunction(override=True)
    def on_job_start(self, in_job_copy):
        super().on_job_start(in_job_copy)
        unreal.log("Render işi başlıyor")

    @unreal.ufunction(override=True)
    def on_job_finished(self, in_job_copy, in_output_data):
        super().on_job_finished(in_job_copy, in_output_data)
        unreal.log("Render işi tamamlandı veya iptal edildi")

Bu nümunədə iş başlayanda və bitəndə jurnala qeyd əlavə olunur. Öz əməliyyat məntiqinizi yazmazdan əvvəl callback-in hansı mərhələdə işə düşdüyünü və hansı məlumatları aldığını dəqiqləşdirmək vacibdir. İş və qrafik konfiqurasiyaları callback-ə surət şəklində ötürülür; buna görə callback daxilində edilən dəyişikliklər növbədəki ilkin obyekti birbaşa dəyişmir.

Sinfin Execute Script Node menyusunda görünməsi üçün onu qeydiyyata almaq lazımdır. Epic-in nümunəsində sinif sessiya üçün qeydiyyata alınır. Hər açılışda əlçatan olmasını istəyirsinizsə, sinfi /Content/Python/init_unreal.py fayllarından birinə import edə bilərsiniz. Beləliklə, sinif redaktor işə düşəndə yüklənir.

3. Job və shot callback-ləri arasında seçim edin

on_job_start bir render işi başlayanda, on_job_finished isə işin sonunda çalışır. Level Sequence bir neçə kadrdan ibarətdirsə, on_shot_start və on_shot_finished callback-lərindən hər kadr üçün ayrıca istifadə etmək olar. Kadrın başlanğıcı callback-i kadr qurulmazdan əvvəl işə düşür. Kadrın bitməsi callback-inə isə həmin kadrın çıxış məlumatları ötürülür.

Kadr üzrə callback-ləri aktivləşdirməyin iki yolu var: qrafikdəki Global Output Settings Node üzərində Flush Disk Writes Per Shot seçimini işarələmək və ya sinifdə is_per_shot_callback_needed funksiyasını yenidən təyin edib True qaytarmaq. Bu seçimi səbəbsiz yerə aktivləşdirməyin: Epic bildirir ki, faylların diskə yazılmasını gözləmək render müddətini artıra bilər.

Memarlıq və archviz iş axınında nə verir?

Bir neçə kadrı və ya səhnəni növbəyə qoyan vizuallaşdırma komandaları iş və kadr səviyyəli callback-lərlə təkrarlanan əməliyyatları render axınına qoşa bilərlər. İş tamamlandıqda çıxış məlumatlarına və fayl yollarına daxil olmaq, məsələn, kadrların yaratdığı faylları növbəti emal mərhələsinə yönləndirmək üçün əsas yaradır. Bununla belə, sənədlərdə konkret fayl adlandırma standartı və ya hazır archviz avtomatlaşdırması təsvir edilmir; bu məntiq layihəyə uyğun hazırlanmalıdır.

Render farm və ya başqa proseslə inteqrasiya planlaşdırılırsa, MRQ-nun yerli və ayrı prosesdə render seçimləri də əhəmiyyətlidir. Ayrı prosesdə render üçün layihədəki dəyişikliklər yadda saxlanmalıdır. Callback-ləri real təhvil parametrlərinə keçməzdən əvvəl kiçik test işində yoxlayın; xüsusilə kadr üzrə diskə yazma seçiminin müddətə təsirini və sinfin redaktor açılarkən yüklənib-yüklənmədiyini yoxlayın.

Tez-tez rast gəlinən səhvlər

  • Movie Render Queue plaginini aktivləşdirdikdən sonra redaktoru yenidən başlatmağı unutmaq.

  • Shot callback-lərinin öz-özünə işləyəcəyini düşünmək; bunlar üçün hər kadr üzrə diskə yazma tələbi ayrıca aktivləşdirilməlidir.

  • İşin bitməsini yalnız uğurlu render kimi qəbul etmək. Callback ləğv halında da çağırıla bilər; uğur məlumatını yoxlayın.

  • Callback daxilindəki iş və ya qrafik konfiqurasiyası surətində edilən dəyişikliklərin növbədəki ilkin obyekti yenilədiyini düşünmək.

  • Hər shot sonunda fayl yazılmasının gözlənilməsinin render müddətini uzada biləcəyini nəzərdən qaçırmaq.

Mənbələr

2 mənbə
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/movie-render-pipeline-in-unreal-engine
Xülasə
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/running-pre-and-post-render-callback-mrg-scripts-in-unreal-engine
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 və vizuallaşdırma ofisləri üçün callback-lərin əsas faydası təkrarlanan rendersonrası yoxlamaları və ya kadr üzrə əməliyyatları daha nizamlı iş axınına qoşmaq potensialıdır. Xüsusilə çoxkadrli təqdimatlarda iş məlumatlarına və fayl yollarına daxil olmaq xüsusi avtomatlaşdırma hazırlamaq üçün faydalı başlanğıc yaradır.

Bununla belə, bu xüsusiyyət öz-özlüyündə hazır render farm həlli deyil; Python sinfini qurmaq və layihə strukturuna uyğun şəkildə sınaqdan keçirmək lazımdır. Hər shot üçün diskə yazılmasını gözləmək render müddətinə təsir edə bilər. Ofislər təhvil verməzdən əvvəl callback-ləri kiçik bir işdə yoxlamalı, ayrı prosesdə renderdən istifadə edirlərsə, layihədəki dəyişiklikləri yadda saxlamağı unutmamalıdırlar.

Tez-tez verilən suallar

Movie Render Graph callback-ləri nə üçündür?

Render işi və ya kadr başlamazdan əvvəl və tamamlandıqdan sonra xüsusi kodu işə salmağa imkan verir. İş və ya kadr səviyyəli callback-ləri qrafikdəki Execute Script Node vasitəsilə konfiqurasiya etmək olar.

Unreal Engine-də shot callback-ləri necə aktivləşdirilir?

Global Output Settings Node daxilindəki `Flush Disk Writes Per Shot` seçimini işarələmək olar. Alternativ olaraq callback sinfində `is_per_shot_callback_needed` funksiyasını yenidən təyin edib `True` qaytarmaq mümkündür.

Callback sinfini redaktor hər dəfə açıldıqda necə əlçatan etmək olar?

Sinfi `/Content/Python/init_unreal.py` fayllarından birinə import etmək olar. Beləliklə, redaktor işə düşəndə sinif yüklənir.

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

Əlaqəli xəbərlər