Hi people,
I thought (as I always do) this would be simple to do but here I am
I have some animated points emitted in one pointcloud and I'd like for them to be pushed aside by the animated points emitted by another pointcloud (in my case, its some boats floating on a river that need to move out of the way of some ships passing by).
Searched all over and found a million possible solutions, but no succes so far. If someone could point me along, that'd be great!
thanks, Jasper
have one pointcloud avoid another
Re: have one pointcloud avoid another
when you say 'pushed aside' do you mean physically shoving them aside as it ploughs through, or do you mean that they tend to move themselves out of the way through motivation and self propulsion?
If it's shoving, then maybe ice rigid bodies is the best approach as the particle needs to understand the shape of the object it represents.
If it's shoving, then maybe ice rigid bodies is the best approach as the particle needs to understand the shape of the object it represents.
Re: have one pointcloud avoid another
Hi Paul, it's the first scenario rather than the last.
It needs to look as if whoever is in the boat sees the ship coming and decides to move clear to avoid being run over. And a ship at full sail can move pretty fast compared to some guys in a rowing dinghy, so they will tend to do this way ahead, with the ship still being at some distance. Also they wouldn't have a lot of acceleration, what with rowing paddles and all. Basically, the boats will avoid coming close to the ships at all.
I played some with RBD too, but couldn't figure out how to get smooth, wide berth with slow acceleration. It feels to me more like I'd need a repulsion/attraction type of effect, or a (variation on) flocking. What I couln't get working was having the manually animated point positions of one non-simulated pointcloud be used as input for a point attraction force (or any force) in another simulated cloud.
It needs to look as if whoever is in the boat sees the ship coming and decides to move clear to avoid being run over. And a ship at full sail can move pretty fast compared to some guys in a rowing dinghy, so they will tend to do this way ahead, with the ship still being at some distance. Also they wouldn't have a lot of acceleration, what with rowing paddles and all. Basically, the boats will avoid coming close to the ships at all.
I played some with RBD too, but couldn't figure out how to get smooth, wide berth with slow acceleration. It feels to me more like I'd need a repulsion/attraction type of effect, or a (variation on) flocking. What I couln't get working was having the manually animated point positions of one non-simulated pointcloud be used as input for a point attraction force (or any force) in another simulated cloud.
Re: have one pointcloud avoid another
Just an idea. You could make a rigid body sim on a point cloud with much larger boats and use an identical point cloud that uses the first cloud as a goal to move toward, but with actual size boats.
This way, cloud 1 of boats will clash.. but cloud 2 will smooth out the movement, looking more like avoidance.
might look odd and not work as they won't be steering forward in tHe right direction, but maybe worth a go.
As for your needed repulsion effect. Can you not find closest position on a separate cloud and subtract that from pointposition to create an avoidance force? (With distance falloff of course)
This way, cloud 1 of boats will clash.. but cloud 2 will smooth out the movement, looking more like avoidance.
might look odd and not work as they won't be steering forward in tHe right direction, but maybe worth a go.
As for your needed repulsion effect. Can you not find closest position on a separate cloud and subtract that from pointposition to create an avoidance force? (With distance falloff of course)
Re: have one pointcloud avoid another
Did you tried crowd? maybe could work for this. Or get the crowd ice tree's idea and tools from it.
Re: have one pointcloud avoid another
how many boats/ships would that be?
softimage resources section updated Jan 5th 2024
Re: have one pointcloud avoid another
Ok, having thought about it some more, my approach would be to create a field of particles on the water, that calculates per frame, the danger/safe areas by weight, based upon the trajectory and distance from the oncoming ships.
Then the small ships can read the field by firing out an array of samples ahead of them and reading the corresponding attributes on the field to decide where they should steer toward, to be safest.
I believe this is easier than trying to have the little ships read directly from the big ships
A bit like this concept
https://vimeo.com/20598209
Then the small ships can read the field by firing out an array of samples ahead of them and reading the corresponding attributes on the field to decide where they should steer toward, to be safest.
I believe this is easier than trying to have the little ships read directly from the big ships
A bit like this concept
https://vimeo.com/20598209
Re: have one pointcloud avoid another
Whew, loads of ideas. Thanks all! At the moment I'm busy at another element but I hope to find some time to look into this soon. Rray: there are about 100 ships and about 300 boats.
Who is online
Users browsing this forum: No registered users and 60 guests