1.7 KiB
Executable File
1.7 KiB
Executable File
Demo Render Bridge: minimalny prawdziwy plugin UE C++ -> Python
Plugin pokazuje rzeczywisty przeplyw:
TextureRenderTarget2D
-> Python wywoluje UFUNCTION
-> C++: FImageUtils::GetRenderTargetImage
-> C++: FImageUtils::CompressImage(".png")
-> TArray<uint8> wraca do Pythona
-> Python zapisuje bytes na dysku
Struktura
DemoPlugin.uplugin
Source/DemoPlugin/DemoPlugin.Build.cs
Source/DemoPlugin/Public/DemoRenderBridge.h
Source/DemoPlugin/Private/DemoRenderBridge.cpp
Source/DemoPlugin/Private/DemoPlugin.cpp
use_plugin.py
Jak uruchomic
- Skopiuj caly katalog jako
<Projekt>/Plugins/DemoPlugin. - Upewnij sie, ze projekt ma modul C++ i wlaczony
Python Editor Script Plugin. - Otworz projekt i zaakceptuj kompilacje pluginu albo zbuduj projekt w IDE.
- Utworz asset
TextureRenderTarget2Dpod/Game/Demo/RT_Demolub zmien sciezkeRENDER_TARGET_ASSETwuse_plugin.py. - W Unreal Editor wybierz
Tools -> Execute Python Scripti uruchomuse_plugin.py. - Wynik pojawi sie jako
Saved/demo_from_cpp.png.
Co jest mostem do Pythona
UCLASS()rejestruje klase w refleksji.UFUNCTION(BlueprintCallable)eksportuje funkcje.UDemoRenderBridgestaje sieunreal.DemoRenderBridge.RenderTargetToPngstaje sierender_target_to_png.UTextureRenderTarget2D*przyjmuje obiekt zaladowany w Pythonie.TArray<uint8>wraca jako kolekcja konwertowalna przezbytes(...).
To jest odchudzona wersja prawdziwego render bridge'a: pomija wybor formatu, luminancje, specjalne kodowanie RGB, transport sieciowy i rozbudowana obsluge bledow. Zachowuje jednak faktyczne wywolania API C++ Unreala i prawdziwy kontrakt widoczny z Unreal Python.