Files
PythonInUnreal/Plugins/DemoPlugin
2026-10-27 19:57:03 +01:00
..
2026-10-27 19:57:03 +01:00
2026-10-27 19:57:03 +01:00
2026-10-27 19:57:03 +01:00
2026-10-27 19:57:03 +01:00

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

  1. Skopiuj caly katalog jako <Projekt>/Plugins/DemoPlugin.
  2. Upewnij sie, ze projekt ma modul C++ i wlaczony Python Editor Script Plugin.
  3. Otworz projekt i zaakceptuj kompilacje pluginu albo zbuduj projekt w IDE.
  4. Utworz asset TextureRenderTarget2D pod /Game/Demo/RT_Demo lub zmien sciezke RENDER_TARGET_ASSET w use_plugin.py.
  5. W Unreal Editor wybierz Tools -> Execute Python Script i uruchom use_plugin.py.
  6. Wynik pojawi sie jako Saved/demo_from_cpp.png.

Co jest mostem do Pythona

  • UCLASS() rejestruje klase w refleksji.
  • UFUNCTION(BlueprintCallable) eksportuje funkcje.
  • UDemoRenderBridge staje sie unreal.DemoRenderBridge.
  • RenderTargetToPng staje sie render_target_to_png.
  • UTextureRenderTarget2D* przyjmuje obiekt zaladowany w Pythonie.
  • TArray<uint8> wraca jako kolekcja konwertowalna przez bytes(...).

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.