6 degree of freedom Mouse3D CHOPs network

   967   2   0
User Avatar
Member
24 posts
Joined: 11月 2012
Offline
Hi all -

I know there are a few forum threads out there about similar ideas, but I'm determined to do this without too much specialized coding knowledge.

I have a 3DConnexion SpacePilot 3d mouse and I want to use it to navigate through the Houdini scene interactively. The plug-and-play behavior is 85% of what I want, but it doesn't appear to be customizable. I can get 90% of the way by playing with my system settings, but that's not sustainable or a complete solution.

My next best guess was to create a "Gamepad Camera" using the shelf tool, and then modify the CHOPS constraint network with a mouse3d node instead of the default gamepad node. However, this has two problems: (1) The devicetransform node has no camera tilt axis - the help page supposes that I would never want such a thing. But I do want it - for my purposes I need a full 6-DOF camera controller. (2) This setup appears to be using the 3d mouse data to edit the world transform of the camera, but I need it to edit the local transform of the camera. When I twist the SpacePilot puck clockwise, I want my camera to look to its right, not rotate toward the world +X axis.

Can someone who is more familiar with CHOPs help me figure out:
(1) How do I accumulate a channel's input? The devicetransform node is doing this, but there's no exposed code. If I twist the puck, I want the relevant channels to increase and stay where they are when I release the puck. Currently the mouse3d channels return to zero when I release.
(2) How do I manipulate an object's local transformations rather than its global ones? This is what the viewport translate tool is doing, so it must be possible to access that in VEX, right?

Thank you!
Edited by achrist3 - 2023年3月3日 20:18:05
User Avatar
Member
24 posts
Joined: 11月 2012
Offline
FWIW I did just come up with a really dumb way to answer my first question: I use multiple devicetransform nodes to accumulate values, and then pass them through, rename them, and merge the channels I need.
User Avatar
Member
24 posts
Joined: 11月 2012
Offline
Leaving some breadcrumbs here for future 3d mouse users ... this network seems to do the trick. I'm no CHOPs expert, so I still need to figure out where I'm creating redundancy that makes things lag and my wrangle VEX code is a little dodgy. But I now have a full 6 degree-of-freedom continuous transformation from local coordinates flight simulator-style camera navigation.

Hat tip to this tutorial which helped me a lot with managing transforms: https://vimeo.com/307156961 [vimeo.com]

Attachments:
Screen Shot 2023-03-09 at 4.35.54 PM.png (673.0 KB)

  • Quick Links