Sexy MoCap

Humlebien

Active Member
Donor
Nov 15, 2016
555
1,147
We have quite a few devs on the Discord, with a seperate room for devs, so they can ask someone with knowledge, rather than plebs like me. Might want to consider heading there.
 

DudeDudeston

Newbie
Apr 27, 2017
16
5
I´m not sure what your question is exactly, but what Im getting is that you want to know if people do their own Motion Capturing?

Definitely not, as for what I´ve seen. Most Animations, if there are even any in the game at all, have absolutely horrible animations and the only reason I put up with those is A. I dont expect them so I dont care if they are there or not B. We arent going to get anything better so whatever. Some Devs are getting a lot of money that probably could do it, at least financially, technically I guess not.
Usually those are the same that spoon feed their customers with the absolute bare minimum and considering that most of the time a game doesnt even get a full version, MoCap seems like something that wouldnt make any sense at all. Again, its expensive if you want to actually improve your workflow and considering that most animations look like they were made with the Photoshop timeline instead of actually being 3d animations, I would think you would also have to learn to work with it.

I´m no H-Game Dev but I´ve been an employed dev and freelancer for regular games and back in the day(around the release of 2.49 I think) when I started working with blender, people were messing around with all kinds of cameras and tracking software and its never been worth the effort, there´s just too much to touch up afterwards that its just not worth it, especially considering the money involved and the low quality that would suffice for H-Games.

If you really really want to do MoCap though and you dont want to spend a ton of money, people have been messing around with using the 360 kinect and I assume the Xbone kinect to do some MoCap.
That could give you a start at least.

Hope that was at least a little informative.
 

captainJugs

Newbie
Jun 7, 2017
63
88
I'm currently working on a full 3d game in Unity and while general animations are easy to get (walking running), I've had to make my own sexual animations. This has been quite a big learning curve for me, but generally I just use the puppet tool in Daz3d to create the base animation. then animate arms/legs/head/mouth/eyes in unity with IK.
 

captainJugs

Newbie
Jun 7, 2017
63
88
I will check out Unity 2017, the timeline feature looks handy :)

I've been using Unity 5.6 and the general consensus is that it isn't the best for animating humanoid characters. So I've been exporting the animation from another program (daz3d).

When you need your character to be able touch objects while being animated you need to use IK.
Here is the Unity IK info:


And here is the script that I use for IK control:

Code:
using UnityEngine;
using System;
using System.Collections;

[RequireComponent(typeof(Animator))]

public class IKControl : MonoBehaviour
{

    protected Animator animator;

    public bool ikActive = false;
    public Transform rightHandObj = null;
    public Transform leftHandObj = null;
    public Transform rightFootObj = null;
    public Transform leftFootObj = null;
    public Transform rightKneeObj = null;
    public Transform leftKneeObj = null;
    public Transform lookObj = null;

    void Start()
    {
        animator = GetComponent<Animator>();
    }

    //a callback for calculating IK
    void OnAnimatorIK()
    {
        if (animator)
        {

            //if the IK is active, set the position and rotation directly to the goal.
            if (ikActive)
            {

                // Set the look target position, if one has been assigned
                if (lookObj != null)
                {
                    animator.SetLookAtWeight(1);
                    animator.SetLookAtPosition(lookObj.position);
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (rightHandObj != null)
                {
                    animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
                    animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);
                    animator.SetIKPosition(AvatarIKGoal.RightHand, rightHandObj.position);
                    animator.SetIKRotation(AvatarIKGoal.RightHand, rightHandObj.rotation);
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (leftHandObj != null)
                {
                    animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1);
                    animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1);
                    animator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandObj.position);
                    animator.SetIKRotation(AvatarIKGoal.LeftHand, leftHandObj.rotation);
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (rightFootObj != null)
                {
                    animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1);
                    animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1);
                    animator.SetIKPosition(AvatarIKGoal.RightFoot, rightFootObj.position);
                    animator.SetIKRotation(AvatarIKGoal.RightFoot, rightFootObj.rotation);
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (leftFootObj != null)
                {
                    animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1);
                    animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1);
                    animator.SetIKPosition(AvatarIKGoal.LeftFoot, leftFootObj.position);
                    animator.SetIKRotation(AvatarIKGoal.LeftFoot, leftFootObj.rotation);
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (rightKneeObj != null)
                {
                    animator.SetIKHintPositionWeight(AvatarIKHint.RightKnee, 2);                   
                    animator.SetIKHintPosition(AvatarIKHint.RightKnee, rightKneeObj.position);                   
                }

                // Set the right hand target position and rotation, if one has been assigned
                if (leftKneeObj != null)
                {
                    animator.SetIKHintPositionWeight(AvatarIKHint.LeftKnee, 2);
                    animator.SetIKHintPosition(AvatarIKHint.LeftKnee, leftKneeObj.position);
                }

            }

            //if the IK is not active, set the position and rotation of the hand and head back to the original position
            else
            {
                animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 0);
                animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 0);
                animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 0);
                animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 0);
                animator.SetLookAtWeight(0);
            }
        }
    }
}
 

polywog

Forum Fanatic
May 19, 2017
4,065
6,295
Last I checked there were around 30,000 animations in the mocap library, not really relevant to Daz studio picture makers
but for those using real 3D animation software, they might find it useful.