Deledrius wrote:Aww, that's a shame. They've been on the fork since November, but I guess you didn't see them. Hope it helps anyway.
I didn't know this fork existed, I can't find any mention of it on Gitlab. Oh well, it's alright.
Deledrius wrote:If you could elaborate on this, I wonder if it might help a problem we've found with some colliders when libHSPlasma exports for PotS. A lot of things seem to show up at the origin when they shouldn't. Is this related? How can you tell which space to use in MOUL and PotS?
Sure.
PotS is fairly simple, collisions are in local space only if you give the object a non-zero mass (and optionally make it kPinned so it doesn't fall). As far as I can tell, there are no exceptions in Cyan's PRPs since they are all setup the way I
described a while ago (other configurations might have unexpected results, personally I always kept to Cyan's way of doing things and had no issue).
MOULa is more complex. It appears there isn't a straightforward way to tell if it's local or world space. However, the following appears to work fairly well so far (at least for importing):
- The physical's position and rotation attributes (<Transform> in PRC) should be ignored for importing.
- Collisions are world space only if all the following conditions are met:
- mass is zero
- no kPinned or kPhysAnim flag
- NOT a member of the Detector group
- NOT a member of the LOSOnly group
- bounds MUST be convex hull
- Additionally, the Offset property of box bounds must be ignored.
I tested it with MOUL's Eder Tsogal and Gahreesen's exterior, and it works correctly despite the animations, negative collision scaling, etc.
Never had issues in PotS, just checking the mass is enough.
Myst V appears to import correctly if you assume collisions are always in local space.
I will have to do more testing for all game types though.
The Well's exterior collision mesh in Gahreesen is the only physical at the wrong location so far - there seem to be some subworld shenanigans at work here, but it's an edge case and I've never seen a similar issue in other PRPs, so I'm not going to bother with it.
And here is my current version of the physics importer, which sums it all up.
(You'll notice it also creates a Korman collision modifier
)
Like I said, this is only for importing. Exporting with Korman may allow people to run into other configurations for which the above may not work.