3D-Diablotine.com
Nous sommes actuellement le Jeu 29 Juil 2021, 19:05




Publier un nouveau sujet Répondre au sujet  [ 84 messages ]  Aller à la page Précédent  1, 2, 3, 4, 5, 6  Suivant
 monologue à bâtons rompus 
Auteur Message
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Après vérification de l'animation pour le bras gauche, je me suis aperçu qu'attraper le "T" et l'amener au niveau du précédent était trompeur car on pouvait avoir de gros écarts de valeurs si la courbe n'était pas assez zoomée. Il peut dont être très utile de bien zoomer la partie de courbe sur laquelle on travaille ou de faire un copy/paste dans parameters. Avec une courbe approximative, on peut avoir un effet de tremblement. On peut aussi procéder en 2 temps: peu zoomé pour aligner les points grossièrement et un deuxième passage pour affiner.

Je me suis également aperçu que l'on pouvait déplacer le T au-delà des limites du réglage en vertical, ce qui bien sûr n'a plus aucun effet. Dans ce cas, le réglage dans parameters ne varie plus et le T n'est plus sur la ligne rose dans la timeline qui reliait les T ensemble et qui représente la courbe réelle.

Autre chose dont je me suis aperçu, si on laisse le sol tel quel, on voit mal ce qui se passe car la grille, c'est assez trompeur. C'est pourquoi j'ai ajouté une primitive plane qui permet de voir quand les mains ou les avant-bras passent à travers, ce que l'on ne voit pas avec seulement la grille de base. Du coup, j'ai tout repris à zéro en faisant attention à ce que les mains touchent le sol et ne passent pas à travers. Evidemment, une fois l'animation finie, je supprimerai ce plane.

Donc je recommence et je commence par corriger la main qui rentre dans la cuisse mais cette fois-ci, j'utilise le twist de l'épaule pour la correction (left collar), juste ce qu'il faut pour que le défaut disparaisse. Je sauve mais cette fois-ci avec un indice pour ne pas avoir à tout recommencer si je découvre autre chose. Quand je parle de sauver, c'est d'un export dont je parle au format bvh. Ne pas oublier qu'il y a un "undo" dans le menu "edit" pour revenir en arrière si on a fait une bêtise.

En parlant de découverte, je viens de m'apercevoir que le curseur de départ pouvait dépasser celui d'arrivée, attention.

On n'arrête pas dans les découvertes. En bougeant la caméra, je vois que les mains mais également les pieds sont au-dessus du plane qui représente le sol. Je fais un edit/ figure /move to floor. Je continue à voir les pieds en légère suspension au-dessus du plane. Dans scene je sélectionne la G8F et j'utilise le réglage translate y. La combine est que l'on ne doit rien voir qui traverse le plane. Je fais donc légèrement traverser le pied et je remonte. Utilisation de la caméra pour bien voir la surface du plane par dessous. Rappel le plane n'a pas d'épaisseur.

En zoomant, vers l'image 48, je m'aperçois qu'au plus bas d el'animation pour le genou, celui-ci est en suspension au dessus du plane. Pas question de bouger la courbe puisqu'il n'y en a pas. Il n'y a en effet qu'une seule image-clé pour l'image 0. Qu'est-ce que je vais faire à votre avis? A la position 48, je clique sur l'icône représentant une image-clé et un + et il se crée une image-clé à cet endroit. Je me place ensuite sous le plane pour opérer le réglage comme pour l'image 0: on fait dépasser et on remonte. A l'image 58, je vois qu'un genou traverse: création d'image-clé et réglage du translate Y. On voit également les doigts dépasser mais on n'en tient pas compte puisque cela va faire partie des réglages ultérieurs. Si on zoome, on voit que le genou gauche est plus haut que le droit, mais on va laisser tomber.

On revient au réglage de notre bras gauche. Mais comme je veux voir la main à plat, je commence par régler les doigts. Le petit doigt relevé, ça ne me convient pas. A l'image 58, la main devrait être à plat, c'est donc là que je fais le réglage (bend). Je vois que l'on peut opérer la modification jusqu'à l'image 314. Je fais donc plusieurs sélections de groupe (pour éviter les erreurs il vaut mieux zoomer) et j'emmène le T à la valeur de l'image 58.

Donc à l'image 55, je pourrais espérer que la main soit à plat sur le sol. Pas de chance, le bend de la main (hand) est à sont maximum. Je pourrai trafiquer le réglage pour qu'il dépasse la limite mais ça ne serait pas bien. Je modifie la valeur du twist et du front-back pour avoir une main à plat et dont les doigts ne traversent pas le plane. Même chose pour l'image suivante. Il peut être utile de faire des aller-retours entre ces deux images pour voir si l'animation bouge beaucoup.

Après examen de la suite, le crâne passe également à travers le sol. Donc j'ai vérifié et sur la V4 aussi l'animation n'est pas parfaite. Cela nécessite donc beaucoup de travail et je verrai ça plus tard. Là, je vais me pencher sur le rendu en filament pour les animations puisqu'un auteur prétend que c'est plus rapide et que l'on ne voit pas la différence de qualité pour une animation. Donc, environnement en iray et animation en filament, Faut voir!


Dernière édition par alinal le Ven 30 Avr 2021, 07:21, édité 1 fois au total.



Jeu 29 Avr 2021, 07:45
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Ayant lu l'article sur Filament, j'ai décidé d'attendre les mises à jour de DAZ Studio. Filament ne convient pas encore aux personnages. Quant à 3Delight, j'étais parti pour voir s'il n'était pas possible de l'utiliser pour les animations, ce qui impliquait de l'utiliser également pour les poses de personnages pour des raisons de teinte. Un essai sur une pose m'a rappelé qu'il n'était pas forcément plus rapide qu'iray et que donc ce n'était pas une bonne solution.

Dans Renderguide. Com, il est proposé de jouer sur "Translucy weight" pour foncer la teinte de la peau en sélectionnant "skin" dans l'onglet surfaces. J'ai vérifié et ça marche. En fait, ça marche au rendu. On ne voit pas la différence dans le viewport si on est en texture shaded. Attention aussi, si on veut ajouter des geograftings, de les ajouter après avoir modifié la valeur de "translucy weight". Même problème avec les ongles et les lèvres qui ne suivent pas la transformation. Il faudra sélectionner "fingernails" , "toenails" et "lips en même temps que skin dans "translucy weight".

Les renseignements que j'avais donné pour la timeline, comme la sélection d'images-clés en groupe, la hiérarchie, etc sont également valables pour ceux qui ont la licence d'Animate 2. On clique une fois sur le block, puis double-clic pour être en mode images-clés. Une icône représentant deux courbes avec des points est disponible dans le menu. Si on clique dessus, on a accès aux mêmes courbes que dans timeline. Un peu plus rapidement peut-être puisque la hiérarchie est la même que dans scene, plus besoin d'expanser "properties" et autres sous-répertoires. Par contre toujours le même danger d'emmener un point de la courbe hors de sa place horizontale (donc de son emplacement dans la temps) et plus de lignes verticales pour le situer si ce n'est tout les tiers de seconde.

Je vais faire des essais pratiques là dessus et je vous en ferai part dès que possible car les beaux jours reviennent et le déconfinement s'approchant, je vais souvent dans des lieux où je n'ai pas d'accès à internet. Donc à plus tard.


Ven 30 Avr 2021, 07:21
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Pas encore parti, donc suite:

Précédemment, c'est plutôt de la version Animate Lite dont il était question puisque j'ai surtout travaillé avec Timeline. Du moins, je le suppose car quels sont les différences entre Animate 2 dans sa version avec licence et la version Lite? Difficile pour moi de le dire puisque DAZ Studio mémorise le numéro de licence et qu'il la récupère d'une version à l'autre de DAZ Studio. Certitude, Animate constraints n'est pas valide avec Animate Lite.

Chargeons une G8F de base et double-cliquons sur l'aniblock "staying alive". Faisons un zoom sur la main gauche. On voit que le pouce entre dans la cuisse. On clique une fois sur le block bleu dans animate et il nous indique qu'il faut double cliquer pour avoir les keyframes (images-clés). On double clique. On peut se servir du curseur zoom pour zoomer/ dézoomer ou de la mollette de la souris, comme pour la timeline.

Première constatation: quand on passe de la position "T" (qui n'est plus vraiment un T avec G8) à l'animation, le pouce entre légèrement dans la cuisse. Si on joue l'animation et qu'on vient en position 0, on s'aperçoit que la main entre beaucoup plus entrée dans la cuisse que précédemment. Conclusions:
on aura sûrement intérêt à jouer une première fois une animation avant de commencer à la rectifier
DAZ 3D n'a pas vérifié les aniblocks qu'il livre, certes gratuitement.
Ma configuration de travail est celle-ci: panes du côté gauche rentrés, ceux du côté droit suffisamment ouverts, animate 2 en haut prenant toute la largeur, viewport en dessous.

Seconde constatation: si je sélectionne un os quelconque dans le hiérarchie d'Animate, la sélection dans la hiérarchie de la scene n'est pas synchronisée et réciproquement. Il faudra donc faire la même sélection dans les deux hiérarchies manuellement. Sauf que sous "LeftShoulderBend", dans Animate, on a rot_force_x, rot_force_y et rot_force_z et dans parameters, on a front-back, bend et twist. Si on manipule les curseurs des réglages de "LeftShoulderBend", on voit le bras bouger comme on en a l'habitude mais j'ai vérifié les courbes des rot_force_x,y,z qui ne varient pas d'un poil pour la frame en cours. A l'inverse, si on agit sur le point de la courbe, on voit que les valeurs de front-back et de bend changent de valeurs ensemble. Quant à twist, quelle que soit la courbe sélectionnée, il ne change jamais de valeur.Autre moyen de réglage, le gizmo, appelé dans DAZ studio "outil universel" qui permet d'opérer les rotations et les translations d'un os donné. Si dans "windows/ panes" vous activez l'outil universel, vous pouvez ensuite en fonction des boutons appuyés ou non, permettre la translation, le rotation ou le changement d'échelle pour les axes X, Y et Z. Bouton enfoncé, l'opération est permise; bouton relevé, elle est interdite, ce qui évite les fausses manipulations.

On notera que les courbes sont de la couleur où on les retrouve avec le gizmo, mais également avec tous les logiciels 3D: rouge X, vert Y, bleu Z. Un curseur nommé "zoom" permet de zoomer/dézoomer (la mollette de la souris permet la même chose) et un ascenseur sur le côté droit permet de centrer la courbe. Il existe également un acenseur pour se déplacer horizontalement mais pas d'indicateur pour dire à quelle frame se situe un point. Il n'y a que l'indicateur du nombre de secondes, ce qui n'est pas très pécis. Une deuxième barre apparait avec des cases en bas et si on clique sur une case donne l'indication de la frame, mais fait repasser en bloc et fait disparaitre les courbes. La suite des événements m'a permis de voir que cette deuxième barre correspond en fait à la timeline.

Pour cet aniblock, j'ai utilisé les réglages de parameters. Il n'y avait pas beaucoup d'images à modifier, quelques-unes au début et à la fin de l'animation? De toutes façons, il se pourrait que je sois obligé de refaire des corrections si le personnage est plus large que la G8 de base ou si elle a un vêtement épais. Pour le twist, il est clair qu'il vaudrait mieux utiliser le réglage de parameters; par contre pour les autres réglages, il faut voir ce qui est le plus pratique (de choisir entre ceux d'Animate ou ceux de parameters).

Supposons que vous souhaitiez mettre plusieurs blocs à la suite. Vous allez les mettre dans le sens qui vous parait logique: start, forward et stop. Animate2 va les mettre en sens inverse. Le dernier à être double-cliqué sera en début de lecture. Les derniers seront les premiers et les premiers seront les derniers. Si on clique sur un bloc et qu'on garde la souris appuyé, on peut déplacer le bloc par drag and drop. Il suffit de cliquer sur start et de le pousser à gauche, il passera à travers les autres blocs. Ensuite, on clique sur forward et on le fait dépasser stop et on s'arrête à temps avant qu'il ne passe à travers start. On le fait toucher start. C'est ensuite au tour de stop que l'on emmène gentiment derrière forward. On est toujours avec une G8 de base et les aniblocks fournis par DAZ 3D. Vous remarquerez qu'un bloc qu'on déplace devient orange.

Comme vous avez pu le constater, vous avez 3 espaces de travail différents avec 3 menus différents.
1. Vous avez chargé les blocs il sont bleus et vous avez un certain menu
2. vous cliquez sur un bloc et vous avez un autre menu (valable pour le bloc sur lequel vous avez cliqué)
3. vous double-cliquez sur un bloc (cela nécessite d'avoir cliqué dessus auparavant) et vous avez un troisième menu. Vous pouvez aussi cliquez sur l'icône représentant une suite de cases avec 4 flèches et qui permet quand on clique dessus de passer du menu2 au menu 3 et inversement.
Visiblement, à part le premier menu, il n'est pas possible de mettre deux blocs simultanément avec les menus 2 et 3. Par contre, il est possible de ne faire qu'un seul bloc des trois. En gardant la touche CTRL appuyée, sélectionnez les blocs les uns après les autres. Dans le menu, il y a une icône représentant un rectangle avec une ligne pointillée au milieu. Cliquez dessus et les 3 blocs n'en forment plus qu'un, ce qui vous permet d'accéder aux 3 menus pour la totalité de l'animation. L'icône poubelle vous aurait permis de les supprimer.

Le fait de ne pouvoir accéder aux menus 2 et 3 pour plusieurs blocs en même temps est un handicap. Supposons qu'entre le start et le forward le mouvement ne se fasse pas bien. Il est possible de rectifier l'animation en en coupant des morceaux sauf que ça sera difficile de savoir où puisqu'on ne peut examiner qu'un bloc à la fois et qu'une fois joints, on ne peut supprimer des morceaux en plein milieu.

Il faut donc une configuration plus pratique. A supposer qu'on ait rien au départ, on sélectionne dans windows/panes Animate 2. Dans la barre de titre où se trouve l'onglet "Animate2", on clique avec le bouton droit, on choisit de nouveau "add pane" et on choisit cette fois-ci "Timeline". Ca donne une fenêtre que l'on peut déplacer et qui a 2 onglets: timeline et animate 2. On emmène cette fenêtre vers le haut par drag and drop et lorsqu'on relache le bouton de la souris, elle se trouve intégrée au-dessus du viewport. Les onglets "animate2" et "timeline" sont passés sous la fenêtre.
Si on va dans la timeline, on constatera que le déplacement du curseur fait bien jouer l'animation mais si on va essayer de voir dans les courbes, on voit qu'elles n'existent pas. Pour les transférer, il suffirait de faire un "bake to studio keyframes". Cela transfère la totalité des images d'une animation, même s'il y a plusieurs blocs. On pourra voir rapidement où il y a des erreurs et, puisque les curseurs de timeline et d'animate 2 sont synchronisés agir sur le ou les blocs concernés. Tant qu'à faire, ajoutez aussi par un add pane le animate constraints.


Sam 1 Mai 2021, 08:46
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
A propos, d'Animate constaints, à part le parentage qui est vraiment utile, les 3 autres modes sont plutôt aléatoires et ne me paraissent pas utiles, donc je n'en parlerai pas.

Un truc que j'ai découvert à propos de la timeline, pas besoin de cliquer sur l'icône "cle+" pour créer une image-clé, il semblerait qu'elle se créée automatiquement dès qu'on modifie un réglage.

Une raison de plus pour conserver la timeline est la modification des morphs dans une animation. Supposons que vous souhaitiez modéliser le mouvement des seins pendant une marche (je le simplifie à un simple mouvement vertical, dans la réalité la courbe est plus comples que cela, j'en avais déjà parlé). On peut partir du principe (toujours pour simplifier) que lorsqu'un pied touche le sol, c'est le départ pour que les seins montent. Ils redescendent progressivement et un nouveau coup de talon les remonte.

Chargeons une G8 et dans les aniblocks/ walks juste le start. Comme je l'ai dit, faisons tourner une première fois l'animation pour la mise en place. Je mets G8 et la caméra sur left pour voir le mouvement. Frame 22 pied au sol. Frame 41 pied au sol. 41-22= 19. Donc selon ma théorie les seins seraient au plus haut à la frame 31. Je fais un bake to studio keyframes. Dans la timeline, je me positionne sur la frame 31. Dans parameters, je mets breast up-down à 100% (c'est juste pour montrer le mouvement que je force, dans la réalité la force de remontée dépend du volume de la poitrine, voirun autre fil sur lequel j'en avais parlé). Je clique ensuite sur l'icône "cle+". Je laisse le réglage à 100% et je clique sur la clé+ à la frame 50. A la frame 41, je descend à -100%. Enregistrement d'image-clé icône cle+. On peut ensuite visualiser l'animation. Comme elle est très courte, il vaut mieux se placer en caméra "front" et baisser le fps à moins de 10.

Deux constatations:
1. impossible de voir une courbe de cette animation. Si quelqu'un sait comment faire qu'il me fasse signe. A priori, dans d'autres logiciels, pour animer les seins, on leur met des os.
2. J'ai essayé de mettre des images-clés et de faire la même chose sous Animate 2 et ce n'est pas pris en compte.

Si on veut conserver le mouvement en gfa, il faudra bien sûr faire un "create aniblocks frome studio keyframes".


Sam 1 Mai 2021, 08:46
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Voici les raisons qui me poussent à conserver Timeline:
1. un seul aniblock à la fois peut passer dans ce que j'ai appelé le mode 2 ou 3, ce qui ne facilite pas la suppression d'images-clés pour synchroniser deux gfa à la suite (j'entends pas là le raccordement des deux sans que ça se voit à la lecture).
2. la non synchronisation entre les réglages de parameters et les courbes d'Animate 2 (au moins dans le sens un réglage dans parameters ne change rien aux courbes dans Animate 2.
3. Le fait de pouvoir ajouter des modifications de morphs dans l'animation en ajoutant des images-clés, ce que je n'ai pas réussi à faire dans Animate2

Je regrette que ni dans Animate, ni dans Timeline, il ne soit créé de courbes lorsque l'on joue sur les morphs. Dans mon exemple de marche, à supposer que forward et stop soient synchros avec start, j'aurai peut-être pu copier la courbe et la reporter. Là, il sera nécessaire de créer soi-même les images-clés.

Comme je l'ai déjà dit la courbe réelle de déplacement des seins dépend d'abord de leur grosseur, de la vitesse de déplacement (si le personnage court, le déplacement est plus intense). Si le déplacement commence au moment où le personnage frappe le sol avec le talon, d'une part ça devrait plus affecter le sein du côté de la jambe qui touche le sol et d'autre part, le mouvement est autonome puisqu'il dépend de la gravité du sein. Il est donc fort probable que le sein sera revenu à sa place bien avant qu'un second pied touche le sol. De plus, j'ai accentué en mettant le up-down à 100%. Là aussi, ça dépend de l'âge et/ou du maintien de la poitrine en temps normal. Il est fort probable que le sein reviendra aux alentours d'un réglage à 0. Pour terminer la digression sur le sujet, normalement, il y a également un mouvement moins accentué intérieur/extérieur. Pour ceux que le sujet intéresserait j'avais écrit un truc sur breast jig là:https://sites.google.com/site/iclonefr/daz/breast-jig
Il semble que la société shock absorber ait retiré les vidéos qui indiquait les courbes. Par contre, le lien vers Youtube fonctionne encore.


Sam 1 Mai 2021, 17:34
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Je vais revenir sur ma perte de PostGreSql, qui est une base de données qui semble surtout utilisée pour Smart Content. En théorie, Smart Content permet d'accéder à des classements. Exemple, pour retrouver les fichiers animaux, vous allez dans animals, etc.... Bien gentil, mais ça sous-entend d'abord que postGreSQL fonctionne et ensuite que vous renseignez parfois (peut-être souvent, je n'ai pas essayé) l'endroit où doivent être classés tel ou tel fichier si l'auteur ne l'a pas fait.

Il y a une solution simple et presqu'aussi pratique. Au bout d'un certain stock de fichiers, on les met sur un disque dur externe et surtout on les classe dans des répertoires. Cela permet quand on a une idée de scénario de tester plus vite et de choisir ce qu'on a besoin. Dans mon exemple, j'avais utilisé mon appartement, des valises et 3 personnages. Sur mon disque dur externe, j'ai un répertoire uniquement consacré aux appartements, un autre pour les vêtements de chaque catégorie de Genesis, un pour le cirque, un pour les centaures, .... Si je décide de créer une scène, je sais immédiatement dans quel répertoire aller chercher le fichier qui pourrait m'être utile.

On peut également reproduire ces répertoires dans le répertoire correspondant à son projet. Ca sera un peu l'équivalent du smart content sans les vignettes malheureusement. Je vous conseille de ne pas créer le projet sur le disque où vous avez stocké l'intégralité de vos fichiers. Une erreur étant vite arrivée, il serait dommage d'effacer un original. Parfois on peut les retélécharger, parfois non.

Pour que DAZ Studio voit des fichiers qui ne sont pas dans my DAZ Library (ce qui est au moins le cas des fichiers récupérés sur d'autres sites que DAZ 3D.com.

On va dans Edit/ preferences. On clique sur l'onglet "content". Ensuite, on clique sur le bouton "Content Directory Manager". Dans la fenêtre qui s'ouvre, on clique sur DAZ Studio Formats, puis sur add. Dans l'explorateur de fichiers, on se positionne sur le répertoire où on a mis ses fichiers. Une fois que c'est fait, on clique sur "sélectionner un dossier". On sélectionne ensuite Poser formats et on recommence l'opération.
On clique ensuite sur accept, puis sur apply et sur accept. Les nouveaux répertoires seront visibles dès le redémarrage de DAZ Studio ou en sélectionnant l'onglet content library et en choisissant Content DB maintenance/ reimport Metadata.

Une autre chose à faire aussi, de temps en temps, nettoyer le fichier log.txt qui augmente au fur et à mesure de l'utilisation de DAZ Studio. On y accède par le menu help/ troubleshooting/ view log file. On peut effacer le contenu en faisant sélectionnez tout/ supprimer et ensuite on l'enregistre. On peut aussi le lire pour voir si DAZ Studio n'a pas de problèmes particuliers.

Un retour sur Animate 2. Il faudra que je revois ma notice qui était une traduction Google de la notice anglaise. Ca sera pour beaucoup plus tard puisque ce qui est plutôt programmé, c'est une virée à la campagne où je ne peux me connecter à internet.

J'ai trouvé le moyen d'accéder aux courbes de morphs.
Chargez une G8 de base dans le viewport (je rappelle qu'on peut soit double-cliquer, soit faire un drag and drop)
chargez staying alive qui est une animation suffisament longue.
Dans Animate 2 ajouter un sub track en cliquant sur + (dans la deuxième rangée de menu, l'infobulle vous annonce add new subtrack .....
Dans la piste de timeline de ce sub track, cliquez avec le bouton droit de la souris. Dans la fenêtre qui s'ouvre, choisissez "add an empty block"
Cochez la case No properties – good for morph and pose blocks
Mettez initial length à 4 et cliquez sur accept
Attrapez le nouveau bloc et amenez le le plus à gauche possible.
Cliquez une fois sur le bloc et à l'aide de la flèche qui se trouve à la fin, ajustez le pour qu'il ait le même temps que staying alive.
Ramenez le curseur au début de l'animation
Allez dans l'onglet parameters
trouvez le curseur head propating scale. Déplacez le cuseur à 4 ou 5 endroits différents du bloc (pas trop rapprochés quand même et à chaque fois modifiez la valeur de head propating scale alternativement dans un sens ou dans l'autre.

Jouez l'animation vous constaterez que d'abord les cases où vous avez fait la modification ont un trait rouge qui s'est créé automatiquement (inutile d'appuyer sur la clé pour créer une image-clé) et que l'animation montre bien que les variations de morphs ont été prises en compte.
Puisque vous êtes dans le mode que j'appelle 3, et que subtrack est toujours sélectionné, cliquez sur l'icône représentant un graphique (deux courbes de 3 points)
Vous pouvez voir la courbe concernant l'évolution de la grosseur de la tête, zoomer dézoomer avec le curseur zoom ou avec la mollette de la souris, voir attraper un point et changer sa valeur par drag and drop. Si le point sélectionné est à l'endroit du curseur de temps, vous pouvez en voir l'effet en temps réel dans le viewport.
Bien sûr, je me doute que faire grossir une tête n'a pas vraiment d'intérêt dans une animation. Par contre, dans l'exemple consistant à donner un aspect plus réaliste avec un mouvement des seins, des fesses et de la chevelure, là, ça peut être intéressant.
Un dernier point: si vous faites un bake to studio keyframes, vous pourrez effectivement voir l'animation avec les variations de morphs. Par contre, il n'y aura pas de courbe de cette variation.


Dim 2 Mai 2021, 16:52
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Ca faisait un petit moment que je n'étais pas venu monologuer. Ça faisait également longtemps que je n'avais pas pu m'échapper de mon domicile. Avant de revenir sur les paramètres d'Animate2, on va parler d'autres choses.

Pour commencer, il est possible de récupérer des aniblocks gratuits, dont ceux de Carnegie Mellon transformés en gfa sur le site de sharecg. Il suffit de s'inscrire pour créer un compte, comme sur DAZ3.com, Renderosity (d'autres aniblocks gratuits à récupérer). Je rappelle que les gfa et les bvh de Carnegie Mellon sont prévus pour V3 ou M3.

https://sharecg.com/v/72544/view/21/DAZ-Studio/PACK-01-ANIBLOCKS-2500-motion-Carnegie-Mellon
https://sharecg.com/v/72545/gallery/21/DAZ-Studio/PACK-02-ANIBLOCKS-2500-motion-Carnegie-Mellon
https://sharecg.com/v/72556/gallery/21/DAZ-Studio/PACK-03-ANIBLOCKS-2500-motion-Carnegie-Mellon

Je n'ai testé que les deux premiers sur les 2500 mais je n'ai pas constaté les tremblements que j'avais avec les bvh. Je pense avoir vu que c'est M.Casual qui avait fait la trransformation en gfa et ce dernier est également l'inventeur d'un script visant à supprimer les tremblements dûs aux mocaps en limitant le nombre d'images-clés.Il est sûr qu'il y aura quelques rectifications à opérer ça et là, surtout après transformation en G8, mais moins qu'avec les originaux en bvh.

J'ai essayé Unity, moteur de jeux 3D, qui a une version gratuite. J'ai trouvé que ça prenait beaucoup de place en mémoire, que l'apprentissage prendrait beaucoup de temps et en plus, il s'est trouvé que d'anciens projets ne fonctionnaient plus sous cette version. Bref, j'ai laissé tomber et je me suis demandé si on ne pourrait pas faire un jeu directement sous DAZ. Sous Cinéma 4D, je sais qu'il est possible d'en faire (d'ailleurs il y a un jeu d'échecs caché) avec Xpresso.

J'ai déjà parlé de Renpy. Parfait pour faire une sorte de diaporama donc une histoire que se déroule image par image. Il existe aussi des jeux avec des images 3D, mais c'est toujours sous la forme d'images (quoique l'on peut parfaitement intégrer des vidéos)

Puisqu'il est possible de modifier des paramètres à la souris, il doit être possible d'obtenir des résultats, c'est un sujet sur lequel j'ai commencé à me pencher. De plus si on assigne une animation de marche à un personnage pour le faire aller au loin, les règles de perspective sont respectées, ce qui évite les transformations mathématiques compliquées. Evidemment, tout se passe directement dans le viewport.

Mon premier problème était de faire bouger un personnage autrement que directement avec animate2. Le problème est résolu grâce aux forums de DAZ3D.com sur lesquels j'ai trouvé un bout de code reliant un bouton à la lecture frame par frame. J'ai une erreur de connexion au cloud. Est-ce que c'est dû au fait que cms ne marche par sur cet ordinateur ou au fait que je n'étais pas relié à internet? Je n'en sais rien. En tout cas, ça ne bloque pas le programme.

Ce n'est bien sûr que le début. Dans l'idée, il faudrait pouvoir diriger un ou plusieurs personnages dans un environnement, de préférence en appuyant sur les touches curseur. Le script permet de dérouler frame par frame une animation en cliquant successivement sur un bouton. Ce n'est évidemment pas l'idéal puisqu'il faudrait un déroulement continu jusqu'à ce que le joueur en décide autrement. Autre point faible, la redistribution (pour ceux qui voudraient commercialiser leur jeu) puisqu'il n'est pas possible d'en faire un exécutable autonome. Pour ceux qui souhaitent faire une histoire qui se déroule image par image, il vaut mieux utiliser Renpy. Il se posera aussi le problème des textures qui, pour les personnages, sont généralement des textures iray et qui sont plutôt dorés dans le viewport. Je n'ai pas testé Filament pour voir ce que ça donnerait et s'il faut beaucoup de temps de rendu.


Pour les autres, Pygame permettrait d'avoir un exécutable, de gérer facilement les touches et d'avoir des images rendues sous iray. Problème, la possibilité de faire faire marche arrière à un personnage (ce qui peut peut-être se gérer en faisant apparaitre image par image (donc une fenêtre d'affichage de moindre définition pour que cela ne pose pas de problèmes pour certains ordinateurs). Pour les animations où le personnage ne se déplace pas dans l'axe Z de la pièce, on pourra faire son rendu en png et afficher image par image. S'il bouge dans l'axe Z de la pièce, ça se complique.

Voici le code relevé sur le forum DAZ:
Code:
// DAZ Studio version 4.15.0.2 filetype DAZ Script

// SceneTimeChange.dsa
//  Demo script to test Scene.timeChanging() and Scene.timeChanged() signals.
//  Load this script into the Script IDE Pane, run it, and press the "Next Frame" and "Previous Frame" buttons.

// Define an anonymous function;
// serves as our main loop,
// limits the scope of variables
(function(){


  //---Build the Dialog---

  // Create a Dialog as a child of the App's MainWindow:
  var wDlg = new DzDialog( MainWindow );
  wDlg.caption = "Scene Time-Change Tester";

  // Add a Layout so that widgets auto-size:
  wLayout = new DzVBoxLayout( wDlg );
  wLayout.autoAdd = true;
  wLayout.margin  = 0;
  wLayout.spacing = 0;

  // Create a TextBox for output display:
  var wTextEdit = new DzTextEdit( wDlg );
  wTextEdit.pointSize = 12;                   // Make its text larger - more readable
  wTextEdit.minWidth  = 500;                  // Force it to be wide enough to avoid word-wrap
  wTextEdit.minHeight = 500;
  wTextEdit.text = 'Press the "Next" and "Previous" buttons...';

  // Create buttons to change the Frame Number:
  wFrameGrp = new DzHGroupBox( wDlg );
  wFrameGrp.insideMargin  = 0;
  wFrameGrp.insideSpacing = 5;
  //
  wPrevFrame          = new DzPushButton( wFrameGrp );
  wPrevFrame.text     = "< Previous frame";
  //  Connect it to the event-processor:
  connect( wPrevFrame, "clicked()", processPrevFrameClicked );
  //
  wNextFrame          = new DzPushButton( wFrameGrp );
  wNextFrame.text     = "Next frame >";
  //  Connect it to the event-processor:
  connect( wNextFrame, "clicked()", processNextFrameClicked );

  // Create a Script-Global event-counter:
  var g_EventNum = 0;


  //---Connect our event-processor functions to the Scene's Time signals---
  connect( Scene, "timeChanging(DzTime)", processTimeChanging );
  connect( Scene, "timeChanged(DzTime)" , processTimeChanged  );


  //---Define the Event-Processor functions---

  function processPrevFrameClicked() {
    var oAction = MainWindow.getActionMgr().findAction( "DzPrevFrameAction" );
    if( oAction ) {
      oAction.trigger();
    }
  }

  //------------------------------------------

  function processNextFrameClicked() {
//     g_EventNum = g_EventNum + 1;
//    var sText = "\n" + "Event "+g_EventNum.toString()+": NextFrame Action @ Frame " + Scene.getFrame().toString();
//    wTextEdit.text = wTextEdit.text + sText;
    var oAction = MainWindow.getActionMgr().findAction( "DzNextFrameAction" );
    if( oAction ) {
      oAction.trigger();
    }
  }

  //------------------------------------------

  function processTimeChanging( oDzTime ) {
    g_EventNum = g_EventNum + 1;
    var sText = "\n" + "Event "+g_EventNum.toString()+": TimeChanging @ Frame " + Scene.getFrame().toString();
    wTextEdit.text = wTextEdit.text + sText;
  }

  //------------------------------------------

  function processTimeChanged( oDzTime ) {
    g_EventNum = g_EventNum + 1;
    var sText = "\n" + "Event "+g_EventNum.toString()+": TimeChanged @ Frame " + Scene.getFrame().toString();
    wTextEdit.text = wTextEdit.text + sText;
  }

  //------------------------------------------


  //---Launch the Dialog---
  wDlg.exec();


// Finalize the function and invoke
})();


J'ai expliqué dans une autre rubrique comment on chargeait un script dans DAZ. Pour le code ci-dessus il faut charger un personnage, une animation adaptée au personnage, le script et lancer le script.


Sam 15 Mai 2021, 08:07
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Explication rapide du script DAZ du message précédent.
Création d'une fonction anonyme (fonction qui n'a pas de nom). Création d'une boite de dialogue avec 2 boutons et une zone de messages. Création d'un compteur pour numéroter les messages. Création d'un signal pour chaque bouton et le timer. C'est la partie la plus importante. On peut faire en sorte qu'un bouton, un timer, etc... génère un signal (pour un bouton, quand on appuie dessus) et soit relié à une fonction de traitement (ici appelée callback). Chaque fois que l'on appuiera sur le bouton, la fonction sera appelée et exécutée. Les fonctions d'un objet permettant un signal sont indiquées dans le méthodes de cet objet. Pour un bouton, les méthodes clicked(), pressed() et released le permettent.
Evidemment, là, c'est du coup par coup.

On peut éventuellement jouer/ arrêter l'animation en remplaçant "DzNextFrameAction" par « DzPlayToggleAction » et une fois le script lancé en cliquant sur « Next frame ». Il n'y a pas de miracles, les actions existantes pour les scripts correspondent à ce qu'Animate 2 peut faire.

Il me paraît plus simple à tout point de vue de faire un jeu (et un exécutable) avec Pygame. Les images seront plus belles puisque rendues en iray et il y aura plus de latitude dans la programmation. Pour cela, il sera nécessaire de faire des rendus image par image. Et il sera possible de gérer facilement l'avance image par image en appuyant sur les touches curseur.

En outre, on trouve beaucoup de scripts pour pygame permettant de jouer à des jeux que seuls les vieux connaissent comme « Radar Rat Race »ou « Pacman ». Il y a une librairie pour gérer la 3D mais qui me paraît bien plus compliquée que de faire défiler une succession d'images que DAZ Studio a déjà géré en 3D. Je n'ai pas d'inquiétudes en ce qui concerne la vitesse d'affichage des images dans pygame. Par contre, je me pose des questions sur la taille complète d'un jeu avec des images rendus en haute définition et au temps de calcul que ça représente. A suivre......


Dim 16 Mai 2021, 08:55
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Au niveau temps de calcul, cela dépendra de la qualité choisie et de la taille de l'image. Au niveau taille, quelle que soit la qualité de l'image, la taille ne devrait pas varier avec la qualité puisque la taille correspond au nombre de pixels de l'image * nombre de couleurs par pixel. Il s'agit d'une indication pas d'une formule mathématique exacte.

Examinons des chiffres réels (j'ai fait les rendus) :
environnement  en jpg:
1980*1080 = 2 138 400 pixels taille 2,33Mo
1280*720 = 921 600 pixels taille 1,03Mo
rapport surface 2,32 rapport taille 2,26
environnement en png :
1280*720 taille 2,19Mo

personnage en png :
1980*1080 taille 1,03Mo
1280*720 taille 528ko
rapport surface 2,32 rapport taille 1,9

Que peut-on dire de ces chiffres ?
Tout d'abord qu'il vaut mieux rendre l'environnement en jpg. On a plus du double en taille pour un rendu en png. C'est normal puisque les couleurs en jpg sont du RGB et en png du RGBA. On ajoute un canal pour le canal alpha (donc de la mémoire supplémentaire pour coder ce canal).

Admettons un jeu avec 30 mn d'animation. A 30 fps ça fera 54 000 images donc 55620Mo (55Go) en 1980*1080 et 28512Mo (28Go) en 1280*720 rien que pour les déplacements du personnage. Évidemment, on pourrait resserrer la taille de la fenêtre de rendu autour du personnage. Exemple : taille d'un rendu en 331*304 82,3ko. Mais l'avantage d'avoir la même taille pour l'environnement et pour le personnage, c'est que le personnage se retrouvera automatiquement à la bonne place. Avec une fenêtre plus réduite, on va gagner sur la taille totale mais il va falloir changer les coordonnées XYZ de l'image pour chaque image et déplacer la fenêtre de rendu, également à chaque image, pas raisonnable.

J'avais fait un film en mpg avec pour taille 1980*1080 = 55 613 138 octets pour 25 frames/seconde. Le calcul donnerait donc 32,7ko par image. 6,28Mo en mp4.

Bref ! On peut très bien faire un mixage de vidéos et d'animations directes dans le même jeu. La vidéo étant l'environnement sur une piste et le déplacement du personnage en png sur une autre. On peut réduire le nombre de fps (images/seconde). C'est le format cinématographique français. On peut aussi réduire la définition. Chacun fera ce qu'il veut en fonction de ce qu'il souhaite mais on comprend rapidement pourquoi les jeux sont en low-poly.

Encore un détail, le rendu en png donne une ombre au personnage qu'il faudra supprimer ou diriger selon le sens réel des lumières de sa scène.

Pour l'instant, tout ça reste à l'état de projet. La nouvelle version de pygame ne lit plus les vidéos et pymovie non plus. J'ai encore 2 pistes dont une que j'ai testée et qui marche mais que je ne sais pas encore réincorporer dans pygame. Donc dans les prochains épisodes, on va revenir sur Animate2 en attendant de voir si c'est possible de faire ça sous pygame.


Lun 17 Mai 2021, 18:11
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Bon, j'ai essayé pyglet pour lire la vidéo. Je n'ai que le son et pyglet est un équivalent de Pygame. Prochaine piste opencv qui permet de lire des flux vidéos même celui de la webcam. Toujours à suivre.....


Côté Animate2, je vais rappeler l'utilité des icônes selon les 3 modes (du moins pour ceux que je connais, ceux qui sont documentés). En ce qui concerne la notice d'animate 2, je suis en train de la refaire, en refaisant des essais, pour qu'elle soit plus compréhensible et la plus complète possible. Donc ça va prendre un certain temps.

Mode 1 (du moins ce que moi, j'appelle mode 1)(quand on met ou pas un aniblock dans l'anitimeline):
icônes du haut de gauche à droite:
bouclage de l'animation ou pas. Une fois lancée et arrivée à la butée, l'animation reprend à l'image 0 jusqu'à ce que vous appuyez sur le carré représentant le stop. L'icône représente une boucle si l'animation va boucler et une flèche avec un trait si elle s'arrêtera à la butée. La butée n'est pas forcément à la dernière image, c'est vous qui décidez.
Triangle avec sommet vers la gauche: rembobinage rapide mais comme on n'est pas sur un magnétophone, retour à l'image 0.
grand triangle: lecture de l'animation. Carré: arrêt de la lecture.
Triangle avec sommet vers la droite: rembobinage rapide vers la butée
petite flèche vers la gauche: retour en arrière, une image par une image, par rapport à l'endroit où était arrêtée l'animation.
Cadran indiquant un chiffre. Ce chiffre correspond à une image. L'anitimeline est graduée en secondes et ce cadran indique l'image dépassant le chiffre des secondes. Première indication, la plage dépend du fps (images par seconde). Si le fps est de 30, le compteur ira de 0 à 29, ce qui fait 30 images. Si le fps est à 25, le compteur ira de 0 à 24, etc... Si vous venez de dépasser le 1 sur l'anitimeline et que le compteur affiche 25, vous êtes à la 55ème image, ce que vous pouvez vérifier en allant voir dans current dans la Timeline (que l'on devrait plutôt appeler keyframes studio pour éviter les confusions). La formule mathématique serait: temps en secondes * fps + valeur du compteur. Si on clique avec le bouton droit de la souris, on est censé en théorie pouvoir changer la fps et même avoir un mode custom où on peut rentrer le chiffre que l'on veut. Donc si je voulais ralentir mon animation en passant le FPS à 1 image/seconde, je mettrai custom à 1, mais ce n'est pas ce qui se passe. Exemple, je charge le walk start pour G8. La timeline m'indique 52 images et Animate 1 seconde + 21 images pour un fps de 30. Si je rentre un fps de 1, le nombre d'images ne devrait pas changer et le temps devrait être multiplié par 30. Or, ce n'est pas ce qui se passe. Le temps de l'animation ne change pas mais il n'y a que la pose aux secondes 0 et 1 qui sont jouées/ On obtient le même résultat si on programme le fps de la timeline à 1. Baisser le temps ne va donc pas ralentir l'animation comme je le croyais mais jouer moins d'images. J'ai donc essayé l'inverse, c'est à dire tirer l'aniblock pour augmenter le temps mais là non plus, ça ne marche pas comme on pourrait le croire. Le fait de tirer un aniblock fait que l'animation reproduit les courbes d'origine autant de fois que le nombre de secondes divisée par le temps de l'animation. Si on veut que l'animation soit doublée, il faut qu'elle dure (1s +21 images)*2 soit 2 secondes et 42 images donc en fait 3 secondes +(42 -30) images. Etirez l'aniblock à 3 secondes +12 images et transférer à la timeline. Visualisez une courbe comme celle de la jambe droite. Vous constaterez que vous avez 2 courbes identiques qui se suivent. Vous auriez étiré plus, la courbe se répéterait autant de fois que de portions 1s+21 images et si l'étirement ne correspond pas à une division exacte, une courbe identique mais tronquée. Visiblement le moyen de ralentir une animation se situe dans le mode 2 quand on modifie le pourcentage. Là, si on met 10%, l'animation va se jouer 10 fois moins vite parce qu'Animate va multiplier le temps pour le même fps en laissant les mêmes courbes qu'à l'origine. A 10%, le temps de l'aniblock est passé à 17 secondes et dans la timeline il est indiqué 511 images soit à peu près 52 images*10.

Petite flèche vers la droite: avance manuelle image par image mais dans le sens de l'incrémentation. Toujours par rapport à la position du curseur et évidemment quand l'animation est arrêtée. Ne dépassera pas la butée.

En fait, les explications ci-dessus sont valables pour les 3 modes (les icônes seront visibles dans les 3 modes.


Mar 18 Mai 2021, 10:57
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
J'ai fait de nombreux essais avec pyglet, opencv, pymedia etc et je n'arrive pas à avoir ce que je veux, donc je vais abandonner l'idée de développer un jeu avec pygame. Par contre, je me rappelle que les vidéos marchaient parfaitement sous Renpy. Renpy est adapté au jeu, il faudrait que j'explore la piste plus à fond. De plus, il est capable de générer des exécutables sous windows, mac, android et même maintenant html5 pour le web, donc piste la plus prometteuse. On ajoutera à ça que la communauté doit être plus active puisqu'une nouvelle version vient de sortir alors que pygame n'a toujours pas résolu ce problème de lecture de vidéo.


Les personnages peuvent aussi être des personnages 3D rendus en png dans DAZ. Ca vous donnera une idée. On peut créer des menus, afficher des vidéos, sélectionner des objets, avoir un tableau des objets ramassés, etc... Bref, tout pour faire un jeu. La nouvelle version commence à gérer les déplacements 3D.

Je pense que l'on peut faire des jeux 3D réalistes. Pour ceux qui ont utilisé les billboards, ce sont des rendus de personnages en png, rendus sous un peu tous les angles. Résultat, ça prend beaucoup moins de temps puisque c'est déjà rendu et vu comme un simple objet. Inconvénient, le fait de rendre les personnages sous tous les angles par tranches de 15° prend beaucoup de place sur le disque. Sous Renpy, comme sur la plupart des jeux, le personnage est en fait la caméra. Il est possible d'opérer des rendus de rotation et de gérer les situations à partir de ça. Il est également possible de différencier des objets que l'on voudrait saisir dans la scène. Pour ceux qui voudraient étudier le problème, je vous conseille d'aller voir sur Youtube les tutos de Random qui vous donneront une meilleure idée de ce qui est possible.

Revenons à Animate2:

Mode2 (mode bloc)
chaussure: sert à modifier la position du pied du personnage, le personnage pouvant être sur des hauts talons. La modification se fait pour toute l'animation et visiblement sans tenir compte de la position du curseur.
Ajoute un aniblock vide à la fin de ceux déjà présent dans l'anitimeline. Cela ouvre la fenêtre pour laquelle dans un exemple où je vous avais expliqué comment enregistrer des morphs dans une animation. Dans cette fenêtre vous pouvez choisir le temps en secondes de ce nouvel aniblock, quitte à régler ensuite l'aniblock pour l'ajuster plus précisément en nombre d'images. 3 types d'aniblocks possibles: no properties pour les morphs et les poses), bone properties pour les blocs full motion et finger properties. Là, il faudra que je fasse des recherches. Premièrement, l'enregistrement des morphs, ça me parait quand même mieux quand le personnage s'anime (donc sur une piste de sub track) qu'à la suite d'une animation, mais pourquoi pas? Deuxièmement, je ne vois pas à quoi correspond full motion, Pour les doigts, pareil il faudra que je fasse des recherches.
Add audio block: ajoute une piste pour la musique, format uniquement wav. Sert aussi pour faire de la synchronisation entre de la parole et le mouvement des lèvres.
Retarget from selected figure, Là aussi il faudra que je me renseigne. On est censé choisir une figure dans la viewport et tout ce que j'ai réussi à faire, c'est à déformer mon personnage et à perdre mon animation. En même temps, sans cliquer sur cette icône, il est possible de modifier les paramètres tanslate et rotation x, y, z du personnage. L'aniblock est en fait basé sur des variations par rapport à un point de départ que l'on peut modifier. Ca peut être pratique.
Menu du dessous:
+: ajoute une sous piste. On a vu que c'était intéressant pour gérer les morphs d'un personnage. On peut aussi ajouter une piste pour un autre personnage, etc..
-: supprime la sous piste sélectionnée (celle qui est en orange)
flèche vers le bas: permet de déplacer la sélection de piste vers le bas
flèche vers le haut: permet de déplacer la sélection de piste vers le haut
cadenas: verrouille la piste sur laquelle on met le cadenas. On ne peut plus la modifier et surtout pas la supprimer par erreur. On la déverrouille en cliquant sur le cadenas
oeil: je le sais pour avoir fait l'essai. Si on a par exemple 2 personnages et que l'on met l'oeil sur la piste d'un des deux, celui-ci ne bouge plus quand l'animation est lancée. Ca permet de ne pas être perturbé dans le cas de personnages multiples dans une animation et de se concentrer sur un seul par exemple.
Zoom permet de zoomer/dézoomer l'anitimeline (même résultat avec la mollette de la souris)
studio: correspond à l'animation de la studio keyframes. Pareil, recherches à faire

Il existe un ascenseur horizontal que l'on peut déplacer pour sélectionner la portion d'animation sur laquelle on veut zoomer/ dézoomer
Tout en bas, le previewer (consulter la notice que j'avais écrit sur Animate 2)


Si on clique dans l'anitimeline, sur une piste (à un endroit sans aniblock), une fenêtre apparait avec les choix suivants (à noter que les choix peuvent être différents pour chaque piste):
add empty block/ ajouter un nouveau bloc. Explications déjà données précédemment.
Add audio block. Ajouter un bloc audio. Explications déjà données précédemment.
Layout: choix entre deux modes: packed ou sparse. En français, qui se suivent ou qui sont épars. Si votre animation n'a que des blocs qui se suivent vous pouvez choisir packed. Dans le mode packed, l'animation commencera automatiquement à l'image 0 de la seconde 0, dans le mode sparse, vous pouvez décaler le bloc pour qu'il ne commence qu'à la seconde 1 et l'image 23 du compteur de l'anitimeline, Ca peut servir par exemple si vous avez deux personnages qui vont se mettre à marcher mais pas démarrer au même moment.
Add start: à renseigner
mask start à renseigner
delete start à renseigner
swap track with selected object. Sert à changer l'ordre des pistes. On sélectionne une piste. Dans scene on sélectionne un objet (par exemple un personnage) on choisit swap track et les positions des deux sélections s'intervertissent dans le tableau des pistes.


Dernière édition par alinal le Lun 21 Juin 2021, 06:56, édité 1 fois au total.



Mer 19 Mai 2021, 08:09
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Je suis justement sur un cas concret puisque j'ai commencé à regarder pour développer un jeu (ou une histoire) sous Renpy. Comme j'en avais parlé précédemment, l'histoire pourrait être celle d'une famille venant d'acheter un pavillon et trouvant dans une cave bien cachée un appareil leur permettant d'être transportés dans le temps ou ailleurs (ceux qui ont regardé Stargate SG1 comprendront de quoi je parle).

Je n'ai pas trouvé de porte des étoiles convaincante. Par contre, il y a une machine à remonter le temps (mais pourquoi ne pourrait-elle pas aller dans d'autres dimensions?). Il s'agit de Time Travel Machine.

Premier problème: elle n'est conçu que pour le transport d'une personne et je veux qu'elle en transporte 3. Je résoudrai le problème par un clonage. Deuxième problème ni Timeline, ni Animate 2 ne semble avoir été créés pour gérer autre chose que des mouvements de personnage. Que ce soit sous l'un ou sous l'autre, il n'y a pas de calcul d'images intermédiaires entre 2 images-clés (à vérifier).

Ce que je voulais, c'était une rotation du cercle autour de la capsule assez rapide. J'ai découvert à ce sujet que sur Animate on ne pouvait pas dépasser 500% d'augmentation de vitesse de lecture. Et puis, je me suis aperçu qu'on pouvait lancer une animation sans modifier quoi que ce soit. En effet, l'auteur a prévu l'animation à l'intérieur même de son fichier dson (lisible avec un éditeur de texte).

Code:
"animations" : [
         {
            "url" : "Metal%20Ring:/data/AcharyaPolina/Time%20Travel%20Machine/TTM%20Rotator/Metal%20Ring.dsf#Metal%20Ring?rotation/y/value",
            "keys" : [ [ 0, 0 ], [ 1, 360, [ "LINEAR" ] ] ]
         },

Si fait un 'play' sous Animate 2 et ce, malgré qu'il n'y ait aucun aniblock dans animate 2, on voit la machine s'animer.

On revient à la notice normale:

Clic droit sur un aniblock
rename. On peut changer son nom
save as new: permet de sauver un aniblock
save for legacy animate: permet de sauver un aniblock mais selon les règles héritées d'animate: pas de morphs, etc. Une fenêtre s'était ouverte m'indiquant les limitations mais elle ne s'est pas réouverte par la suite.

Clic droit dans la barre studio
copy à renseigner
delete à renseigner
Clic n'importe où ailleurs:
bake to studio keyframes: transfère les images-clés d'animate 2 à Timeline (studio keyframes). Sauf les morphs visiblement
create aniblock from studio keyframes. L'inverse. Les images-clés de studio keyframes sont transmises à Animate 2. Il faut savoir qu'on peut récupérer des animations sous 2 formes: soit en tant que gfa (donc plus adapté à Animate 2), soit en tant que bvh (donc plus adapté à studio keyframes). Quoiqu'on charge, même si les courbes ne sont pas visibles sur l'un ou ou sur l'autre, on peut lancer l'animation sur les deux. Par contre, pour faire des modifications, il faut utiliser bake to studio keyframes ou create aniblock from studio keyframes selon le cas pour que l'animation soit visible dans les deux, Eveidemment toute modification dans l'un doit entrainer une mise à jour manuelle dans l'autre.
Studio keys à renseigner
preferences: les préférences générales pour Animate 2:
auto add track for skeletal characters
show previewer
auto hide folder picker
compact previewer blocks
zoom auto switches keyframe/ block mode
base track defaults to packed layout
default length of empty block
create scripts for aniblocks at startup
timer based play loop
color for translate keys
color for rotate keys
color for scale keys
color for morphs/velue keys


Mode 2 (quand on clique sur un aniblock et qu'apparait "double click for keyframes":
Menu du haut:
Les 6 premières icônes et le compteur ont la même signification que dans le mode 1
suite de case avec 4 flèches. Sert à passer du mode 2 au mode 3, le mode 3 servant à visualiser les images-clés. En mode 3, la même icône existe et permet de revenir au mode 2.
une sorte de compteur avec marqué "100%". Il s'agit de la vitesse de lecture. On peut, en modifiant le pourcentage accélérer ou freiner la vitesse de lecture (ne modifie pas le fps car il s'agit de la vitesse de lecture d'Animate 2 et probablement de la vitesse à laquelle l'animation sera enregistrée.
Une autre sorte de compteur avec marqué "0°". Permet la rotation du personnage. Là aussi, la rotation n'aura probablement lieue que dans l'animation sous Animate 2 et pas dans l'enregistrement de cette animation car cela ne fait pas bouger la caméra active.
Deux flèches dirigées l'une vers l'autre. Cliquer dessus fait apparaitre une fenêtre divisée en deux (les essais que j'ai fait ne montrent aucun changement donc laisser sur la valeur par défaut):
off
on
on- left foot
on -left toe
on -right foot
on -right toe
vertical auto
vertical on
deux flèches à la suite. La même fenêtre que précédemment et la même remarque, aucun effet visible donc laisser aux valeurs par défaut:
off
on
on- left foot
on -left toe
on -right foot
on -right toe
vertical auto
vertical on
deux crochets inversés l'un par rapport à l'autre: sert à transformer en deux morceauc à l'endroit où se trouve le curseur. Je pose l'aniblock spin (dans dance) qui comprend 64 images. Je mets le curseur à la dixième image (donc le compteur affiche 9). Je clique sur l'icône considérée. J'ai deux nouveaux blocs. Le premier qui va de 0 à 9 et le second qui comporte le reste de l'animation. Ce qui veut dire que je me suis trompé quand j'ai dit qu'on ne pouvait pas supprimer des images au milieu d'une animation. Avec la possibilité de séparer une animation en deux et la suivante qui consiste à réunir deux animations en une, on peut soit conserver une partie d'animation qui nous intérresse, soit supprimer des images n'importe où dans une animation.
Deux crochets tournés l'un vers l'autre avec des pointillés au milieu. Nécessite de faire un choix des blocs que l'on va transformer en un seul bloc en les sélectionnant avec la touche shift (ils deviennent orange quand ils sont sélectionnés). Un clic sur l'icône et ils sont réunis.
Un carré avec une diagonale: crop aniblock
123 321: l'effet se voit mieux avec un personnage qui marche. Il vaut mieux donc charger forward (1 cycle). Le fait de cliquer sur cette icône va inverser toutes les images-clés. Le personnage va donc marcher à reculons.
X inversion -X: l'essai donne que le personnage se retrouve avec les bras en T et les jambes qui se déforment. Sert surement à rectifier une erreur mais ne doit pas être utile souvent.
Deux flèches en sens inverse, l'une sur fond blanc, l'autre sur fond noir
poubelle. Pas de doute possible retire le bloc de l'anitimeline.
La disquette ( les plus jeunes se demanderont ce qu'est une disquette) permet de sauvegarder son aniblock.
3 traits l'un en dessous de l'autre. Permet d'aligner l'aniblock sélectionné à la position la plus à gauche, donc soit à l'instant 0 du curseur, soit derrière l'aniblock précedent. En mode layout packed, ne sert à rien puisqu'il ne peut y avoir d'espace ni entre les blocs ni entre le premier bloc et l'instant 0 du curseur.
Les clics droits sont les mêmes qu'avec le mode 1.

Mode 3:
Les icônes sont semblables au menu 1 jusqu'à la flèche vers la droite, qui correspond à l'avance image par image. Ensuite, on retrouve la série de cases avec 4 flèches, comme dans le menu 2 qui permet de passer alternativement du menu 2 au menu 3. Signification de ceux qui suivent:
une fenêtre déroulante qui affiche base et de lv1 à lv14. Ce sont des calques. Ca fonctionne un peu à la manière des calques dans les logiciels de traitement photo ou de dessin. En modifiant une image-clé dans un calque, ça ne modifie pas celui qui est dans la base et donc permet un retour en arrière. Par contre, il faudra que je détaille comment on fait. Et quel niveau prend le pas sur les autres.
part ou all
clé + ajoute une image clé
clé 0 remet l'image clé à zéro (et clé – différence?)
clé -
ouvrir/ fermer le graph editor
sauver l'aniblock
cible: retarget from selected figure

Clics droits: même utilisation que menu 1 et 2

A ce stade, je vais beaucoup moins écrire puisqu'il va falloir que je fasse quelques recherches.


Jeu 20 Mai 2021, 13:06
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
J'ai bien sûr fait quelques recherches pour comprendre pourquoi ma machine à remonter le temps avait une animation incorporée et j'ai fini par trouver. Remercions l'auteur pour avoir laissé ses fichiers en clair plutôt qu'en compressé (donc illisibles).

Donc il est tout à fait possible d'enregistrer des variations genre translate, scale, rotate et même morphs de façon totalement invisible.

Je n'ai pas besoin de chercher quel est le codage nécessaire dans le groupe "animations" du code donné précédemment. Chargez ce que vous voulez: un personnage, une primitive ou un prop. Arrangez-vous pour avoir une fenêtre Animate (je pense qu'il faut avoir la version payante).
Sans rien charger (ni aniblocks, ni bvh), décalez le curseur d'animate où vous le souhaitez et modifiez des réglages dans parameters (vous pouvez également décaler la butée pour aller plus loin). Tour est possible, même les morphs, j'ai essayé. Positionnez le curseur encore plus loin et modifiez d'autres réglages (ou le mêmes mais dans l'autre sens). Si vous cliquez sur play, vous constaterez que vos réglages ont été pris en compte, alors qu'il n'y a pas d'aniblocks. De même, les images intermédiaires sont calculées.

Maintenant, on passe à la sauvegarde. File/ Save as /Support Asset/ Scene Asset
Entrez un nom pour votre personnage animé. Un fenêtre va s'ouvrir. Dans Asset directory, choisissez le répertoire dans lequel vous voulez sauvegarder. Les champs Vender Name et Product Name sont facultatifs.

Il vous suffira de double-cliquer sur ce fichier pour le charger dans DAZ ou de le charger par un File/ open

Dans mon cas, cela pourrait poser un problème puisque l'animation étant intégrée, je n'ai pas les moyens de la modifier pour que les rampes lumineuses tournent plus vite autour du globe de la machine à remonter le temps. Mais, comme l'auteur a eu la bonne idée de laisser ses fichiers en clair, il suffît de procéder par étapes:
1/ supprimer dans le fichier la partie animation et sauvegarder ainsi le fichier. J'ai utilisé Notepad++ qui ne modifie pas l'extension du fichier et qui respecte la mise en forme (IMPORTANT)
2/charger ce nouveau fichier et gérer moi-même la vitesse des rotations.
3/sauver ce nouveau fichier.

Au lieu d'avoir des rotations sur 1 seconde, soit 30 images, j'ai les mêmes rotations pou 9 images donc c'est beaucoup plus rapide. L'inconvénient est que ne faisant pas partie d'un aniblock, il ne sera pas possible de sauver l'animation sous forme d'aniblocks et d'en mettre plusieurs de ce type pour une animation plus longue.

Mais j'ai trouvé la solution! Les images-clés (l'endroit où on positionne le curseur quand on fait les modifications) se voient dans la barre studio keys d'Animate. Si on clique avec le bouton droit de la souris, on peut soit copier, soit supprimer l'image clé. J'ai donc une image-clé à 1 de rotation Y pour l'image 0 et une image-clé pour une rotation à 360 pour l'image 8. Si je copie l'image-clé de 0 à la case 9 et la case 8 à la case 17, j'ai une animation à la même vitesse mais double de temps, etc..
Comme j'ai deux objets en rotation, il faut que je procède de la même manière en les sélectionnant successivement dans scene.

Je pense qu'on peut même rendre l'animation plus agréable en faisant tourner les 2 objets en sens inverse et à des vitesses différentes.


Jeu 20 Mai 2021, 17:23
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Il y a deux manières de créer des clones puisqu'il y a deux items de menu dans Create: new node instance et new node instances. Notez le S. Dans les deux cas, il vous faudra sélectionner l'objet à cloner dans scene.

Dans le premier cas, le clone aura les mêmes coordonnées que l'original (donc il ne sera pas visible si on ne le décale pas). Dans le second cas, vous pourrez choisir le nombre de clones que vous souhaitez et ceux-ci apparaitront à des endroits différents.

Quels avantages et quels inconvénients? Avantage: ça occupe moins de place en mémoire. Autre avantage si vous clonez un personnage, vous pourrez créer une troupe qui sera parfaitement synchronisée sur une danse. L'instance n'a pas de squelette accessible, c'est donc l'original qui donne le ton pour tous les clones.
Inconvénients: exemple. Pour un lotissement de maisons, on prend effectivement moins de place en mémoire mais fermer la porte de l'original ferme la porte de toutes les maisons en même temps. Il faut donc faire attention à ce que montre la caméra. Autre point, j'ai cloné ma machine à voyager dans le temps. Comme j'ai une animation incorporée (message précédent) les 3 machines sont synchronisées mais dans le viewport on a parfois un changement de rythme. Est-ce que ce changement de rythme apparaitrait au rendu, théoriquement non! Mais je n'ai pas quelques heures devant moi pour le vérifier. Autre inconvénient, si on change de couleur de l'original, les clones changent pour la même.

J'ai donc créé 3 machines à voyager dans le temps. Evidemment la copie se fait à l'emplacement de l'original et pas de chance, quand on décale une machine, Animate 2 enregistre pour la frame en cours la position mais pas pour les autres frames qui restent avec les coordonnées de base. On a donc un ballet de changement de position pas très harmonieux. Par contre, aux niveau de l'animation avec les rotations, on n'a pas d'à-coup dans le viewport. Il faudrait d'abord positionner chaque machine et ensuite créer une animation par machine.

Conclusion: je vais quand même utiliser le clonage avec new node instanceS. Tant qu'on ne lance pas l'animation et que le curseur est sur la frame 0, les changements de position ne sont pas enregistrés comme des image-clés. Quand à l'animation, je suis quasiment certain qu'au rendu, on ne verra pas de problèmes (méthode Coué).

Reste à choisir une maison. En fait, pour la cave, que je n'ai jamais vu modélisée dans une maison, je choisis plutôt AJ metro. Ca ressemble à une cave et ça laisse suffisamment de place pour y loger 3 machines à voyager dans le temps. Je ferai disparaitre tout ce qui n'a pas à être vus, comme les escalators (soit en les rendant transparents, soit en mettant un plane devant avec une texture bois.

Je n'ai pas fini les modifications de la notice d'animate2 car ça demande du temps pour faire les essais. Ceux qui sont pressés peuvent rechercher les vidéos du concepteur (qui n'est probablement pas DAZ 3D. com) qui s'appelle GoFigure3D:
https://www.youtube.com/channel/UCppmc4Nh3JIVr1vgECHwFJA


Ven 21 Mai 2021, 10:42
Profil
Super Diablotin(ine)
Super Diablotin(ine)

Inscrit le: Lun 7 Déc 2015, 16:53
Messages: 914
Localisation: Hauts de seine
Message Re: monologue à bâtons rompus
Souvent, on a un environnement qui ne plait pas complètement et on a envie de retirer certains objets. Mais, la plupart du temps cet environnement a été enregistré au format OBJ et les objets regroupés au sein d'un container plus gros et qui ne permet pas l'accès aux objets qu'il contient (donc pas la possibilité de les supprimer).

Pour mon exemple, AJ Metro a des escalators qui ne sont pas vraiment utiles au sein de ce qui est censé représenter une cave. En allant dans surface (colors) on voit le nom "escalators", il suffit donc de trouver le réglage opacity strength et de le mettre à 0 pour que l'objet devienne transparent. C'est moins bien que de le supprimer puisqu'il consommera de la mémoire mais on n'a pas le choix. Parfois le nom (en anglais ne renseigne pas vraiment surtout si on ne maitrise pas l'anglais). On peut diriger la caméra dessus et sélectionner tour à tour chaque élément de la liste et baisser opacity strength à 0% jusqu'à ce qu'il disparaisse, Bien sûr si ce n'est pas l'élément concerné, on n'oublie pas de le remettre à sa valeur d'origine (en général 100%). On peut également avoir une piste du nom en allant jeter un oeil dans le répertoire des textures. Pour retirer la caisse dans AJ Metro, il fallait agir sur wood3 et sheet3. Je peux retirer également wagon et wagonglass. Vérification faite, 3 machines tiennent. Pour l'éclairage, on verra plus tard. Si la caméra est bien placée, on ne voit pas qu'il s'agit d'un quai de métro et c'est tout à fait adapté pour une cave.

Question d'organisation. Il faut que je vois si je peux trouver tous les éléments dont j'aurai besoin. Un manuel expliquer le fonctionnement des machines, ça peut aider pour un scénario cohérent.

Et puis, on retombe toujours sur les mêmes problèmes, à savoir qu'un développeur qui va créer une maison ne va pas forcément gérer le paysage autour. On peut bien sûr créer son terrain soi-même y ajouter des arbres, une route, un ciel, etc.. Sur le site de Dany Chacornac, à la rubrique grass kit, vous découvrirez comment créer un terrain avec de l'herbe. Tout fait: rare's stone face morph collection. Paysage avec ciel, arbres, herbe et vue sur 360 degrés. De quoi poser une maison.

On a donc la cave, le paysage de départ, il faudra ajouter des buissons contre la maison pour la porte masquée de la cave. Le scénario dans Renpy est donc le suivant: arrivée dans la maison nouvellement achetée. Scènes dans le jardin et dans la maison. Découverte de la porte cachée vers la cave et découverte des machines à remonter le temps. Lecture du manuel et décision de les utiliser. A ce stade, menu Renpy avec éventuellement hotspot pour aller vers un temps ou une dimension différente et histoires différentes à chaque fois.


Sam 22 Mai 2021, 08:43
Profil
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 84 messages ]  Aller à la page Précédent  1, 2, 3, 4, 5, 6  Suivant


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 5 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Sauter vers:  

3D-DIABLOTINE.COM © 2002 - 2018 | Reproduction totale ou partielle interdite



Powered by phpBB © phpBB Group | Translated by phpBB.fr © 2007, 2008 | Designed by Vjacheslav Trushkin