I haven’t seen anyone ask this and my testing shows that it probably does not, but I’m wondering if your plug-in supports On-The-Fly mesh swapping? I have a scenario where I want to swap body meshes on the player, and just changing the skeletal mesh to a new one does seem to work, but the meshes are different enough that they require different body and translator setup values. I don’t see a way of changing those values during gameplay. I’ve gotten to the point where I can extract the data structures from the skeletal mesh translator object, but I don’t see a way of changing any of the values contained within. Is this possible?
Hi,
It’s not expected behaviour, but in theory it should work after re-initializing both components (re-call functions like in tje BeginPlay). But if I remember correctly, names of bones in VRIKSkeletalMeshTranslator arent exposed to read/write in blueprint. It’s not a problem, I’ll make them available in the next update.
Hi,
I encounter a problem with multiple skeletal meshes (characters) selection in my multiplayer game, the player can choose its character.
I have 4 characters.
Each character has its own VRIKBody & VRIKSM Translator.
On toggle, I re-initialize body & translator.
If player choose each different character, no problem, IK is well resetted.
Problem appears the second time the player choose the same character. The IK seems rotated 90deg & hands do not feet controllers anymore.
thank you for your help
Hello YuriNK
Been uploading some avatars to our workshop and i noticed that the paragon characters if using compute leg IK have their feet enforced along the X axis which causes this broken ankle appearance.
If using apex for any clothing as well it causes this sharp stutter in the simulation from the blendspace offset transform bone kicking in when you start moving. not too sure what could be done about this though, i guess the physics is ticking before the animbp transform is applied. Maybe doing it in C++ on the component rather than the animgraph.
Video showing it: https://www.youtube.com/watch?v=0YSk…ature=youtu.be
@g6r6e6gpolymorph
If your switching through posses and unposses without destroying the character i dont think you need to reinitalize the components, are you using direct vrinput or input from components
@Rareden
Make sure that Paragon skeleton has no sockets with names equal to bones (for example, sockets like foot_r and foot_l can break VRIKSkeletalMeshTranslator). I know that at least some Paragon characters have such sockets.
In general, update happens in VRIKBody::CalculateFrame and VRIKSkeletalMeshTranslator::UpdateSkeleton. You can call them before or after physics if you changed Ticking group in you blueprint (that’s why they’re called manually). If needed, you can even create dedicated blueprint actor with changed ticking group to call these functions.
@v-seeker
For other tracking system then supported by default in UE4,
- VRIKBody::VRInputOption = Input From Components
- call VRIKBody::Initialize (instead of “Activate Input”) with references to three Scene Components (one - head, two - hands) in BeginPlay
To adjust positions of wrists, modify
- VRIKBody::RightPalmOffset / LeftPalmOffset (“Setup” rollout).
Hey, a quick question. I don’t know if its plugin related problem but whenever I move with my character it scales up for some reason.
Not sure.
- is something modified in animation blueprint?
- do you use original or retargetetd animations?
Hello YuriNK, Is there any way to rotate the character via motion controller input? Right now the only way to rotate the character is to rotate my head.
Thanks,
Regards.
Rotate a whole actor or parent component of camera/controllers (when using input from components).
I tried that but it seems like the headset is preventing the character to rotate. The parent is rotating and the character also tries to rotate for just a second and then back to its first position. If I press rotate right and rotate left event rapidly I can see the character is vibrating
Nevermind, I fixed it but I noticed that when I move my character is getting bigger and when I stop moving it become smaller again.
Hi Yuri,
Huge fan of your plugins. Using both your VR IK Body Solver as well as your Text to Lip Sync.
Just have a question in regards to the body solver. Is there a way to limit rotation of the elbows from rotating into the body of the player.
At the moment we have gotten it to work without a lowerarm twist and am wondering if limited the rotation is possible.
In addition, what would you recommend for adjusting the chest position to be further back as well as having the IK input be limited to a certain angle of the headset rotation (this is because when you look straight down the Body starts to glitch out and snap forward awkwardly).
Thanks for taking the time. Looking forward to your response.
It happens because of blending between walking blend space and captured pose. I can’t test it right now without headset, but it seems that anim blueprint from new demo project should work correctly (it looks like this: https://sun9-52.userapi.com/c857636/v857636790/e4586/wyXwxtRYX9A.jpg). If you already use it, try to add idle pose in the center of walking blend space and remove switching between Pose Snapshot and blended pose: https://sun9-18.userapi.com/c858532/v858532790/48aee/yysZNexSojo.jpg
I know about this problem and investigate it but have no solution yet. I believe, best approach is to apply physics with constraints ‘above’ animation, but don’t know how to do that.
Also, there is a parameter called ElbowSinkFactor in VRIKBody component (“Body Params” rollout). You can decrease it (even below zero) to adjust elbows prediction algorithm.
I’m not sure, but try to disable torso ik (VRIKSkeletalMeshTranslator::DisableFlexibleTorso), when player is looking down (Dot Product (Camera->GetForwardVector & Vector(0, 0, -1) is close to 1).
Thanks Yuri for the response!
Will give this a try and get back to you.
Thank you for plugin, been working with for months. Main issue as of late is skeleton is spazzing as result of pawn speed / velocity. My character flies and moves pretty fast and past a certain point it makes the skeleton flicker on and off. Another example is if I fly high enough and then cut my jets. As the pawn is falling the legs glitch up into the air above the players head and don’t catch up until pawn hits ground. Or if I boost in any direction with too much velocity the IK skeleton lags behind the pawn.
I like the effect of the motion on the IK skeleton and it seems to be either inside Update Skeleton or the Get Last Pose function. How would I ( preferably extremely dampen ) or completely remove this effect? Supposed to be launching game EA in 30 days and this is holding me up.
Thanks for everything.
Hi Yuri - Thank you for sharing this plugin with the community!
I wanted to ask if the VRIK Body plugin is compatible to your knowledge with thelatest SteamVR input plugin - 1.8 - sdk 1.8.19?
When I attach the SteamVR plugin to an unedited version of the VRIK body (4.23 project template from unreal marketplace page), the arms drop to the side and the motion controllers are unresponsive (VR Preview mode) - although they are tracking and registered by SteamVR out of game. When you remove the SteamVR plugin from the project, everything works as normal.
I appreciate your guidance if this is something you have seen before - or I apologize if I have missed an obvious step in the process to link these together!
a. Invalid actions manifest can break tracking of controllers. Make sure that actions manifest and binding files ([project’s folder]/Config/SteamVRBindings) are valid in your project. Try to add some input actions and regenerate both manufest and bindings.
You also can create new project based on VR template, enable Valve SteamVR Input plugin and check if it works.
Note that raw VR actions like “Motion Controller (R) Trigger” don’t work with SteamVR Input plugin. You need to create custom actions for all of them in Project Settings -> Input and then replace input events in BP_PlayerPawn or BP_PlayerCharacter.
b. If you used Diriect VR Input, try to switch to input from components (input from components is default in my demo prpoject VRIKBodyDemo_New).
- in VRIKBody settings set “VR Input Option” = “Input from Components”.
- in BeginPlay event instead of VRIKBody::ActivateInput use VRIKBody::Initialize.
Thank you Yuri! That worked like a charm. Option A you suggested was the step I was missing. After adding the SteamVR plugin to the project, I went through the steps in the SteamVR menu
- Added Sample Inputs
- Regenerate Action Manifest
- Regenerate Controller Bindings
- Reload Action Manifest
I then went into the BP_PlayerCharacter blueprint and swapped out the existing commands (e.g. MotionController (R) Trigger / MotionController (R) Grip1) with equivalents from the default Steam VR inputs (e.g. InputAction GrabRight)
Everything is working fine following those steps. Thank you for the very quick response!