Released : Face To Face And Virtual Origins (Commercial)

2

Comments

  • UthgardUthgard Posts: 863

    V3Digitimes said:

    Yes that's a solution for animations. Face to Face will probably never include this, I don't see the interest of creating a rigid follow node by script, since it can be done so fast by hand, and also because it might completely lose people not doing animations/not understanding the potential use of it (what is this, why it is there, how should I use it, I already anticipate tons of questions and wonderings. I try to nevr include stuff generating more issues than solutions).

    edit: yet, if you allow me to quote you in the documentation, I could include your solution in the documentation if I have an update to make.

    Of course! I mean, it's not like I can put in my CV that you quoted me somewhere, but I kinda want to laugh

  • V3DigitimesV3Digitimes Posts: 3,150

    Thank you!!! As soon as the product needs an update, I'll update the documentation too, and mention you and your great idea. You won't have it on your CV, but you'll be - for a while - in the heart of everything needing this information yes

  • johranshadijohranshadi Posts: 134

    V3Digitimes said:

    Not properly speaking a constraint in the pure sense of a constraint, but the tools can be used at any keyframe and can "constraint" the contact on each keyrframe you want (and on a whole range of keyframes for linear keyframe interpolation, which is easier than for other interpolations for which you will have to click many times on the button to re-project an object on a target). There is no "keyframe" information in the script, meaning that at any time you can do a face to face (at any keyframe). I just tested it (this is why it took me a few minutes to answer):

    I created a torus and a sphere, a target on a face of this torus, and parented the target to the torus. I keyframed the 0 keyframe for torus and spehre. Then I moved the torus at a given place at keyframe 15, then projected the sphere (using a face of it) on the target node. I moved to frame 25, moved the torus elsewhere. I reprojected the sphere on the torus. Then I set up all key interpolations as linear. And during the animation from frame 0 to 15 the sphere is on its way to the torus, and from frame 15 to 25, the sphere follows the torus as if is was constrained (the face to face contact is maintained).

    I'm sorry for the long answer, I hope it gives you the information you want, I'm not comfortable with animations, so I hope this is somehow like a constraint in an animation, even if more easy to maintain with linear interpolation rather than other smooth or whatever interpolation..

    Thank you for taking the time to test it. I appreciate that. This is going to save me a lot of time

  • V3DigitimesV3Digitimes Posts: 3,150

    No problem I was happy to help. If you have time, you can have a look at the idea of Uthgard a few posts ago, if you're doing animations, it could help you keeping the contact during your animation after Face to Face created this contact. The idea is to parent the "projected object (the object sent to the target)" to a rigid follow node you would create (using the right click options when you select the target face) on the target face, very smart idea! Not sure I'm clear, it's super late in my country....

  • jardinejardine Posts: 1,202

    i'm so happy to have these scripts.  i'm sure i'll be back with questions after i start playing with them...

    an option to add these scripts to the 'V3Digitimes' menu several of your other products use would be really nice.  

    :)

    j

  • V3DigitimesV3Digitimes Posts: 3,150

    Hi jardine! when creating the product I wondered if such a menu would be interesting. Then I told to myself that with the updates Daz made with the "create custom action" function, it was not necessary. I'll think about that.

  • Those ThingsThose Things Posts: 1,132

    Ahhhh, you got me again with another brillaint utility I didn't know I needed.

  • V3DigitimesV3Digitimes Posts: 3,150

    Lol Those Things! Happy to see you needed it too :) I have a "patience-over and anger-on meter" (POAO meter) in my brain, and when some annoying actions in Daz Studio set the needle of this POAO meter to often in the red, then I wonder if scripts could solve the issue. In this case, I created this set of scripts after spending something like half a day trying to place 5 or 6 elements with pretty complicated and different geometries relatively to and in contact with each other on very specific places. Once the scripts were done, it took me someting like 2 minutes, plus 3 minutes because I wanted to adjust orientations! And the needle of the POAO was in the green! Thanks for your nice comment!!!

  • ThyranqThyranq Posts: 584

    Frustration breeds creation!

  • V3DigitimesV3Digitimes Posts: 3,150

    Totally agree!

  • HylasHylas Posts: 4,987

    This looks amazing!

  • V3DigitimesV3Digitimes Posts: 3,150

    Thank you!

  • kwanniekwannie Posts: 865

    I posted this in the Commons also but this is a better place to ask the question. I was thinking about parenting a sphere to the hip of a character then select faces on the sphere and on the back of the body of a guitar then parent the top of the neck of the guitar to the the chord hand (left hand in my case) so that hand will move the neck of the guitar up and down while the the body of the guitar pivits in place where it it targeted (face to faced) with the sphere. Would that  work in an animation?

  • UthgardUthgard Posts: 863
    edited March 2021
    No, it wouldn't, as the product doesn't act as a constrain. What I think you could do instead is to parent the guitar to the sphere and use it to rotate it up and down so that the neck of the guitar stays in contact with the hand or, alternatively, using Pose Master to position the hand properly in the pertinent keyframes. Also, maybe you could use an IK chain to link the character's hand to the guitar, but I have almost zero experience with them and can't help much beyond pointing out they exist. To summarize: this tool "just" helps you position things and, in the worst case scenario, could be used to adjust positions frame by frame, but it isn't made for animation. There are other tools in Studio to (hopefully) deal with that.
    Post edited by Uthgard on
  • V3DigitimesV3Digitimes Posts: 3,150
    edited March 2021

    Wow this is a super complicated question, it took me a while to think about that. I'm not sure it could work the way you propose it, because the distance Hand/Hip changes, whereas the length of the guitar is constant, so the guitar would slide in the hand of your figure to reach the sphere (even lift off). Because you don't have one constraint here, but two constraints (parenting to hand constraint to follow the hand, "centering or projecting"  on hip sphere is a second constraint).

    What I would see in this case would be : once you placed the faces you want where you want (maybe place the guitar first on the sphere using face to face, then the hand on the guitare by posing), determine what is the most appropriate virtual origin for your guitare (the ideal is a contact point, most likely a finger (figure) on a chord (guitar)). It seem better to take the face where the hand touches the guitare, rather than the face where the guitar touches the sphere. Create a virtual origin on this face (virtual origin via null or reference plane, depending on the axis you want to have the two last scripts if I remember well). If there are not enough faces in the guitar, create the virual origin on the finger, then parent only the guitar to the virtual origin (this is the contact point). Lets say the virtual origin is where the left hand touches the guitar. Parent the guitar to virtual origin if not already made by the scripts, and parent the virtual origin to the finger node touching the guitar. Then move your hand, the guitare will lift off from the sphere, and use the virtual origin (not the face to face actions or the guitare would leave the hand, but only the virtual origin rotation) to rotate your guitar so that it is placed "approximately" where you want on the sphere. I say approximately because if you move your hand up and down, then necessarily the distance hand/hipsphere changes. Since the length of the guitar does not change, it is impossible that it falls exactly at the same place after rotation. This is how it could "help" in an animation, mainly by a virtual origin making sure that, if you rotate your guitar, the finger you want will stay at the same location on the guitar "handle" (don't know the exact term). Face to face actions can initially help, at the start of the animation to place the guitar chord under a finger, then for the animation the way it could help is mainly by using a proper virtual origin to be sure the contact at least with the finger in maintained when you rotate your guitar so that the back of it gets closer to the sphere. Well, in brief, it will not magically solve your issue, but it can help using virtual origins in your case.

    I hope this helps. I'm sorry I'm not good enough at animation to give you more inputs, but this is how I would have done things...

    Post edited by V3Digitimes on
  • V3DigitimesV3Digitimes Posts: 3,150

    Just saw your post Uthgard. Indeed the only real "constraint" you can set and which is useable in this case it the parenting of the virtual origin to a finger.

  • UthgardUthgard Posts: 863

    V3Digitimes said:

    Just saw your post Uthgard. Indeed the only real "constraint" you can set and which is useable in this case it the parenting of the virtual origin to a finger.

    To be fair, virtual origins are extremely useful even beyond this possible use case. I remember how frustrating it was to place two crossed swords that didn't have their origin in the handle and this tool would have saved me a lot of time back then (setting the point of contact, pivoting around it to set the angle between the blades, placing another virtual origin in the pommel to move them to the ground... everything easier and with a better result).

  • V3DigitimesV3Digitimes Posts: 3,150

    Totally agree, virtual origins are super handy!!! Plus you can get rid off them whenever you want:) And recreate new ones in one click... I love them too, independently from Face to Face.

  • kwanniekwannie Posts: 865

    OK, I guess I am not understanding the whole virtual origin concept when it comes to animating. Let me just give a bit more info about what I have. I use MMD(Miku Miku Dance motions converted to BVH to use in DS. There are many motions of guitar players that can be brought into DS. The motion already has the character moving both arms and hands but of course the is no motion imported for the guitar itself. What my thinking was is that if somehow the the back of the body of the guitar (the big hourglass looking part) could be constrained somewhere around the character's belly but still allowed to pivit around the point where it is constraned. I could the just use a regular " parent" to the hand that is at the top of the neck of the guitar (the chord hand) and the applied BVH will move that hand around. So I guess if I could do in essence what a ball joint does, where the "ball" in the joint remains stationary but is allowed to move around any direction inside where it is held in place.

    Uthgard, if I could somehow import BVH motion to the guitar I could easily use IK on both arms to just get them to follow the guitar. That is actually how it is done inside of MMD. Maybe I could convert a guitar to a Non Standard character inside of 3DXchange and then apply the motion in there to convert to BVH.

    I was wondering also if maybe Face To Face And Virtual Origins could be used on a camera to constrain it to only one axis so it could be used as a dolly cam and move only along the X for example, across a range of frames.

  • V3DigitimesV3Digitimes Posts: 3,150

    If you want a camera to move only along the X axis, can't you simply lock it Y and Z translation? I'm not sure of the interest of Face to Face to constraint a camera along one axis. Locking other axes seems better but as I told you, I'm not comfortable with animations, I only know the basics of animation.

  • UthgardUthgard Posts: 863

    kwannie said:

    OK, I guess I am not understanding the whole virtual origin concept when it comes to animating. Let me just give a bit more info about what I have. I use MMD(Miku Miku Dance motions converted to BVH to use in DS. There are many motions of guitar players that can be brought into DS. The motion already has the character moving both arms and hands but of course the is no motion imported for the guitar itself. What my thinking was is that if somehow the the back of the body of the guitar (the big hourglass looking part) could be constrained somewhere around the character's belly but still allowed to pivit around the point where it is constraned. I could the just use a regular " parent" to the hand that is at the top of the neck of the guitar (the chord hand) and the applied BVH will move that hand around. So I guess if I could do in essence what a ball joint does, where the "ball" in the joint remains stationary but is allowed to move around any direction inside where it is held in place.

    Uthgard, if I could somehow import BVH motion to the guitar I could easily use IK on both arms to just get them to follow the guitar. That is actually how it is done inside of MMD. Maybe I could convert a guitar to a Non Standard character inside of 3DXchange and then apply the motion in there to convert to BVH.

    I was wondering also if maybe Face To Face And Virtual Origins could be used on a camera to constrain it to only one axis so it could be used as a dolly cam and move only along the X for example, across a range of frames.

    I see you are far more experienced than I am with animation, as I haven't even ventured into converting MMD to DAZ (and I have seen some very cool things done with MMD) so please take what I am about to say as some idle suggestion/thinking out loud. The virtual origin that this tool generates just acts, as its name implies, as another point of origin to the object, that, when selected, determines its axis; with that established, I am thinking you could set a virtual origin on the guitar at the position it would touch the right hand and parent it so that the motion of said hand makes it move according to the animation and then make a virtual origin on the part of the guitar where the left hand should go and make an IK chain to the left hand so that the motion of the guitar moves the left hand. I actually don't know whether that's possible or if it will set things on loop, but I am now unable to test it, so... Well, that's my best shot at a possible solution. Good luck.

  • kwanniekwannie Posts: 865

    Uthgard  V3Digitimes thanks for the feedbak again. Uthgard nothing that advanced about converting MMD, but you do need 3DXchange pipeline to get the BVH. There is actually a free script called VMD2FBX that converts the vmd to FBX that can be imported into 3DXchange. I agree about MMD, there is literally a motion for anything you need to animate and thousands of singing and dance animations. I wish some of the DAZ Venders would work on products that would easily bring MMD assets into DAZ.

    I think your last suggestion is close to what I was thinking about also, except I was wanting the base of the guitar constrained right in front of the belly of the character then the movement of the guitar is controled by the chord hand.

    So basically Face To Face And Virtual Origins is a position tool  to to set up a single frame. I do like the virtual origin idea though if I could use it in animation.

  • TugpsxTugpsx Posts: 738

    Anyone tested this with Octane?

  • V3DigitimesV3Digitimes Posts: 3,150

    @Tugpsx : Octane being a renderer, what you have to do is to create your face to face and virtual origins actions in Daz Studio before you use them for your octane render. For octane renders, you simply have to hide or delete your target planes or reference planes (if you used some). The other virtual origins are null nodes (no support mesh), not rendered by default.

    @kwannie : yes you can set up face to face frame by frame (each time face to face is applied for the current frame you are in), on their side the virtual origins can be keyframed, but at the moment they are created they are created at the places the selected faces are at this specific frame.

  • kwanniekwannie Posts: 865

    So, they are created local to the object they are created on right? If the virtual origin is created on frame 1 and the object is translated a distance along the X axis at frame 10, could I still rotate the object around the virtual origin I created in frame 1, and set a key frame in frame 10 ?

  • V3DigitimesV3Digitimes Posts: 3,150
    Yes but in order to do so you can have an additional step. In the normal use, you parent your object to your virtual origin that you can create on a face of it. But in your case you can do the contrary: parent the virtual original to your object (inverse your parent and child at frame 1 if the guitar is parented to the virtual origin). Then translate your guitare at frame 15 (the virtual origin will follow 'in place on the face' the at frame 15, and then tell DS that now the virtual origin is the parent of the guitar and rotation the virtual origin so that the guitar rotates around the initial face you selected. I cannot test right now but in the theory it should work. Furthermore if you have just à translation of the guitar you can keep the virtual origin as the parent and use the translation on the virtual origin to translate your guitar. This last choce depends if it is more comfortable for you to translate your guitar using its own origin or its virtual origin.
  • TugpsxTugpsx Posts: 738

    Thanks for the tool, will have to work with this to get a better understanding of how it works, I got this some time ago to assist with posing, however I am having issues getting it to operate on a node rather than the figure. I left it for a while hoping there would be an update to address the issue. Surprising enough there has not been many questions asked. This coud be a very useful tool if users knew how it works and some quirks were addressed.

    From the promo images it would appear that the character standing near a push button, I could simply add a target plane to the button or selects some faces from the button then select a few faces from the figures finger and run the script. The figure should remain in place and IK allow the hand to stretch out to connect with the target. Sadly this is not what happens. 

    Can this be accomplished with this product?

    Tested a simple scene where a figure is sitting on a cube and wanted to place his bended hand which was hovering over the cube to the cubes edge. I placed a target plane on the cubes edge, selected a few faces in the palm of his hand and executed the script. The figure was dragged  into the cube while the script attempted to move the faces together. I see there is an rotation option but that also rotates the figure not the hand node only. how do we address this issue?

     

  • V3DigitimesV3Digitimes Posts: 3,150
    edited July 2021

    I understand your problem. You are right, this is not a "pose" script, this actually simply translate and or rotate a full figure or a full prop, but does not control individual bones. You cannot accomplish what you ask with this product. I'm sorry you misunderstood the behavior of face to face. It would rather allow an object to go against another object, or against another figure, or in the hand or on the face of a figure, or a figure face to go against another figure or prop but all this without changing the pose of the different bones. For the standing caracter pushing a button, if you compare the first and second image, you will see that the pose is not changed, the character is simply translated so that with its current pose, the finger goes right to the button (and then that you can rotate the figure via the virtual origin so that the finger stays on the button).

    What you ask (face to face controlled IK) will be possible with my next product, on Genesis 3, 8 and 8.1, allowing IK on arms/hands/fingers on a face to face principle (not released yet, I'll create a dedicated thread in the forum as soon as this new product will be about to be released).

    I'm sorry I tried to make the description and images as clear as possible and once again I clearly confirm to you that in this "face to face and virtual origin", you cannot act on a bone, you can only on a full figure or a prop.

    Post edited by V3Digitimes on
  • TugpsxTugpsx Posts: 738

    Thanks for update. It would appear that you already have a product in mind to address the request. Will look forward to its release. for now i'm updating the drop to top script to meet the needs.

  • V3DigitimesV3Digitimes Posts: 3,150

    Thanks for the understanding. It's been several weeks that the product you're waiting for (with IK for arms) is 'almost finished', but I needed more time for complete optimization, tests and to have a clear documentation (it is very easy to use, but because there are tons of possible things you can do with it, it required to be documented). It should not be long now (I hope it is a matter of weeks between now and a release - I keep my fingers crossed).

Sign In or Register to comment.