İçeriğe atla
Son haberler
Houdini Solaris ve USD: Mimari sahneler için katmanlı iş akışı rehberiBlender 5.2 LTS ile mimari render’ı komut satırından alınUnreal Engine 5.3’te ortografik mimari görselleştirme nasıl test edilir?Frank Lloyd Wright’ın tek inşa edilmiş planetaryumu restore edilerek açıldıUnreal Engine Movie Render Graph’ta render callback’leri kurma rehberiRevit’te proje fazları: yenileme ve yıkım görünüşlerini düzenlemeUnreal Engine’de iç mekân görselleri için pozlama ve alan derinliği rehberiLayOut’ta doğru ölçülendirme: Mimari paftalar için adım adım rehberMuse Spark Open tanıtıldı: 816 milyar parametreli çok modlu modelDiffusers ile FLUX mimari görsel üretimi: kontrol ve hız rehberi
İpuçlarıUnreal EngineMovie Render Graph

Unreal Engine Movie Render Graph’ta render callback’leri kurma rehberi

Unreal Engine 5.4’ün Movie Render Graph sistemi, render işinden veya her çekimden önce ve sonra Python callback’leri çalıştırabiliyor. Bu rehber, Execute Script Node ile kurulum ve dikkat edilmesi gerekenleri açıklıyor.

Gün ışığı alan modern iç mekân ve render planlarını çağrıştıran çalışma masasıAI görsel
Temsilî görsel; yapay zekâ ile üretildi.Görsel: 3dsınıfı / FCA AI
KaydetPaylaş0

Kısaca

  1. Movie Render Graph callback’leri, render işi veya çekim başlamadan ve tamamlandıktan sonra özel mantık çalıştırabilir.
  2. Callback sınıfı, MovieGraphScriptBase sınıfından türetilip ilgili fonksiyonlar geçersiz kılınarak hazırlanır.
  3. Çekim bazlı callback’ler için Global Output Settings Node içindeki Flush Disk Writes Per Shot seçeneği etkinleştirilebilir.
  4. Callback sınıfını her Unreal Editor açılışında kullanılabilir kılmak için ilgili Python sınıfı init_unreal.py dosyasından içe aktarılabilir.

Unreal Engine 5.4’teki Movie Render Graph (MRG), render işlerinden önce ve sonra ek işlemler çalıştırmak için callback sistemi sunuyor. Epic Games’in resmî belgelerine göre bu işlemler, grafiğe eklenen Execute Script Node üzerinden yapılandırılabiliyor. Bu rehber; render başlangıcında hazırlık yapmak, iş tamamlandığında çıktı verilerini incelemek veya çekim bazında işlem yürütmek isteyen ekipler için temel kurulum akışını ele alıyor.

Callback’ler ne zaman işe yarar?

Callback, render akışının belirli bir noktasında çalışan özel koddur. İş başlangıcı ve bitişi için job callback’leri; her bir çekimin başlangıcı ve bitişi için shot callback’leri kullanılabilir. Örneğin, iş tamamlandıktan sonra çıktı verilerine bakmak veya çekim tamamlandığında o çekime ait dosya yollarını ele almak mümkün olur.

MRG’deki Execute Script Node, callback’leri grafik yapılandırmasının içine eklemeyi sağlar. Callback sınıfı, Unreal’ın Python API’sindeki MovieGraphScriptBase sınıfından türetilir. İlgili fonksiyonlar @unreal.ufunction(override=True) ile geçersiz kılınır. Bir callback sınıfı kaydedildikten sonra Execute Script Node içindeki seçim menüsünden kullanılabilir.

1. Movie Render Queue eklentisini ve grafiği hazırlayın

Önce Unreal Editor’da Edit > Plugins yolunu izleyerek Rendering bölümündeki Movie Render Queue eklentisini etkinleştirin ve editörü yeniden başlatın. Projede render edilecek bir Level Sequence bulunması gerekir.

Movie Render Graph’a Movie Render Queue üzerinden erişilir. Epic’in belgesindeki akış şöyledir:

  1. Window > Cinematics > Movie Render Queue yoluyla Movie Render Queue penceresini açın.

  2. Render düğmesine basıp ilgili Level Sequence’i seçin.

  3. Settings sütunundaki Unsaved Config menüsünden Movie Render Graph (Beta) seçeneğini açın.

  4. Create New Asset bölümünden Movie Render Graph oluşturup adlandırın ve kaydedin.

  5. Oluşturduğunuz grafik yapılandırmasını Settings sütunundan açıp düzenleyin.

Mevcut iş akışında Movie Render Queue (MRQ) ile Movie Render Graph birlikte kullanılabilir. MRQ, işleri sıraya koyma ve toplu render için arayüz sağlarken MRG, render işlemlerini düğüm tabanlı bir grafikle yapılandırır.

2. Python callback sınıfını oluşturun

Aşağıdaki örnek, işe başlama ve iş bitişi callback’lerini gösterir. on_job_finished çağrısı, render işi tamamlandığında çalışır; bu nokta başarılı bitişin yanı sıra iptal durumunda da kullanılabilir. Sonuç bilgisindeki success niteliğiyle işin başarılı olup olmadığı kontrol edilebilir.

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 örnekte iş başlangıcında ve bitişinde günlük kaydı oluşturuluyor. Kendi işlem mantığını eklemeden önce callback’in hangi aşamada çalıştığını ve hangi verileri aldığını netleştirmek önemlidir. İş ve grafik yapılandırmaları callback’e kopya olarak iletilir; bu nedenle callback içinde yapılan değişiklikler kuyruktaki asıl varlığı doğrudan değiştirmez.

Sınıfın Execute Script Node menüsünde görünmesi için kaydedilmesi gerekir. Epic’in örneğinde sınıfı kaydetme işlemi oturum için yapılır. Her açılışta erişilebilir olmasını isteyenler, sınıfı /Content/Python/init_unreal.py dosyalarından birine import edebilir. Bu, sınıfın editör başlangıcında yüklenmesini sağlar.

3. Job ve shot callback’leri arasında seçim yapın

on_job_start tek bir render işi başlarken; on_job_finished işin sonunda çalışır. Bir Level Sequence birden fazla çekim içeriyorsa on_shot_start ve on_shot_finished her çekim için ayrı ayrı kullanılabilir. Shot başlangıcı callback’i, çekim kurulmadan önce çalışır. Shot bitişi callback’ine ise o çekimin çıktı verileri iletilir.

Çekim bazlı callback’leri etkinleştirmenin iki yolu vardır: grafikteki Global Output Settings Node üzerinde Flush Disk Writes Per Shot seçeneğini işaretlemek veya sınıfta is_per_shot_callback_needed fonksiyonunu geçersiz kılıp True döndürmek. Bu seçimi gelişigüzel açmayın: Epic, dosyaların diske yazılmasını beklediği için bu ayarın render süresini artırabileceğini belirtiyor.

Mimarlık ve archviz iş akışında ne sağlar?

Birden fazla planı veya sahneyi sıraya koyan görselleştirme ekipleri, iş ve çekim düzeyindeki callback’lerle tekrar eden işlemleri render akışına bağlayabilir. İş tamamlandığında çıktı verilerine ve dosya yollarına erişmek, örneğin çekimlerin ürettiği dosyaları sonraki bir işleme adımına yönlendirmek için temel oluşturur. Ancak belgeler belirli bir dosya adlandırma standardı veya hazır bir archviz otomasyonu tarif etmiyor; bu mantığın projeye göre geliştirilmesi gerekir.

Render farm veya farklı bir süreçle entegrasyon hedefleniyorsa, MRQ’nun yerel ve ayrı süreçte render seçenekleri de önem taşır. Ayrı süreçte render için proje değişikliklerinin kaydedilmiş olması gerekir. Callback’leri gerçek teslim ayarlarına geçmeden önce küçük bir test işinde doğrulayın; özellikle çekim bazlı disk yazma seçeneğinin süreye etkisini ve sınıfın editör başlangıcında yüklenip yüklenmediğini kontrol edin.

Sık yapılan hatalar

  • Movie Render Queue eklentisini etkinleştirdikten sonra editörü yeniden başlatmayı atlamak.

  • Shot callback’lerinin kendiliğinden çalışacağını varsaymak; bunlar için per-shot disk yazma gereksinimi ayrıca etkinleştirilmelidir.

  • İş bitişini yalnızca başarılı render olarak yorumlamak. Callback iptal durumunda da çağrılabilir; başarı bilgisini kontrol edin.

  • Callback içindeki kopya iş veya grafik yapılandırması üzerinde yapılan değişikliklerin kuyruktaki asıl varlığı güncellediğini sanmak.

  • Her shot sonunda dosya yazımının beklenmesinin render süresini uzatabileceğini gözden kaçırmak.

Sık sorulan sorular

Movie Render Graph callback’leri ne işe yarar?

Render işi veya çekim başlamadan ve tamamlandıktan sonra özel kod çalıştırmayı sağlar. İş ya da çekim düzeyindeki callback’ler, grafikteki Execute Script Node üzerinden yapılandırılabilir.

Unreal Engine’de shot callback’leri nasıl etkinleştirilir?

Global Output Settings Node içindeki `Flush Disk Writes Per Shot` seçeneği işaretlenebilir. Alternatif olarak callback sınıfında `is_per_shot_callback_needed` fonksiyonu geçersiz kılınarak `True` döndürülebilir.

Callback sınıfı her editör açılışında nasıl kullanılabilir?

Sınıf, `/Content/Python/init_unreal.py` dosyalarından birine import edilebilir. Böylece editör başlangıcında yüklenmesi sağlanır.

Kaynaklar

2 kaynak
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/movie-render-pipeline-in-unreal-engine
Özet
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/running-pre-and-post-render-callback-mrg-scripts-in-unreal-engine
Ö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

Türkiye’de mimarlık ve görselleştirme ofisleri için callback’lerin asıl değeri, tekrarlanan render sonrası kontrolleri veya çekim bazlı işlemleri daha düzenli bir akışa bağlama potansiyeli. Özellikle çok planlı sunumlarda iş verisi ve dosya yollarına erişebilmek, özel otomasyon geliştirmek için yararlı bir başlangıç sunuyor.

Bununla birlikte, bu özellik tek başına hazır bir render farm çözümü değil; Python sınıfının kurulumu ve proje yapısına uygun şekilde test edilmesi gerekiyor. Shot başına disk yazımını beklemek süreyi etkileyebilir. Ofisler, teslim öncesinde callback’leri küçük bir işte doğrulamalı; ayrı süreçte render kullanılıyorsa proje değişikliklerini kaydetmeyi unutmamalı.

Bu habere tepkin ne?

Yorumlar 0

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

İlgili haberler