6.2 KiB
6.2 KiB
Weryfikacja v1 — 31 października 2026
Sprawdzone lokalnie: Windows, Unreal Engine 5.7, Blender 5.1.2 i FFmpeg. Nie uruchamiano testów na Linuksie ani na Blenderze 4.x.
- Testy poza UE: 7 zaliczonych, w tym rzeczywiste kodowanie dwóch PNG do MP4, odczyt częściowo zapisanych komunikatów i raportowanie liczby klatek.
- Postęp headless: sprawdzone etapy od startu UE do jego zamknięcia, licznik zapisanych PNG i cichy zapis pełnych logów do pliku.
- Obiekt
Renderer: własne 320×180, dwie próbki, rozgrzewka 0; sprawdzone właściwości MRQ i rzeczywiste wymiary PNG. Walidacja błędnych argumentów i nadpisywanie presetu. Launcher używa obiektu ze skryptu: sprawdzone 400×224. - Dwukrotne wykonanie ćwiczenia w UE: bez dodatkowych aktorów, bindingów i Camera Cuts.
- Render MRQ w procesie edytora uruchomionym bez okna: 48 PNG oraz MP4, 24 FPS.
python exercises/my_shot_headless.py: pełne ćwiczenie 1920×1080, 4 próbki, rozgrzewka 32, 48 PNG i MP4. UE zamknął się automatycznie; oba kody zakończenia 0.- Podgląd pojedynczej klatki z terminala (
--single-frame 24): zaliczony. - Odroczone zamknięcie edytora po renderze: kod zakończenia UE i launchera 0.
- Zwykły
UnrealEditor.exe: projekt otwiera się bez żądania aktualizacji targetu po usunięciu pozostałych receiptów i cache kompilacji UE 5.8. - Wizualnie sprawdzony kadr, ekspozycja i wygenerowana postać.
- Pełny edytor z działającym UI Sequencera: otwarcie sekwencji, ticki UI, przebudowa sceny i dwa kolejne rendery po 48 klatek do MP4 w jednym procesie. Renderer startuje przez MoviePipelineQueueSubsystem po powrocie ze skryptu; Sequencer jest zamykany przed przebudową bindingów oraz rozpoczęciem PIE.
- Blender: eksport zapisanej kolekcji, trzy materiały, aktualizacja istniejącego StaticMesh pod tą samą ścieżką po zmianie geometrii.
- Zmiana koloru materiału oraz dodanie osadzonej tekstury: sprawdzone wartości parametrów UE, przypisanie tekstury i render do MP4.
- Import lokalnych RobotPolice i pilot z FBX, automatyczne dopasowanie wysokości do 200 cm i ustawienie podstawy na Z=0. Odtworzenie materiałów z tekstur PBR.
- Pełny
my_shot.pyz robotem: 48 klatek 1920×1080, MP4 i poprawne zamknięcie UE. - GLB po włączeniu łączenia części modelu: zaliczony test eksportu/importu Blendera, aktualizacji materiałów i tekstury oraz renderu.
character_custom.blend: dwukrotne wykonaniemy_shot.py, dwa eksporty Blendera do GLB i aktualizacja tego samego assetu UE; podgląd renderu zaliczony.
Uruchamianie sprawdzeń jest opisane w README. Wyniki każdego renderu są zapisane
w jego result.json; logi UE znajdują się w Saved/Logs.
Skrypty integracyjne generują własne mapy i assety w Workshop/Generated.
Postacie szkieletowe — 31 października 2026
- 13 testów poza UE: w tym zakresy klipów, wykrywanie nakładania, prędkość, wybór klipu i odrzucanie animacji z innym szkieletem.
- UE 5.7: import fighter i creature jako SkeletalMesh z materiałami i teksturami, własny szkielet każdej postaci oraz klipy idle, walk i attack z osobnych FBX.
- W klipach walk sprawdzone rzeczywiste zmiany rotacji kości między klatkami.
- Ponowny import tych samych assetów po restarcie UE oraz zapis zależności (szkielet, materiały, tekstury). FBX używa importera zgodnego z FbxImportUI; poprzednia wartość flagi Interchange jest przywracana po imporcie.
- Sequencer: klipy w kolejnych zakresach, prędkość 0.75 i jednoczesne klucze transformacji rodzica. Render 48 klatek, 640×360, dla obu postaci.
- Blender 5.1.2: wczytanie fighter i chodzenia z nowych FBX wyeksportowanych
przez UE, zmiana geometrii z zachowaniem wag, zapis
.blend, eksport Armature i aktywnej akcji, import do UE i render 24 klatek, 640×360. - Dołączone źródła są w FBX 6.1, nieobsługiwanym przez importer Blendera 5.1; bezpośredni import w UE działa. Test Blendera korzysta z eksportu UE do FBX 7.3.
Odtworzenie testu Blendera (po teście smoke_skeletal.py):
blender --background --python-exit-code 1 --python tools/create_skeletal_fixture.py
python tools/run_workshop.py tools/smoke_skeletal_blender.py --render
Eksport szkieletowy obejmuje jedną postać i aktywną akcję w zakresie sceny. Nie sprawdzano retargetingu, Animation Blueprintów ani eksportu wielu akcji/NLA.
Pliki na zajęcia i pełne katalogi
tools/smoke_workshop_files.py: w UE zaimportowano wszystkie 51 klipów fighter i 12 klipów creature; sprawdzono kompletność słowników i dodatnią długość klipów.exercises/basics.py: eksport własnego.blend, 192 klatki kamery na okręgu, stały promień, zgodne końce trasy i ciągły yaw obejmujący pełne 360°.exercises/animation_starter.py: jedna postać, dokładnie dwa klipy, 360 klatek.- Wszystkie trzy sceny zostały zbudowane i zapisane w oddzielnych mapach.
Blendowanie z Pythona
- 17 testów poza UE: dodatkowo poprawne nakładanie, wagi obu klipów, zachowanie wejścia i wyjścia środkowego klipu oraz odrzucanie trzech równoczesnych klipów.
tools/smoke_blending.py: w UE 5.7 utworzono przejścia idle → attack → walk, po 12 klatek każde. Sprawdzone zapisane klucze Weight i wyrenderowana klatka 54, w środku pierwszego przejścia, równolegle z kluczami pozycji rodzica.- Przejście korzysta z kanałów wag; chronione pola MovieSceneEasingSettings
nie są modyfikowane. Modele i klipy są ponownie używane z
reimport=False.
Automatyczne wykrywanie bez aliasów
- 23 testy poza UE: dodatkowo pomijanie pliku modelu, nazwy z plików, wykrywanie
kolizji nazw, automatyczny wybór wszystkich klipów, jawny wybór i puste
animations={}. - Sprawdzone przekazywanie
reimport=False/Trueoraz użycie istniejącego modelu. tools/smoke_workshop_files.pyzaliczony w UE: obie postacie wczytane bez argumentuanimations, pełne 51 + 12 klipów i plik zadania z dwoma pełnymi nazwami.
Automatyczny blend
- 26 testów poza UE: blend wynika ze wspólnego zakresu, także przy jednej klatce nakładania; stykające się klipy nie dostają fade. Sprawdzone łańcuchy trzech klipów oraz odrzucanie niejednoznacznych zakresów i dodawania w odwrotnej kolejności.
- Parametr
blend_inusunięty z API i przykładów. Zakresy scen pozostają takie same.