Noesis API / source (what certain class functions do)
Posted: Wed Oct 26, 2022 11:56 pm
Hi,
I apologize if this has been posted elsewhere, I've had no luck searching. Are the Noesis functions (that are exposed to plugins) documented anywhere? (I'm currently looking for the definition of noesis.mat43TransformPoint but I suspect eventually I'll need others.)
My current project is to try to transform a cloth mesh in Atelier Ryza (the so-called 4D mesh) into 3D coordinates in a manner identical to Joschuka's amazing fmt_g1m / Project G1M, so that I can import them using the 3dmigoto Blender plugin. (I'm aware I can export with Noesis, but this isn't useful for re-injection back into the game as far as I know because the repack tools are designed to work with the 3dmigoto format files.)
When I saw this in Joschuka's fmt_g1m plugin:
I assumed that meant [x,y,z] dot [[3x3 rotation matrix]] = new [x,y,z] that is rotated about the origin from the old [x,y,z].
But then I see this (unrelated) line:
I interpreted that to [0,0,0] dot [[3x3 rotation matrix]], but that will always be [0,0,0], no? If it will always be the origin, why call the function at all? I was thinking maybe it adds the position row (4th row), but then again, what's actually changing??
I've tried looking on Noesis' website (lol), the online manual, plugins/python/__NPExample.txt, and have found nothing. I'm very confused, and I would appreciate help. Thanks!
EDIT: I figured it out. noesis.mat43TransformPoint(self, other) is essentially ((self[3x3] dot other) + self[3]). Which, now that I have read more and (roughly) understand the difference between rotation and transformation, makes sense. Thanks!
I apologize if this has been posted elsewhere, I've had no luck searching. Are the Noesis functions (that are exposed to plugins) documented anywhere? (I'm currently looking for the definition of noesis.mat43TransformPoint but I suspect eventually I'll need others.)
My current project is to try to transform a cloth mesh in Atelier Ryza (the so-called 4D mesh) into 3D coordinates in a manner identical to Joschuka's amazing fmt_g1m / Project G1M, so that I can import them using the 3dmigoto Blender plugin. (I'm aware I can export with Noesis, but this isn't useful for re-injection back into the game as far as I know because the repack tools are designed to work with the 3dmigoto format files.)
When I saw this in Joschuka's fmt_g1m plugin:
Code: Select all
Line 2017: p = boneMatrixTransform.transformPoint(p)But then I see this (unrelated) line:
Code: Select all
Line 2029: updatedPosition = boneMatrixUpdateTransform.transformPoint(NoeVec3())I've tried looking on Noesis' website (lol), the online manual, plugins/python/__NPExample.txt, and have found nothing. I'm very confused, and I would appreciate help. Thanks!
EDIT: I figured it out. noesis.mat43TransformPoint(self, other) is essentially ((self[3x3] dot other) + self[3]). Which, now that I have read more and (roughly) understand the difference between rotation and transformation, makes sense. Thanks!