Bones ‘Morph’ On Same Vertex?

Procedural Vertex Manipulation on Vertices Controlled by Bones

Greetings All:

I am hoping to use Unity 3d for a game that I am developing which involves old style sailing ships. I want to use bone binding (modeling and rigging in Blender) to control things like the rotation of sails in the wind and use vector manipulation to change the sail shape for billowing in the wind and hoisting/lowering.

So far I have not been able to make vertex manipulations work on my bone bound models. Any ideas?

Can this be done?
Do I need to set the vertexes less than 100% bound to the bone?
Go all procedural?
Separate Meshs?
???

I can think of several other ways to get around the problem – but a mix of morph and bone movement would be best –

Any Ideas or suggestions would be helpful.

Thanks~
~andrew

FWIW -I am not using animations made in blender – just: transform.rotate.
FWIW2 –Here is the url for my initial feasibility study. Its rough but demonstrates the key features I need. The ‘water’ and the expanding cylinder are vertex manipulations – other movement is bone type transforms by code.

http://www.housecarl.com/mebottle/boattest/ship_functions_test.html

Did a little more thinking and research and it seams to me that you could make a fairly powerful morph engine by setting up a ‘reference mesh’. The ‘reference mesh’ would separate the various vertices in any given group by an arbitrary but fixed distance just to identify them as belonging to a group. Then you could identify individual groups of vertices (corresponding to a pre-devised system) and with minimal computational effort just move those according to your conditions and your ‘pose meshes.’

Guess I’ll play around with this idea little and let you know. ITMT – if anyone has any ideas or info about my core question – please let me know. It would sure be easier to move the bound verticies and their children with a ‘transform.rotate’ than to have to calculate the 3d location for each vertice.

FWIW – Im totally hooked on Unity so I will be making this happen one way or another.
~andrew

Alas for the day job: 'What an evil fortune! And I am already weary.

You can check out http://http.developer.nvidia.com/GPUGems/gpugems_ch04.html . They used morphing + skining in that demo. I don’t think any of their techniques are applicable in Unity directly though as GPU vertex morphing is not supported.

Otherwise, this IS possible, but I think ONLY if you emulate skinning with your own script, and then add morphing on top of that. This will all be very slow of course, but if you don’t need it for large scenes you should be okay.

I suggest you study skinning and implement your own skinning system first(plenty of articles on how to do this on the net). Then go ahead and add morphing on top of that (should be simple enough if you read the article I linked)

BearishSun:

Thanks for your input. Not sure whats going to happen at this point, but I appreciate your help, and the article was a good read.

Thanks
Andrew

Greeeeetings again:

I just wanted to post a quick note to let everyone know I found an acceptable work around. My project and code is still way rough - so I’ll post the code in a follow up - but I wanted to let anyone who has the same problem what I did to use Bones and ‘cloth’ together.

I added the sails as a second mesh in the object. I then placed empty game objects for anchor points in the ship/mast geometry. The anchor points are moved by the bones/code and the locations for the vertices of the sail mesh are placed according to the anchors. This adds a draw call to each ship (may be more after I sort out the shaders) but that’s still not too bad.

I’ll post a follow-up when things are cleaned up a bit -but if anyone is pulling their hair out over a similar problem - send me a forum message and I’ll see if I can help.