PDA

Voir la version complète : Animation bateau sur un ocean



raitex
01/08/2017, 12h53
Bonjour a tous,

J'ai réaliser une petite animation d'un océan un peux dynamique et j'au également un bateaux.

Mon problème, est que je ne parviens pas faire suivre le bateaux au mouvement de l'eau. Ou alors, sa suit mais sois le bateaux décolle de l'eau ou est complètement submergé....

bricoman
02/08/2017, 12h16
Bonjour Raitex !
Peux-tu nous en dire plus sur ton animation ?- un exemple ,ou extrait du film serait plus explicite , éventuellement ta manière d'utilisation du soft , capture d'écran .... .:huh:
Ainsi pourrons-nous peut-être t'aider ...dans la mesure de nos moyens :thumbup1:

atome451
02/08/2017, 12h29
Salut à vous,

Si j'ai bonne souvenance, Base80 avait fait des tutos sur le sujet. Malheureusement son site n'existe plus (c'était une source fantastique pour ce genre de trucs) mais il reste ses vidéos : https://www.youtube.com/user/base80/videos

Sa technique était d'utiliser des objets invisibles pour évaluer les collisions à la proue et à la poupe ainsi qu'à tribord et bâbord. Donc il n'y avait pas de collision sur le bateau lui-même mais sur des objets associés masqués qui déterminaient l'orientation du bateau. Le résultat était vraiment très bien.

Peut-être que ceci te donnera une piste de réflexion. Mais je ne peux pas en dire plus sur la mise en œuvre...

EDIT: Il y a aussi le long sujet de Picot qui abordait le problème avec une bouée il me semble. C'est un sujet qui date un peu mais qui devrait apporter pas mal d'infos qui restent d'actualité : http://frenchcinema4d.fr/showthread.php?61643-vagues-et-embruns-l-Add-the-sea-du-pauvre

clemz
02/08/2017, 15h32
comme ça je passerais par : - la contrainte 'clamp' en mode surface / normale ..donc tu récupères la normale sur la surface , au niveau de ton objet et ensuite tu pilotes le root de ton bateau avec ça .
- sinon si tu es joueur, tu peux le faire en expresso : en jouant avec le noeud 'ray collision' et un nul au dessus de ton plan et un en dessous , en projetés de la position de ton bateau , ceci te donnera la position sur la surface + la normale aussi normalement

après pour donner de l'inertie et un effet retard dans les alignements de normal et/ou position , donc là aussi plusieurs possibilités : une fois ton point de normale trouvé sur ta surface , tu peux relier un nouveau Null object via une contrainte PSR par ex dont tu baisseras la puissance , il suivra donc avec plus ou moins de retard ton vrai point de surface (mais sans effet 'ressort' ) .. pour un effet 'ressort' passe alors plutôt par la contrainte 'spring' ( ressort' donc)
sinon là encore si tu es joueur tu peux tout faire en expresso en utilisant le noeud 'memory' pour donner un effet retard ..par ex tu prends la position/rot globale de ton point de normale sur la surface et tu pilotes la pos/rot globale d'un nouveau Null via ces noeuds memory sur quelques frames de décalage .
Le mieux reste je pense les contraintes car tu peux doser la force de retard en fonction de la rapidité de monté ou descente de ton point de normale par ex ( pour ne pas avoir toujours le même retard dans la position je veux dire ...et avoir un effet plutôt 'mou' sur des montées/descentes lentes , mais qui se renforcerait un peu sur des montées/descentes rapides

raitex
03/08/2017, 11h17
Bonjour a tous, alors, je suis vraiment un débutant dans C4D. Pour mon animation de l'eau, j'ai utiliser le plugin HOT4D
J'ai vu sur plusieurs vidéo que je devais utiliser la fonction contraire et clam. Le problème, c'est que ce n'est vraiment pas réaliste. Le bateaux est submerger ou alors il décolle des vagues et il part dans tout les sens.

clemz
03/08/2017, 11h56
tient voila un petit test rapido . Donc tu as dans l'ordre de lecture pour C4D : l'ocean animé via le plug de Val (Hot4D ) , puis en dessous on définit 2 points de contact sur la surface ( via des contraintes 'Clamp' ) donc un à l'avant du bateau et un à l'arrière ( dans l'idéal oui il faut un sur les cotés aussi ), puis on relie un Null object à ces 2 points de surface, via une contrainte 'Spring' ( avec 2 champs cible dedans ) . ça nous donne donc un point central qui s'équilibre en ressort entre ces 2 points de surfaces . J'ai rajouté un petit expresso qui vient modifier un peu la rigidité du ressort ( paramètre 'stiffness' ) en fonction d'un autre point de contact sur la surface que j'ai mis au centre cette fois et qui est comparé en position Y par rapport à la position Y du Null ressort ..c'est à dire que si ce Null ressort , descend trop ou remonte trop , l'expresso renforce la rigidité de l'effet ressort pour éviter ces éloignements .
Et puis tu as ton mesh de bateau dans ce Null ressort que tu peux ajuster en Y pour le placer correctement sur l'eau.
Voila un test rapido mais que tu peux rendre plus précis via plus de points de surface autour du bateau , et des calculs de moyennes plus précis du coup entre ces points .

raitex
03/08/2017, 12h32
Ha ok, merci beaucoup, je vais tester sa :)

raitex
03/08/2017, 12h36
Mais comment tu as fait pour mettre des points neutre? Car chez moi, sa ce passe comme ceci :
http://hpics.li/01f4d1b

clemz
03/08/2017, 13h05
bien dans les objets primitifs de C4D tu as l'Objet Null non ;) ? ou alors clic droit sur ton bateau , puis 'group objects' et ça te glisse ton bateau dans un Null .

respecte aussi l'ordre d'exécution de C4D : il lit de haut en bas , et gauche à droite dans les tags .. donc pour ne pas avoir de lags il faut que " les choses devant s'exécuter en 1er soit au dessus de ce qui vient s'exécuter après " ..donc pour placer des nulls sur la surface de l'eau , il faut d'abord que la surface de l'eau soit 'calculée/animée' etc . faut penser comme du code : 'action 1' en haut puis 'action 2' qui utilise le résultat de l'action 1 , en dessous , puis action 3 etc ..

raitex
10/08/2017, 11h57
Merci pour le fichier, j'ai glisser mon bateaux dans ton travail, mais je n'arrive pas bien a bien régler les point neutre avant et arrière. Du coup, sa fait des rebond bizarre mdr :)