I tested Sequencer with my project now. I found following bugs while playback sequence record:
I am not using Epic skeleton but default CAT skeleton for my character skeletons. It does not have root bone like Epic one. Pelvis is root bone there. See screenshot.
Now after recording my full animation sequence is broken because sequencer uses rootbone for everything there.
Latest Github version 4.12: As you see on second screenshot my pelvis bone is in root position. Next frames there is slow transition to inverted version of launcher 4.12 result.
Launcher 4.12 preview 2: Skeletal Mesh has right rotation but all other components including parent capsule not.
Actors that were attached with AttachToComponent to some character mesh sockets while runtime are at root position (like pelvis bone of mesh but without relative offset). See last screenshot.
These Actors are recorded as components of character in sequencer.
Possible Solution: Create alternative recording option that is actor / component transform driven and does not rely on root bone of the skeleton.
Thanks for providing your content on the forums, we will look to get a reproducible case working internally and try to fix this! I’ll update this thread if/when it gets addressed.
I was able to reproduce your first issue and have entered it as UE-30679.
However, I’ve been unable to reproduce your second issue when adding the spawned/attached actor as it’s own recording (Add button in Sequence Recorder). Can you provide some more details on your BP graph for spawning/attaching those actors?
This Actor (Weapon) is spawned at runtime and than attached via AttachToComponent to the character mesh socket.
Ok I found the reason why it is not recorded at right location.
This weapon Actor has “SceneComponent” as root (that i need to define the location of the handle) and “StaticMeshComponent” that is attached to this SceneComponent.
Both of them are recorded as components of Character. SceneComponent does not have “Transform” track. But StaticMeshComponent does.
If i dont have SceneComponent as root than Actor is recorded as attached at right socket location (but still need this component as dummy).
WeaponRoot = ObjectInitializer.CreateDefaultSubobject<USceneComponent>(this, TEXT("WeaponRoot"));
Mesh = ObjectInitializer.CreateDefaultSubobject<UStaticMeshComponent>(this, TEXT("WeaponMesh"));
PrimaryActorTick.bCanEverTick = true;
is there already any info about this? Would just like to know when I can use this tool
Any chance you can send an example project to show your second bug? It’s something we are having trouble reproducing in house. You can PM me a download link on the forums.
Unfortunately I cant send this project. Weapon Actor has structure like i showed earlier to you. On PostInitializeComponents of Character it is spwaned by
Params.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
Params.bAllowDuringConstructionScript = true;
BaseHandWeapon = GetWorld()->SpawnActor<AWeapon>(WeaponClass, SpawnTM, Params);
BaseHandWeapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetIncludingScale, SocketName);
that happens only if i use c++ class with component structure that i showed. i dont need to add extra actor record for weapon mesh to appear there in capsule.
If i create BP only weapon actor than everything is ok.
I’ve attempted reproducing your case but haven’t had much luck. I’ll try to be as detailed as possible so that we can try to figure out what the difference is that is making us see different results.
I created my project based off the C++ version of the Third Person Template. I then added a class based off Actor from the C++ Class Wizard and called it WeaponActor. I set this up using your code and then used the code you provided for the character inside of the Third Person Character. I’ll attach the entire source for the project here.
The way I set it up, it spawns the default 1M_Cube from the ThirdPersonTemplate on the index_03_r bone of the Mannequin skeletal mesh that is assigned to the ThirdPersonCharacter. I then opened the Sequence Recorder window, hit “New”, began PIE, selected my ThirdPersonCharacter actor in the scene from the dropdown beside “Actor to Record” and then hit Record. After that I ran around for a bit, alt-tabbed back to the Sequence Recorder and hit Stop before stopping PIE itself.
Upon playing back the sequence that was created, the cube appeared to stay attached in the correct spot and follow the animations correctly.
Could you give my method a try and see what results you get? This was all tested in 4.12 Preview 4 as well.
Hey Matthew, Thanks for your testing.
Main difference between our weapon actors is that you have SetRootComponent(Mesh); and i have SetRootComponent(WeaponRoot);
Like I said earlier everything is ok when using mesh as root. But i dont need Mesh as root in my weapon.
I will keep doing more tests.
Ok I could reproduce the bug by modifing your source code. I created TSubclassOf WeaponsClass; attribute in Character Class. Than in the editor I created derived BP_Weapon class from AWeapon class.
This BP class I set as WeaponsClass in Character properties.
I attached archive that includes c++ source files and only modified BP classes (4.12 git version). So you need to unpack content only in your myproject12 folder.
To reproduce bug you need only to select the character actor for sequence record. You will see weapon mesh than at root position.
When adding weapon to record too you will see additional bug. There is weapon mesh at root position and weapon actor high above that head of character that was not snapped to socket.
Ah the root was the difference. I was just copying what you posted before so I didn’t notice that difference. Thank you for pointing that out. I’ll be putting a bug in for the issue and I’ll update you on that shortly.
Thank you again for the information, Footman. I’ve placed a bug in for your second issue under the number UE-31277. I’ll be sure to update you here if there are any changes to the bug report in the future.
Have a nice day!
I am having same issues as OP, to bad to see a fix first in 4.14. Have to solve problem by adding root bone to all animations
Be sure to login to the Public Issues site and vote for the bug report itself. This lets us know how important an issue is to the community and could sometimes affect how soon something is fixed or how long it is delayed due to the prevalence of other issues.
I’m assuming you’ve been to it but, just in case, here’s the link to this report: Unreal Engine Issues and Bug Tracker (UE-31277)
I voted and seem to be having similar issues. I’m just wondering if you know of any fixes that may be in the works?
The bug report, which you can find here, was fixed back in 4.13. If you are still experiencing these issues in 4.18, I would suggest creating a new bug report if you believe the issue that you’re seeing is indeed a bug.