Retargeting non humanoid FPS arms
-
Ive watched a few videos on the retargeting feature In cinema 4d.
https://youtu.be/dGBw_KKRfLA?si=1BapWV2fyw9xiiWkIs there a way this could work with fps arms that have bones? Im replacing the mesh of the original fps and using it as a reference. I have been doing this manually but would save me alot of time if it could work in cinema 4d.
Side note Both set of arms have the same bone structure hiarcky.
-
Hi confidence-devil,
I'm unsure how many people would know what FPS stands for other than frames per second. First Person Shooter.
That is perhaps a good question for the next DPP series following Monday.
https://www.youtube.com/live/ARTcaK-sk4o?si=zySysQ8FyQTBP-p9So what is it? It is a regular character where the idea is that only the arms are needed, except for shadows, reflections, etc. So to just build the arms seems like a limited idea. I would reconsider that. It might look weird when shadows or reflections have no body, etc. But I don't know your project's needs.
Please have a look here.
I picked a character from the Asset Browser and used a camera with a constraint tag. That constraint tag is set to Transform and use the Head Controller here. With the Constrain tag's offset you can move the camera in position. Preferably a little bit higher, if there is a big nose
If you have the joint set up and the mesh and the joints are aligned with the mesh, then a simple Bind command should do the trick.
https://help.maxon.net/c4d/2023/en-us/Default.htm#html/45428.html#PLUGIN_CMD_1019881
The retargeting tag can be modified, and if parts are missing, it typically jumps over that part of the hierarchy, which needs to be explored if that works.
Retargeting is a method of using another rig with motion and transferring that motion to it.
If the rig has only arms as joints, it may have some requirements, as the transfer of joints is often purely rotational with a partial rig, which needs to be explored.I will be back on Wednesday, even though I have had a vacation since yesterday, but there were so many questions today that I thought to answer them before everyone has to wait five days.
Cheers
-
For the bindi command, do I just select all and go to character - bind? This will basically put the 2nd arm’s specific bones as a child under urge original one? Is there a way to bake the reference animation to the new arms? One last thing technically if I copy the exact name for each bone to the 2nd arms. Wouldn’t the animation play on the 2nd arms?
-
Hi confidence-devil,
To bind an object to joints, they do not need to be in on hierarchy.
The object needs to be selected and all joints. Whereby the tip joint is often ignored (not selected). Then, the Bind command is executed.
Typically, a test is done if all Weighting is working nicely. Meaning that all points follow the joints. (The joint/point connection is just a deformer setup.) If not, please share the file. I will be back from my vacation on Wednesday and have a look into it.The Weight tag holds the combination between the points and the joints.
If you can, just weigh both simultaneously or bind them separately.The animation can be stored with the Animation Clip system or Point Cache.
All the best
-
Looks like in the new version of cinema there is no bind under commands? Do you know the steps on how to find the bind option in the menus
-
Hi confidence-devil,
Main Menu> Character> Bind
Please have a look here:
https://www.youtube.com/watch?v=oiEUwM7vdCg&t=1932sCheers
All the best
-
Thanks for your help. Anyway you can show me maybe screen record?
I zipped a basic project with both arms fbx in a c4d project. I still can’t seem to get it to work. I’m still down to try the retargeting feature too if that workshttps://drive.google.com/file/d/1eBmilooCaBHQo9MNTewIX5CgU_gAdEbH/view?usp=drivesdk
Thanks for your help
-
Hi confidence-devil,
Thank you very much for the file.
Here is my cleaned-up version. I restrict myself to one-minute screen captures here; sometimes, I fast-forward it to squeeze it in one minute. It has taken a while to understand what someone had set up, and it feels that someone else came later and put their ideas on top of it.
First observation: There were many poses, a standard to transport poses from a Pose Morph or whatever it is called in other apps. This might survive inside one application when the target mesh changes point numbers and amounts, but it might not survive another export.
These poses showed up, and if you like to keep those, set them to invisible for edit and rendering.Next, there were many Nulls in the hierarchy, interrupting the joint hierarchy, and if I got it correctly, the "Rotation Fan" joints were the parents; those should be a child as they work on subsets of the mesh. It was kind of mixed up.
The T-Pose in the Skin/Weight combination was more of an A Pose.
None of the joints were "Frozen", meaning you get them most likely not back in position once moved. Whenever you want to get something back, select the Joint in question and Reset PSR. Done.
The arms and shorts should be invisible where they are covered by something else.
The fingers are modeled very closely, so they must be Manually Weighted. See the video from above. I have not done it.
Here is your file back, with a focus on Binding. This is precisely what the video link from above shows; nothing new, and it has been used for many years.The bind file
https://stcineversityprod02.blob.core.windows.net/$web/Cineversity_Forum_Support/2023_PROJECTS_DRS/20230906CV4_2023_drs_23_CAfp_01c4d.zipAll the best
-
Ok, so the file you sent back is just my new arms re organized? The video shows binding joints to mesh. If I want to bind bone to bones is this the same thing? I don’t really understand your paragraph fully aboove. Sorry I’m a bit of a novice to this
-
Hi confidence-devil,
Some techniques need time to sink in; allow yourself some time. In other words, start perhaps with three joints and a cylinder (no caps even) and explore it. Bind it, try to set a different weight to points, and look at how that changes the outcome.
Think of a joint as a handle for a single point or many points in a group. To be able to have several joints moving the mesh (the group of points that creates the polygons), a weighting is introduced. This weighting for a single point is like how much all joints share the influence of a single point. Like joint-1 has 80% influence, and joint-2 has 20%. It is always 100%. Otherwise, things move weirdly. Something that the video series mentioned above sadly does not showcase in terms of why. But if it is over 100%, the mesh will move faster; if it is below, it stays behind.
In summary, A joint is just an object that creates changes on a mesh. Each joint can have more or less influence on a mesh. All rig joints move the surface (mesh) to absolute 100%, not more, not less.
Joints are not baked to joints.
This technique is a longer story; hence, we made a whole series, which needs a few hours to cover the basics. If you like to feel savvy with it, use that series. Perhaps watch another one, as each character animator has a different idea of how to weigh the rig.
Yes, it takes some time, as said above, and any shortcut taken now will slow down the work later on, and the "saved" time will be paid with interest.
Above: It is not a single paragraph; it is a simple list of steps I took to get your rig working. That means it is a way of fixing things, not how they will be done.
Your headline has "Retargeting" in it. So, I wonder what source you like to use?
Remember that the human bone rig has a hierarchy and is all about fixed length of bones and rotation. Not so much of position transfer as the position is typically a result of rotation and fixed length. The Retargeting needs to be modified if you have only Arms as a rig, while using a full body rig as source.Enjoy your exploration
-
Ok got it, I will explore more into this and thanks for all the tips. Maybe let’s try this from the start and you can tell me my best solution. I have a fps game and it already has animated fps arms/ weapons( about 30 different setups meaning I will have to retarget or bind).the fps arms/ gun are not huminod just generic as untiy3d calls it. I’m tryin to change the mess to a specific one. I use another program to make my new arms. The new arms starts as huminoid but I then use c4d to delete the un used bones to closely Matched what the original arms has.
I then in Unity take the original arms and manually tpose the Arms and I then place my new arms as close as I can to the original ( left hand is most import as the right hand just holds the gun and somtimes not even in frame) . I then start with left arm bone of the new arms and place it as a child under the same type of bone in the original arms. I do this all the way to the pinky finger etc.. I then hide the mesh on the original arms and play the animation. This comes close enough as the animation is so quick and not always on frame. For the noticeable parts that need attention like the fingers , I will manually add new key Frames to my new arms to fix any problems. This works fine but just takes too long. So now you know the full story . What do you think is still my best approach to get my new mesh to carry over the animations? -
Hi confidence-devil,
Here is my take, without any production experience, just my little tinkering. I wait as before to work through their excellent filmmaking class. I hope to get access one day.
You animate one single rig in Cinema 4D, all the 30+ sequences you have, and place markers where one ends and starts.
You can go different routes, Animation Clips, or the Retargeting tool to apply all these animations to the rig. I would use a copy, bake everything into Keyframes, and keep it super simple. Unity 3D can read c4d files or FBX if preferred over native files.
With that long Animation, you have a single character in Unity. In the Animation tab, you specify the single Animation takes with start and end points while providing a specific name for each. While unpacking the Animation, you define which is a loop and which is not. Try to have all content first in Cinema 4D. To set up something in Unity3D and then replace it, sounds counterintuitive.This keeps the setup in Unity3D clean and free of clutter. My understanding of Unity3D and the idea of creating real-time animations is that everything should be straightforward. So good planning, having all in one file, and staying organized is key. This allows you to be in Untity's Animator very efficiently with the rules to define the start of a different animation sequence.
https://docs.unity3d.com/Manual/AnimationsImport.html
https://docs.unity3d.com/Manual/AnimationClips.html
https://docs.unity3d.com/Manual/AnimatorControllers.html
etc.My best wishes.
-
Hi, so I decided to just re animate all my gun weapons with my correct arms. Can you show me a simple way in c4d to bake the gun fbx animation so I don’t have to have any bones etc.. the gun fbx has some locks in the tags and I can import this gun into my other software and see the sub objects. So what I’m looking for is to be able to bring in the gun fbx with its sub objects with its baked animation
https://drive.google.com/file/d/1udb3b7t-ycCzc7_8mogkFhy4NnLU_UZZ/view?usp=drivesdk
-
II would like to stop here, confidence devil.
I have to talk to my supervisor about his. -
-
-
It might not be anything hard. In the project I attached you can see the gun and it’s sub objects, but as is it can’t show them in my other animating software, it just shows all as one object. I believe it’s because how it is rigged. All I’m tryin to do is have the gun/sub objects with its animation be able to go into my other software
-
The tech is not the problem.
We at Maxon have other concerns.
Until we can't clear those… -
-