6 pièce(s) jointe(s)
Personnages, rigs et animations
Hello, voici mon premier test du module Personnage et du mouvement C. - - Le demi modèle a été retopologisé au pinceau de polygones, super outil (il ne lui manque que la fonction intégrée "Glissement"), puis mis en symétrie. Riguer avec le module Personnage et animer avec un mouvement C Pièce jointe 21799 Pièce jointe 21800 Pièce jointe 21801 Pièce jointe 21802 Pièce jointe 21803 Pièce jointe 21804 - - le modèle fait 15 000 polygones pour le corps, les yeux, les cheveux et les dents sont à part. - - Truc à savoir : pour qu'apparaisse dans la timeLine un motion clip fait à partir d'un mouvement C piloté par un module Personnage, il faut convertir l'objet Personnage (touche C) sinon on ne voit pas le motion clip, j'ai passé une demi-journée à chercher ça ! - - Voici une courte anime de 16 images, cycle de marche avec 2 morphs de poses pour les muscles, côté droit et gauche, pour tester le rig. http://reelmotion.free.fr/animeC4D/BF_A.gif - - Faut que je revois les sculpts des poses pour les abdos, on dirait qu'il a mangé des noix de cocos entières, le goinfre ! - - Bonne journée :icon_wavey:
5 pièce(s) jointe(s)
passage du gif animé en URL pour pas surcharger la page
Citation:
Envoyé par
clemz
^^ ..oué mais en même temps je travaille sous R15 et R16 donc je m'en cogne un peu :D
( tu passes 5 ans à maitriser un language de progr et hop il disparait ^^ .. ça donne envie de se mettre au python .et de le voir remplacé par un autre super truc 'hachement mieux dans 5ans ;)
regarde la R19 quand même, il y a des nouvelles options dans le gestionnaire d'influences, notamment la pipette en raccourci et je crois que la fonction miroir a été réécrite pour cette version.
le python est très direct, pas trop de fioritures, moderne quoi ! IMHO
personnellement, je n'ai pratiqué principalement que le javascript, dans les APIs d'illustrator et d'inDesign, un peu d'applescript avec Xpress, un peu de TCL/TK et de shell unix/irix.
Je ne pense pas que le python sera remplacé avant longtemps et de plus il est présent dans tous les softs de 3D me semble t il
- - -
j'ai recommencé le rig sans l'outil personnage.
un squelette de base sans les orteils
Pièce jointe 21911
avec plusieurs bones sur le visage
Pièce jointe 21912
tous les contrôleurs sont faits en polygones et pas en tracès
Pièce jointe 21913
fonctions de rig en xpresso et en python
Pièce jointe 21914
- poses prédéfinies
- pliage des doigts
- libération compléte du mouvements des doigts qui sont alors animables avec les contrôleurs
- fonction épingle du coude (le coude est posé sur la table et ne bouge plus)
- Fixer la main et le coude ainsi que libérer le déplacement son liés à l'influence du déplacement vertical du pied
- Miroir -> c'est le bras gauche qui est dominant et pilote le bras droit
- miroir de la main seule
- miroir du bras complet
- les pieds
Pièce jointe 21915
influences générées par rapport au déplacement vertical du pied
option pour fermer la bouche faite en xpresso
Edit :
j'ai aussi des contrôleurs flottants qui pilotent des champs vectoriel2D pour les morphs et les bones du visage
http://reelmotion.free.fr/animeC4D/visage.gif
il y a des repères qui suivent le rig et déclenche des morphs suivant la distance, ici les pectoraux
http://reelmotion.free.fr/animeC4D/brasPec.gif
Bon après-midi :icon_wavey:
utilisation de la fonction récursive pour créer une ondulation
salut,
un petit bout de code python autour de la fonction récursive pour créer une ondulation sur une chaine de bones.
http://reelmotion.free.fr/calamar/onde01.gif
avec un controleur de la hauteur et un pour la vitesse
http://reelmotion.free.fr/calamar/du.png
- -
Appliqué à un calamar
http://reelmotion.free.fr/calamar/calamar02.gif
http://reelmotion.free.fr/calamar/calamarP1.jpg
- -
Code PHP:
import c4d
def onde(i):
if (i > 20) :
return
vitesse = op.GetObject()[c4d.ID_USERDATA,4]
hauteur = op.GetObject()[c4d.ID_USERDATA,5]
lesPosi = eval(op.GetObject()[c4d.ID_USERDATA,3])
tentacule = 'tentacule_' + str(i)
matrix = doc.SearchObject(tentacule).GetMg()
My = matrix.off[1]
if My < hauteur and lesPosi[i] > 0 :
lesPosi[i] = 1
op.GetObject()[c4d.ID_USERDATA,3] = str(lesPosi)
if My > hauteur and lesPosi[i] > 0 :
lesPosi[i] = 0
op.GetObject()[c4d.ID_USERDATA,3] = str(lesPosi)
#
if My > 0 and lesPosi[i] < 1 :
lesPosi[i] = 0
op.GetObject()[c4d.ID_USERDATA,3] = str(lesPosi)
if My < 0 and lesPosi[i] < 1 :
lesPosi[i] = 1
op.GetObject()[c4d.ID_USERDATA,3] = str(lesPosi)
posi = "+"
if lesPosi[i] > 0 : posi = "-"
BR = eval(posi + str(vitesse))
doc.SearchObject(tentacule)[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] -= BR
onde(i + 1)
def main():
onde(0)