llTargetOmega causes mesh to become solid on shift-copy or rez
tracked
Curious Thespian
This peculiar issue came about when I linked an extractor fan to mesh wall, the wall has an opening. Initially all seems well, however if you shift-copy the object the opening is now solid. If you right click, without even going in to edit it becomes open again.
This behaviour also shows if you take the object in to the inventory and re-rez, plus I suspect it may explain why the build became mysteriously solid after the weekly rolling-restarts, again correct by merely right clicking.
This issue occurs on both the latest release viewer and Firestorm beta viewer.
The reason I suspect it's a server side issue is I believe that collisions occur server-side and, of course, llTargetOmega for a child prim
should
be a client-side viewer effect only.I have tested this with...
Mesh>rotating mesh child object <<< occurs
Mesh>rotating prim child object <<< occurs
Cut prim>rotating prim child object <<< does not occur
There is a temporary fix which I can apply to
this
build but not to others.If you perform a simple analyse, with default options, the behaviour goes away. Unfortunately I cannot do this with a significant amount of my other work as analyse produces an object that is unusable in its intended form and, of course, analyse is "optional"
In all tests I have used an LOD3 mesh with a matching PHYS model.
The code in the script was simply:
default
{
state_entry()
{
llTargetOmega(llRot2Up(llGetLocalRot()), PI, 4.0);
}
}
Incidentally, I also tested by putting in a 10 second timer, when the time event is triggered it fires the llTargetOmega and immediately the building becomes solid.
And for one final test, I reversed this, I started with the child prim rotating and after 10 seconds stopped it and it was solid whilst rotating and walkable the instant it stopped:
default
{
state_entry()
{
llTargetOmega(llRot2Up(llGetLocalRot()), PI, 4.0);
llSetTimerEvent(10.0);
}
timer()
{
llTargetOmega(<0.0,0.0,1.0>, 0.0, 0.0);
llSetTimerEvent(0.0);
}
}
Log In
Maestro Linden
tracked
Maestro Linden
Thanks for the report, Curious Thespian.
This looks like a variant of an issue previously filed in our Jira issue tracker [BUG-225742] "Server side physics shape reverts to "Convex Hull" for un-analyzed meshes with "Prim Physics" connected to linksets with subcomponents animated with llTargetOmega / PRIM_OMEGA parameters upon server restart. #158706". It describes non-analyzed mesh objects switching to a convex collision shape after region restart.
I can reproduce your bug when I do the following:
- Import a mesh object with a concave surface (I used the example from BUG-225742, which is a ~4m tall archway), with the physics shape set to 'high lod'
- Rez the mesh and set the physics shape type to 'prim'
- Rez a default box and link as a child prim of the mesh object
- Create your basic llTargetOmega script in the box
- Confirm that the mesh still has a non-convex collision shape by e.g. walking through its cavity
- Duplicate the linkset.
- Test to see if the linkset's retained their original collision shapes
Expected results:
Both linkset's meshes should have physics shape type 'prim' and have a non-convex collision shape.
Actual results:
In (7), the original linkset retains its non-convex collision shape, but the duplicate mesh has a convex shape. Both meshes appear to have 'prim' physics in the build tool..