lizhongqi.allen
Nov. 30, 2024 09:18:53
I did a little test:Some matrix calculation,make a world xform add to a joint
The process is painful, my calculation is a little silly,forgive me~
main qustion is:
1.Extract attrib from skel :'xform' / 'rest xform',
can not write to subnet(subnet can not use the value direct)
must add a TransformObject and write in
if some other custom attrib like:Matrix\vector\Float?
Is there a quick way?
2.Debug is a painful thing,My 'matrix' is not particularly good.
(Writing restlocal as local took me a lot of time to find ...XD)
Is there a better process to speed up to find 'bugs'?
3.May use 'import module' in the future?
4.Need more masterclass...more 'Medium sized blocks' func/method to accelerate
Love APEX,I can see the unlimited possibilities,I just need more practice and 'Guides' XD.
lizhongqi.allen
Dec. 2, 2024 21:50:23
some more question:
autorigcomponent -> transformdriver:
we use tag-pattern-func in the driven parm, component will add a joint named with this tag,e.g:'%tag(Pelvis)',and parent this new joint ,why not parent the true taget joint in orig skel? What are the benefits?
lizhongqi.allen
Dec. 3, 2024 20:56:12
Recently, I’ve been looking into some built-in component graphs and wondering if my current understanding is roughly correct.
I hope to establish a relatively clear approach to learning how to build graph workflows.
While the process can be optimized and modified, having a baseline to start with is essential.
When the graph becomes too complex, it’s easy to lose focus or overlook critical operations.
Its flexibility makes it feel like some level of structure or constraint is needed to help with understanding and getting started.
It's great to get some advice about apexgraph work flow ,THX~~
edward
Dec. 5, 2024 17:10:32
Some of this is very much in progress as we indeed are building higher-level components for the next major release.
- I'm not sure about your node named "%tag()" issue. I suspect it might due to using %tag() in a place that only expects a name, not a pattern.
- When the graph becomes too complex, APEX Script is the way we envision things going. This allows one to scale up to production rigs.
There are starting to be some tutorials in the mean that you can check out if you haven't already. Go to
https://www.sidefx.com/tutorials/ [
www.sidefx.com] and type in "apex" as the search term. For example, someone made an APEX Script tutorial:
-
https://www.sidefx.com/tutorials/effective-apex-scripting/ [
www.sidefx.com]
lizhongqi.allen
Dec. 5, 2024 21:09:05
edward
Some of this is very much in progress as we indeed are building higher-level components for the next major release.
- I'm not sure about your node named "%tag()" issue. I suspect it might due to using %tag() in a place that only expects a name, not a pattern.
- When the graph becomes too complex, APEX Script is the way we envision things going. This allows one to scale up to production rigs.
There are starting to be some tutorials in the mean that you can check out if you haven't already. Go to https://www.sidefx.com/tutorials/ [www.sidefx.com] and type in "apex" as the search term. For example, someone made an APEX Script tutorial:
- https://www.sidefx.com/tutorials/effective-apex-scripting/ [www.sidefx.com]
Thank you for your reply. I'm looking forward to the next version. I've gone through many tutorials, and although it's still challenging, things are gradually improving. I encountered some issues while creating rigs with build-in components, so I had to dive into the nodes to check and understand the logic within. It's a painful yet joyful experience.~XD,THX~
lizhongqi.allen
Dec. 13, 2024 05:33:53
I have made a simple rigging test,It runs fine.But when I am going to add nodes and assign properties, errors will be reported. May I ask if it is irregular for me to write this way
edward
Dec. 13, 2024 09:21:50
You're running into some known bugs because "addNode()" is a special function that has an override that maps it to the regular python apex.graph API. See
https://www.sidefx.com/docs/houdini/character/kinefx/apexscriptfunctions.html#graph-functions [
www.sidefx.com] . So for now, please use function-based syntax instead when you need to connect more than one extra port like:
graph, aimN = apex.graph.AddNode(graph, "aim_object", "TransformObject", parms={'restlocal':aimN_rest}, properties={'shape':'blob'})
lizhongqi.allen
Dec. 13, 2024 10:41:07
edward
You're running into some known bugs because "addNode()" is a special function that has an override that maps it to the regular python apex.graph API. See https://www.sidefx.com/docs/houdini/character/kinefx/apexscriptfunctions.html#graph-functions [www.sidefx.com] . So for now, please use function-based syntax instead when you need to connect more than one extra port like:
graph, aimN = apex.graph.AddNode(graph, "aim_object", "TransformObject", parms={'restlocal':aimN_rest}, properties={'shape':'blob'})
Thanks Edward, this really helped me!!~~
Write it this way, it doesn't bother me anymore. speed up and play! Thanks again~