Apex 008 Abstract Controls
12:26
3 ай бұрын
APEX 007 Deforming Geometry
7:34
4 ай бұрын
APEX 004 FK Controls
9:34
4 ай бұрын
APEX 003 Packed Geometry Format
14:21
KineFX - BlendShapes And Geometry
12:32
APEX 000 A First Look At APEX
21:04
Game Prototype 007 ECS Camera
5:30
Game Prototype 006 ECS Input
14:58
Game Prototype 004 Prototype Rig
14:07
Пікірлер
@vojislavpavkovs9124
@vojislavpavkovs9124 2 күн бұрын
This is so good! it gives a lot of clarity not only for kineFX but in rigging in general. Really appreciate it!
@nicolaastanghe475
@nicolaastanghe475 21 күн бұрын
This doesn`t seem to work on linux. i wonder why.
@whdinasor
@whdinasor Ай бұрын
Thank you!!!
@abhishek.vermaaa
@abhishek.vermaaa Ай бұрын
I recently bought your Kinefx Humanoid course from Udemy and that was the purchase of my life, your content is amazing and on the point!
@jzbrothersurgut
@jzbrothersurgut Ай бұрын
A wonderful lesson can I ask you how to implement the work of capturing a curve in APEX, like there are a lot of bones around the mouth, but in order not to control each bone from the sets, I make a nurbs curve and use RIGVOP to control the entire curve around the mouth, but I have only a few control points how to transfer control to APEX I do not know or tried to do something similar with wiredeform, but I also don't know how to make friends with APEX
@taohong2332
@taohong2332 Ай бұрын
@playboy8303
@playboy8303 Ай бұрын
man please explain in simple way.......
@DevGods
@DevGods 2 ай бұрын
What are the reasons you continue with Unity over Godot or Unreal Engine?
@brundlethwaite
@brundlethwaite 2 ай бұрын
Ideally this will be running on the Frimble engine but I do not know If it will ever get that far. This is a prototype so it may never be released other considerations are. - My interest here is animation and Rigging not programming or releasing a game Unity is the easiest to deal with at the moment. - Unity is easy to use, I know it and it is the most fun to work with at the moment. - As this is a prototype Unity is free. - Unreal would be far more expensive than Unity (even if they had implemented that stupid pricing scheme). - If I release the game It would be for consoles Godot has no support and would end up being more expensive than Unity. - Godot does not have Houdini Engine support. - Flax does not support graphics tablets. - Flax does not have native Houdini engine support. - Cryengine does not have proper UI and requires defunct commercial software. - Cryengine does not have native Houdini engine support. - Programming in Unreal is horrible and is it weakest area. - For game logic I do not want to use blueprints as they and not efficient and have worse performance that C++. - I do not want to use C++ I would prefer to work with C, Odin or C#. - Animation is Unreal's weakest area Unity is far easier to work with here. - Animation import and Export it Unreal's weakest area. - Unreal's coordinate... - Unreal's syntax..... ... ... This is a little brief, I start to give some more reasons but I do not want this to become a long list and I do not have the time to go into even the basic reasons as each of them require context and explanation to make sense.
@DevGods
@DevGods 2 ай бұрын
@@brundlethwaite no way! Unreals animation is weaker than unity’s? I spent sometime with Unity and hated C++ until I started using it and now I look at c# as a jumbled mess lol. I do like Unity’s DOTS I almost switch back to it because of that alone.
@brundlethwaite
@brundlethwaite Ай бұрын
"no way! Unreals animation is weaker than unity’s?" What relevance does this have? I did not make a feature comparison? This is not a reason or advice on choosing. And it is not relevant to anybody by me, for this specific project. " I spent sometime with Unity and hated C++ until I started using it and now I look at c# as a jumbled mess lol." What relevance does this have? This is not a programming language comparison? These are really bullet points as they applies to this specific project. I am not going to spend days (or for this topic months and years) of my life trying to explain the specifics. You asked me why I am working with Unity you did not ask me why someone else should.
@DevGods
@DevGods Ай бұрын
@@brundlethwaite From your first reply "- Animation is Unreal's weakest area Unity is far easier to work with here." I was replying to this. Maybe you worded this wrong? From your first reply "- I do not want to use C++ I would prefer to work with C, Odin or C#. " I was replying to this point. I used to prefer c# now I look at it different after using C++ My question initially was to see whats stopping you from converting to UE. I presented some slight counter arguments to push you towards it. Since your content + Unreal would be beneficial to me. No disrespect to you or unity was intended
@brundlethwaite
@brundlethwaite Ай бұрын
"My question initially was to see whats stopping you from converting to UE." You did not state that. You said "What are the reasons you continue with Unity over Godot or Unreal Engine?" which is a completely different question. I am not converting from anything I currently have projects in Unreal, Unigen, Flax, Godot, Cocos2D and Stride and Cryengine. Not all of the projects are fully active but I none are discarded. So if you had asked the first me about converting I would have said that I am using Unreal different projects instead of why I am using Unity in this one. You also chose to ignore the final statement where I said that each of the points was highly contextual. As well as the first statement.
@tekanobob
@tekanobob 2 ай бұрын
superb. bonecapture regions were confusing
@Terry_Williams
@Terry_Williams 2 ай бұрын
Excellent video, thanks.
@DevGods
@DevGods 2 ай бұрын
Thanks for this. This helped me get to the bottom of my issue!
@talesofthedeparted
@talesofthedeparted 2 ай бұрын
Good to hear. The group and point number issues took me a while to figure out and they can be tricky.
@DevGods
@DevGods 2 ай бұрын
I'm trying to follow this in H20 using a mesh that has existing blendshapes. I have copies of that mesh that have different body shapes but when I view my blend shape the mesh explodes
@nictanghe98
@nictanghe98 3 ай бұрын
Anny way to do this in a way that the Ik chains don`t go over set limits ?
@brundlethwaite
@brundlethwaite 3 ай бұрын
This is limiting the controls not the joints. There is no built in limit to control IK chains (you can make one manually in vex or VOPS). You can force IK chins them to return to an original pose using rest transforms. Using rest transforms will stop you joints from going beyond a straight line as they will always return to the default. I do not think this applies to the IKchains node. As that uses the 2 bone Ik VOP. But if you use the IK Solver VOP you have the rest angles mode.
@nictanghe98
@nictanghe98 2 ай бұрын
@@brundlethwaite I`ve switched to apex. I think its to much work to build a costum one as a generalist. so i`ll skip over it for now. THX for the reply !
@GameDevNerd
@GameDevNerd 3 ай бұрын
What was the goal? To move the character with a control stick relative to the direction you're currently facing? Like you push up on the stick and he walks forward even if you're looking back at the camera?
@brundlethwaite
@brundlethwaite 3 ай бұрын
The character needs to move relative to the camera. So the controller is essentially moving the character in screen space. But the character is not being driven by the controller but is using root motion and is purely driven by the animation. Essentially this is a animation prototype 1st and if I get a good results from that I may turn it into controller prototype. There is also some tool creation that is incidental to the prototypes/
@GameDevNerd
@GameDevNerd 3 ай бұрын
@@brundlethwaite ah, I gotcha. Root motion can be tricky but is well worth it in the long run.
@nicolaastanghe475
@nicolaastanghe475 3 ай бұрын
autorig throws Error Invalid source /obj/APEX_2/autorigcomponent1/error_if_no_character_input. (Error: Unable to cook the test input.). in 20.0.649 Error Invalid source /obj/APEX_2/autorigcomponent1/bypass_add_rig. (Error: Unable to cook the test input.). Warning Input must be of type character. Current type: Apex Graph in 20.0.625
@nicolaastanghe475
@nicolaastanghe475 3 ай бұрын
Dive into the subnet and change the port name on the input or output node. Rename ports by MMB clicking the port name.
@rebeccaneuer3408
@rebeccaneuer3408 3 ай бұрын
can you show us how to do an ik/fk switch ?:)
@Electric838
@Electric838 3 ай бұрын
thank you for this tutorial. I havn't done character rigging in houdini before and i think this is really helpful for me.
@jzbrothersurgut
@jzbrothersurgut 3 ай бұрын
Please explain how to set up LookAT for eye control
@fastlearner292
@fastlearner292 4 ай бұрын
Niiice
@Geometrynode
@Geometrynode 4 ай бұрын
Will you please consider doing a facial rigging tutorial for houdini? Besides blendshapes, what is a good method for facial rigging with actual deformers? Can you use this method in this video for a curve based facial rig?
@brundlethwaite
@brundlethwaite 4 ай бұрын
There are a series of videos for the prototype for a bone based rigging system on my Patreon. I am working on a full course but editing and recording takes a long time and I have had a lot of interruptions so it is taking a lot longer than I want. Personally I dislike blendshapes as bone based rigs give much better interpolation so will be a bone-based course. Unfortunately it will have to be a paid course. I cannot justify placing it on KZfaq for free as it I too much work to do for no compensation when I have a very limited income.
@dilosilv611
@dilosilv611 4 ай бұрын
I don’t understand it. Laying down a lot of nodes just to add one node?
@brundlethwaite
@brundlethwaite 4 ай бұрын
When you want to extend a rig using the auto-rigging nodes you will need to create scripts like this this is the starting point for doing that.
@fastlearner292
@fastlearner292 4 ай бұрын
I haven't completed the video yet, but I'm genuinely impressed by your ability to explain even the most smallest details with clarity. Very surprising to see that your videos get so little views, you totally deserve more recognition
@jzbrothersurgut
@jzbrothersurgut 4 ай бұрын
please do the simplest lesson on BlendShape in Apex, from the very beginning and not already on the finished scene, just take a ball and change its geometry by moving the control point, what is so difficult?
@headandshoulders6432
@headandshoulders6432 4 ай бұрын
Great tutorial. But what does that MONOCamera script include? How to access the camera transform?
@brundlethwaite
@brundlethwaite 4 ай бұрын
This is not really a tutorial it is more documentation of me screwing around. I setup the MONOcamera in this video: kzfaq.info/get/bejne/oph_f7OYubmUpIk.html Since the camera cannot be accessed by ECS and is a monobehaviour we need to create a hook with a monobehaviour script attached to the camera. This is the script: using System.Collections; using System.Collections.Generic; using UnityEngine; public class MONOCamera : MonoBehaviour { public static UnityEngine.Camera Camera; public void Awake() { Camera = GetComponent<Camera>(); } }
@peterhamlin1296
@peterhamlin1296 5 ай бұрын
great stuff! why are yoy changeging the default transform option to "into this node" in object merge node? I never fully understood that?
@brundlethwaite
@brundlethwaite 4 ай бұрын
That is really just habit and does not have that much effect here. The "Into this node" option allows you to use the obj/ level transforms into the sop level. If you have an object containing a mesh and you transform it at the object level and then try to bring it into a separate sop you will not have the obj level transforms affecting the geometry so you will only get the local position not the global position.
@Jayaims007
@Jayaims007 5 ай бұрын
Thanks for your guidance. How might I deal with the flipping of matrix? The following flipEuler method is the closest I got to what I would like from the net. float round(float target; float tens) { target *= tens; target += 0.5; target = floor(target); target /= tens; return target; } float round(float target; int places) { float tens = pow(10.0f, places); return round(target, tens); } vector round(vector target; int places) { float x = round(target.x, places); float y = round(target.y, places); float z = round(target.z, places); return set(x, y, z); } float wrapAngle(float angle) { angle = (angle + 180) % 360 - 180; return angle; } vector wrapAngles(vector v) { v.x = wrapAngle(v.x); v.y = wrapAngle(v.y); v.z = wrapAngle(v.z); return v; } int eulerAxisIndex(string axis) { if (axis == "X") return 0; if (axis == "Y") return 1; if (axis == "Z") return 2; return -1; } vector flipEuler(vector euler; string rotationOrder) { vector ret = radians(euler); string inner_axis = rotationOrder[0]; string outer_axis = rotationOrder[2]; string middle_axis = rotationOrder[1]; ret[eulerAxisIndex(inner_axis)] += M_PI; ret[eulerAxisIndex(outer_axis)] += M_PI; ret[eulerAxisIndex(middle_axis)] *= -1; ret[eulerAxisIndex(middle_axis)] += M_PI; return degrees(ret); } vector fixEuler(vector euler; vector orientation; string rotationOrder) { vector fixedEuler = set(euler.x, euler.y, euler.z); float dotp = dot(radians(orientation), normalize(radians(fixedEuler))); if (dotp < 0) { fixedEuler = flipEuler(fixedEuler, rotationOrder); } return fixedEuler; } matrix localTransform = point(0, "localtransform", i@ptnum); matrix refLocalTransform = point(0, "rest_localtransform", i@ptnum); matrix3 curRotationMatrix = polardecomp(matrix3(localTransform)); matrix3 refRotationMatrix = polardecomp(matrix3(refLocalTransform)); matrix3 offsetMatrix = curRotationMatrix * invert(refRotationMatrix); vector offsetEuler = cracktransform(0, 0, 1, { 0, 0, 0 }, offsetMatrix); vector orientation = cracktransform(0, 0, 1, { 0, 0, 0 }, refRotationMatrix); vector fixedEuler = fixEuler(offsetEuler, orientation, "XYZ"); fixedEuler = wrapAngles(fixedEuler); fixedEuler = round(fixedEuler, 1); if (fixedEuler.x == -180) fixedEuler.x = 0; if (fixedEuler.y == -180) fixedEuler.y = 0; if (fixedEuler.z == -180) fixedEuler.z = 0; v@rotation = fixedEuler;
@talesofthedeparted
@talesofthedeparted 5 ай бұрын
What solvers are you using that are flipping? I make my transforms manually so that I know they are consistent. So I avoid flipping by always having matrices that do not flip (with the exception of quaternion rotation based spines). This is something that is very difficult to explain without knowing what your scene is doing. But I will try to make a video explaining my approach a cannot give an ETA though.
@Jayaims007
@Jayaims007 5 ай бұрын
@@talesofthedeparted Thanks for the reply. I will be looking forward to your video explain your approach. I have been trying to figure this out ever since your deformation videos. I don't thing I am using any solver. Here is a link to my hip file: drive.google.com/file/d/1Hdvh2Vmc3VXx-fSRN4kuU90WfaLgO3Cx/view?usp=drive_link.
@jzbrothersurgut
@jzbrothersurgut 5 ай бұрын
how to implement Eye Tracking of a target using APEX, please show?
@namnam6074
@namnam6074 5 ай бұрын
Amazing, thank you so much! The process is quite confusing and you are the only one covering it in detail, thank you for all your KineFX videos! Do you perhaps have experience in linking the blenshapes to live mocap using the MocapStream node and Live Link?
@brundlethwaite
@brundlethwaite 5 ай бұрын
Unfortunately no. That is beyond the current scope of my personal projects and I do not have access the equipment needed. I have done some basic setups for facial animation using Computer Vision Libraries and have a facial setup for that but that does not use the MocapSteam node. I do want to get a mocap suit eventially but I cannot afford it at present. For my rigs I am currently using pose space blendshapes driven by expressions for my automatic deformations.
@namnam6074
@namnam6074 5 ай бұрын
I see, well thank you anyhow! Your videos are immensely helpful for all things KineFx. They helped me get the blendshapes working I just need to figure out how to the load some sort of facial anim to drive them.@@brundlethwaite
@jzbrothersurgut
@jzbrothersurgut 5 ай бұрын
Please show us with simple examples how to set up LOOK Att eye tracking for the controller and a simple blendshape in APEX, not on ready-made rigs, but from beginning to end with simple examples, thank you in advance!
@miroslavpivonka5558
@miroslavpivonka5558 5 ай бұрын
Thank you, awesome APEX videos. I look forward to next episode Will you create video, how to make "look at" for eyes?
@getschwifty864
@getschwifty864 5 ай бұрын
These videos are so informative and helpful! Thanks so much!
@fastlearner292
@fastlearner292 5 ай бұрын
Very good and succinct explanations. Looking forward to more APEX tutorials. This thing feels so damn hard
@psycodestudio
@psycodestudio 5 ай бұрын
Counting on this project’s progress. 😅
@3sisters3000
@3sisters3000 5 ай бұрын
Hi, great tutorial! Could find it in search since it doesn't mention Houdini, but someone just recommended. I am still trying to figure out two key things in APEX. 1 - How to make a simple skeleton blend like in KineFX, for animators? Can we actually have a slider in parameters, or it could be only connected to a control, like the IK/FK switch on the chicken in 3D space? 2 - How can we bring an existing animation to APEX? We have motion capture, perfectly retargeted to a skeleton (with KineFX). There is a demo file from Esther of KineFX/APEX that is nice, but it's actually retargeting to the controls, and there are some jumps and flips etc. If we have the animation on the exact same skeleton, can we bring it to APEX (I think devs mentioned some rig inversion in a chat, but couldn't find any info about it), and animate with a rig on top of mocap? Do you have any idea on these? Thanks!
@brundlethwaite
@brundlethwaite 5 ай бұрын
These are the same places where I am having the most frustration. I will get to blends. But form what I have got working sliders are not great. At the moment it is easiest to work with on screen controls (which is not something that I like as I favor slider interfaces). Unfortunately there is nothing listed in the documentation but this is something that I am looking for solutions to. As for mocap I would personally stick with KineFX as it so flexible and unless you have extreme slowdown you will be loosing a ton of flexibility. The APEX setup gives you a lot more performance but the mocap approach is far more limited and is not dynamic. I have done some testing but am not yet satisfied with anything. So I am working on these and still have plenty of things to try but there are no real options that I am satisfied with yet.
@danielshamota
@danielshamota 5 ай бұрын
@@brundlethwaite Thanks, yeah, just willing to use all the Animate state cool things, like constraints and locators, to clean up and adjust mocap data, since constraints in KineFX are pain.. And I feel like it's there just need to figure out how to set it up properly. Generally I've extracted controls (actually the whole skeleton) and retargeted with KineFX, and brought it back with ControlUpdateParms, now need to figure how make it work with all the IKs, and animate on top of it
@duncanbuckley7020
@duncanbuckley7020 5 ай бұрын
Always a pleasure to see a video on this stuff. Thanks for your hard work it’s appreciated
@boyanpopyanev911
@boyanpopyanev911 5 ай бұрын
Awesome stuff. In these series will you be covering how to setup blendshapes in apex?
@brundlethwaite
@brundlethwaite 5 ай бұрын
I will try and I do intent to but It depends on time. I still need to do a lot of videos on FEM for example but I have not got round to them. I also want to do hair and cloth with kineFX rigs for game engines as well as secondary motion but those are a long way in future at the moment.
@boyanpopyanev911
@boyanpopyanev911 5 ай бұрын
Awesome looking forward to it, especially the blendshapes@@brundlethwaite
@krylonpoet
@krylonpoet 6 ай бұрын
This is great! Always so articulate. I like how you have started out with an apex only network, without a skeleton or skin. Lots of good tidbits in there too!
@aaaaaaaaaa_aaa_aaaaaaaaaaa
@aaaaaaaaaa_aaa_aaaaaaaaaaa 6 ай бұрын
Thanks for the video. I didn't get the purpose of changing point positions when moving nodes in APEX Graph...
@YomuKaigen
@YomuKaigen 5 ай бұрын
From my limited understanding, it's basically a visual representation of how the apex graph is stored as geometry data. Each node in the APEX graph is represented as a point with attributes. I too found it rather bizarre at first but I think SideFX simply chose to store graph the data as geometry and the visualization is more of a side effect than a purpose. There's probably a better reasoning for storing the data as geometry instead of something like a text document.
@gregorybennings8718
@gregorybennings8718 6 ай бұрын
Looking forward to more videos.
@playboy8303
@playboy8303 6 ай бұрын
Awesome brother ! gonna use this approach until APEX is Production Ready
@Fafebobo
@Fafebobo 6 ай бұрын
Than you very much for this video!
@krylonpoet
@krylonpoet 6 ай бұрын
I’m happy you are continuing with this series despite unity’s recent debacle. I love you videos, you are very articulate. Do you have any plans to do some videos on Houdini 20 and rigging in APEX?
@brundlethwaite
@brundlethwaite 6 ай бұрын
Yes I am going to do some APEX videos.
@krylonpoet
@krylonpoet 6 ай бұрын
Looking forward to it
@playboy8303
@playboy8303 6 ай бұрын
Awesome video man, but too complicated lol
@3sisters3000
@3sisters3000 7 ай бұрын
Do you know how can I embed a texture to exported character? The ROP FBX Character output requires and fbx_material_name attribute, but where do I need to connect my textures? I've tried assigning a principled shader, also converting it afterwards from shopmaterial_path to fbx_material_name, uvquickshade node, but no success. Embed media on the ROP is on.
@brundlethwaite
@brundlethwaite 7 ай бұрын
You can take a look at this video: kzfaq.info/get/bejne/o7KEdrZ7ya6rn2Q.html FBX is not good at transferring materials so this is very limited. It was orriginally designed to get animation out of motion builder and into PowerAnimator (replaced by Maya) and Softimage 3D (replaced by XSI). It is mostly a motion capture format and was not supposed to be updated. Autodesk have updated it a little but that is minimal. The materials have never been updated as far as I know and materials now are very different from 1996.
@3sisters3000
@3sisters3000 6 ай бұрын
@@brundlethwaite Thank you! Gotta check it out now. We just want an albedo texture in viewport while working with a character in KineFX. Characters exported from other DCCs are coming with textures, so that's what we are looking for
@darkarps
@darkarps 7 ай бұрын
bang on, so helpful... thank you very much sir
@AnimGraphLab
@AnimGraphLab 7 ай бұрын
You can also Pack and Unpack geometry (Box in this case) using Capture Packed Geo node by enabling "Pack input" and "Unpack output". It also provides options for transferring data 🙂 Basically the same thing but from a single node.
@soldarko88
@soldarko88 7 ай бұрын
Curious - how do you edit weights from a pre-existing rig? ie. mixamo or Unreal
@Bbentley81
@Bbentley81 8 ай бұрын
Greetings, Question. How are you exporting the FBX. When I use the rop character export FBX the resultant file doesn't have any of the attributes I've set for on the primitives for the material assignments. Are you exporting from obj level? please advise, and thank you for these videos they are very helpful!
@brundlethwaite
@brundlethwaite 8 ай бұрын
The export is in this video kzfaq.info/get/bejne/hNtjd7R81d2YZqs.html. I have go the export working with both Unreal and Unity but I only test unity. The final packaging of the export is here kzfaq.info/get/bejne/o8ude8t2nJfbZ3U.html. This should not really help much though as it is primarily packaging and not functionality. FBX is not great for materials and getting the correct attributes exported can be frustrating. For example if the groups and names are not just right pose space transforms will break. If you have more than on mesh that you are exporting with the model each mesh will need to have the correct matching values for the name of the mesh and the materials and there should only be one material per mesh. Generally I do not really use the material export in FBX as I do not need it and I am going to make the the materials in the game engine but I have had to deal with it in the past. I will try and do a more dedicated set of videos on export and packaging but that is time dependent.
@Bbentley81
@Bbentley81 8 ай бұрын
@@brundlethwaite thank you for this. I figured out what I was doing incorrectly. I was using the wrong name for the fbx_material_name attribute. I was calling it fbx_material_path. 🤦🏾‍♂️
@theodoredaley2229
@theodoredaley2229 8 ай бұрын
Why don't you have 100,000 views on this? It is insane how vital this information is but nowhere to be found and also this clearly outlined. Truly thank you and hope to see more because I wish the way you explain these concepts, should have your own How to Learn Houdini course!!