MouseEvent3D partially ineffective

Software: Away3D 4.x

chocobo_green, Jr. Member
Posted: 01 May 2013 01:42 PM   Total Posts: 38

I have a mesh loaded from awd2.
MouseEvents are effective on the avatar’s hip position and lower half of the spine. Nowhere else.

What could possibly cause this?

   

chocobo_green, Jr. Member
Posted: 02 May 2013 10:54 AM   Total Posts: 38   [ # 1 ]

I modified something and used a more proper way for detection. The image shows what’s happending now. The green area is the avatar and the red area is the clickable range. I drew them by hand from what I saw in the app. Not very accurate but shows the rough picture.

 

   

chocobo_green, Jr. Member
Posted: 02 May 2013 10:58 AM   Total Posts: 38   [ # 2 ]

In the first post the clickable area was very small. As the black rectangle shows. I don’t know what I’ve changed but it’s big as the red one now.

 

   

John Brookes, Moderator
Posted: 02 May 2013 11:36 AM   Total Posts: 732   [ # 3 ]

Looks like a bug with the bounds of the animation (see image)
You can set the view picking to shader and that will get past the issue.
eg
view.mousePicker = PickingType.SHADER;

 

   

chocobo_green, Jr. Member
Posted: 02 May 2013 04:38 PM   Total Posts: 38   [ # 4 ]

Got a crash under some EnterFrame. May be in the middle of avatar loading.

_view = new View3D();
_view.mousePicker=PickingType.SHADER

event.localPosition = collider.localPosition.clone();
localPosition is null here.

at away3d.core.managers::Mouse3DManager/queueDispatch()[C:\workspace\Away3d\src\away3d\core\managers\Mouse3DManager.as:123]
at away3d.core.managers::Mouse3DManager/fireMouseEvents()[C:\workspace\Away3d\src\away3d\core\managers\Mouse3DManager.as:75]
at away3d.containers::View3D/render()[C:\workspace\Away3d\src\away3d\containers\View3D.as:635]

 

   

John Brookes, Moderator
Posted: 02 May 2013 04:59 PM   Total Posts: 732   [ # 5 ]

Should say the above is for 4.1 (DEV).

If your using localPosition, you need to add

myMesh.shaderPickingDetails = true;

You could also ignore all the above and set your own bounding box

eg after addchild
MyMesh.showbounds = true; //just to see
MyMesh.bounds.fromExtremes(-100,-100,-100,100,100,100);

Basically shader will allow you to pick on the mesh of the animation.

But its slower than setting the bounds and using default bounding box picking.

 

   

chocobo_green, Jr. Member
Posted: 02 May 2013 06:26 PM   Total Posts: 38   [ # 6 ]

I tried the svn code. But the api changes stopped me there.

Manually setting the bounds worked. But how do I determin the values? Bounds.getMeshBounds(_mesh) gave me the same old large box. And it’s difficult to estimate sizes for all the possible meshes to come.

 

   

beers, Member
Posted: 03 May 2013 08:36 PM   Total Posts: 53   [ # 7 ]

Thats a good question. I’ve run into that problem myself.

Is there a way to get an up-to-date bounding box of a model thats currently being animated by the gpu? I remember reading a while ago that there wasn’t, but that may have changed with away3d 4.1…

beers

 

   
   

X

Away3D Forum

Member Login

Username

Password

Remember_me



X