3D-Diablotine.com
Nous sommes actuellement le Jeu 5 Aoû 2021, 16:17




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
Il parait qu'il existe des scripts pour transformer des instances en obj. Personnellement, je n'en vois pas l'intérêt puisque l'intérêt des instances est de consommer moins de mémoire. Si c'est pour les retransformer en objets, autant mettre des copies directement dans la scène, sachant que le problème du départ est que l'exportation des instances ne se fait pas vers d'autres logiciels.  

J'ai testé  le nouveau plugin daz to c4d. Je dis nouveau parce qu'il semble que DAZ l'a profondément modifié depuis la dernière fois que je l'ai testé. Bon point, l'export vers fbx, les geo graftings sont pris en compte sans parasite. Bon point également l'ik automatique. Pas pu tester la transformation des textures vers un moteur de rendu externe vray, corona, etc....

Par contre, C4d a tourné dans le vide pendant l'exportation. On ne sait pas non plus où est sauvegardé le fichier d'export  (donc récupération mémoire impossible). Il vaut mieux exporter en fbx  manuellement, on peut choisir le dossier de stockage et il suffit de sélectionner le personnage dans le gestionnaire d'objets pour bénéficier du plugin daz/c4d. Rien n'a changé en ce qui concerne les yeux, ils deviennent blancs et les options degraded obligatoires font qu'on perd en définition au niveau des textures et des jointures comme les coudes ou les genoux.


Mar 25 Mai 2021, 19:44
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
Comme je l'ai déjà dit, DAZ ne laisse exporter au format fbx que dans la mesure où les cases "allow degraded scanning" et "allow degraded scaling" sont cochés donc perte de définition de la texture et du nombre de polygones. Pour la réduction du nombre de polygones on s'en aperçoit surtout aux genoux et aux coudes au moment de leur pliure.

Pas question de ruser en faisant un script (j'ai essayé), ça ne marche pas non plus. Après, tout dépend de la définition que l'on veut avoir dans d'autres logiciels comme C4d. Il faudra rectifier certaines textures comme les yeux, les eyelashes et probablement pour la version 8.1 pour le cou.

Je reviens sur la longueur d'un aniblock que l'on peut ajuster grâce aux deux flèches autour de l'aniblock.La longueur d'un aniBlock peut être modifiée de manière non destructive en saisissant une des poignées située à chaque extrémité et en la faisant glisser le long de la timeline. Lorsque vous changez de longueur, les aniBlocks vers la droite se déplacent pour ajuster pour sa nouvelle longueur. Lorsque vous prolongez un aniBlock au-delà de sa longueur par défaut, il retournera (et fusionnera) au point de départ de son animation. Afin de vous aider à garder la trace de la longueur par défaut de l'animation d'un aniBlock, chaque boucle est séparée par une ligne verticale noire. Note: En clair, en tirant la poignée vers la droite on clone l'aniblock, complètement si on arrive au trait noir, partiellement si on s'arrête avant (dans ce cas l'animation s'arrêtera sur l'image où l'on place la poignée), A gauche, c'est comme si on supprimait les images de fin progressivement.

ATTENTION : Il y a une particularité. Si vous faites un bake to Studio keyframes après avoir modifié la longueur d'un aniblock en tirant dessus, les courbes seront reportées dans la Timeline et seront bien une reproduction des courbes originale. Par contre, si vous faites l'inverse, c'est à dire un bake to studio keyframes et ensuite vous étirez l'aniblock, le temps va augmenter mais en restant sur la même image que la dernière.


Mer 26 Mai 2021, 15:01
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
alinal a écrit:
On ne sait pas non plus où est sauvegardé le fichier d'export  (donc récupération mémoire impossible).

En fait, en regardant mes répertoires, j'ai pu constater la création du répertoire temp3D (je ne m'en rappelais plus). Ce qui n'empêche que le fichier de transfert portant toujours le même nom, il y a risque d'erreurs.

J'ai passé un peu de temps à voir si on pouvait faire une animation avec des personnages au format obj. On récupère le personnage d'une frame en le sauvegardant au format obj pour le réinjecter dans une animation (juste pour voir si je pourrais éviter la dégradation des polygones et des textures). Ce fût très compliqué même sur quelques frames. Ca ne résout pas le problème des yeux blancs, des eyelashes et du reste. Si un jour, je veux faire une animation en low-poly sous C4d, j'y penserai.

J'ai ensuite tenté de voir ce que donnerait un rendu "viewport". Pas concluant! Parce que si on gagne en rapidité de rendu on perd le bénéfice des shaders iray, c'est à dire transparence, effets metalliques etc..
En définitive, je reviens sur des animations entièrement réalisées sous DAZ et sous iray. Je vais seulement essayer de baisser le temps en réduisant le nombre de samples. Je ne suis pas sûr qu'une histoire ou un jeu ait besoin d'une résolution de 1920 X 1080 et de 2 heures de rendu par image.

Dans le principe, le jeu tient la route (rassurez vous il ne sera jamais dans le commerce, c'est un exemple). Découverte des machines à remonter le temps et l'espace, choix dans un menu de différents scénarios possibles. Les scénarios (je sais que ce n'est pas le pluriel de scenario en italien) pourront s'adapter à l'objetheque dont chacun dispose, sachant que c'est dans le domaine de la science-fiction que l'on en trouve le plus.


Mer 26 Mai 2021, 20:37
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
Avec le beau temps et le déconfinement qui reviennent, ça va être dur de passer beaucoup de temps devant un ordinateur.

Juste pour dire qu'en ayant réduit les samples à 300 (5000 par défaut) et la résolution à 1280*720 pour une scène comme celle pour laquelle je vous ai mis un lien sur le rendu (post précédent), le rendu dure environ un quart d'heure. A ce niveau, ça devient raisonnable. Pas constaté de grandes différences avec le rendu durant 2 heures et je suppose qu'on en verra encore moins avec un rendu vidéo.


Jeu 27 Mai 2021, 16:17
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 n'avais pas pu tester la piste audio d'animate, n'ayant pas de fichier wav sous la main. Cliquer sur le haut-parleur lance l'explorateur de fichiers et le but est de charger un fichier wav. Comme je le soupçonnais, le bloc créé est automatiquement ajusté à la longueur du fichier (en secondes). J'ai vu des vidéos de synchronisation des lèvres avec mimic mais je ne me suis pas attardé dessus pour l'instant.

L'adresse où j'ai récupéré le fichier wav: http://wav.bruitages.net/


Jeu 27 Mai 2021, 17:03
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
Si vous avez fait l'essai, vous avez pu constater que la piste audio était de couleur mauve pour la différencier d'un aniblock d'animation.

Revenons-en à mon projet qui va sans doute durer plus longtemps que prévu. Il faut donc une maison dans un environnement paysager et une cave.

Trouver la maison a été plus difficile que je ne le pensais (c'est sans doute pour ça que dans le scénario précédent j'avais choisi un appartement.

Si on peut facilement trouver des maisons modelisées (je n'ai pas l'intention en plus de modéliser moi-même les objets et personnages de mon histoire), il est difficile d'en trouver une à son goût. On retrouve toujours les mêmes contraintes pour celui qui modélise: meubler le moins possible pour s'éviter de la modélisation et ne pas utiliser de shaders iray qu'on n'aurait pas fabriqué (pour des raisons de copyright)

J'ai donc choisi une voie plus longue que prévu: choisir la maison et la meubler au fur et à mesure, quitte à refaire les rendus plusieurs fois jusqu'à ce que je juge que telle ou telle pièce est définitivement meublée. Comme je ne vais pas attendre des lustres pour des rendus provisoires, je vais diminuer le nombre de samples au minimum nécessaire pour que l'image soit rendu sans tenir compte de sa qualité. L'image aura donc un nom, ce qui permet de développer en avance et parallèlement sous Renpy. Le remplacement de l'image provisoire par l'image définitive n'obligera pas à revoir le développement Renpy.

J'ai donc choisi pour la maison Long island mansion de collective 3D parce qu'elle possède une cave. Au lieu d'une porte cachée derrière un buisson pour accèder à une cave, on peut donc changer par une vraie cave comportant une trappe dissimulée sous une caisse et donnant accès à une seconde cave où se trouveraient les machines à remonter le temps.
https://www.daz3d.com/catalogsearch/result/?q=long+island+mansion

Pour l'environnement, j'ai choisi iray world plus: https://www.daz3d.com/iray-worlds-plus
Vue sur 360 degrés, ciel, et réglages nombreux. Il faut forcément un paysage pour poser la maison et les scènes extérieures.

Pour la seconde cave, AJ metro: https://www.renderosity.com/rr/mod/bcs/aj-metro/121034/


Sam 29 Mai 2021, 08:26
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
Le but du jeu, c'est quand même de ne pas consommer trop de ressources qui prennent de la mémoire et du temps de rendu. Pour l'extérieur, on a donc IRW+1skydome def d'iray world plus pour le paysage et long island motion 01 pour la maison.

Comme systématiquement les objets s'installent en 0, 0, 0, la maison se retrouve dans les arbres. On utilise donc le translate Z (profondeur) pour la ramener en avant. La maison étant de style bourgeoise (3 étages+ une cave)on peut faire en sorte de faire disparaitre les barrières (fence) par un delete.

La maison n'est pas seule puisqu'il y a également un garage à quelques mètres. Les voitures n'arrivent pas à travers champs logiquement, donc je vais donc faire reposer la maison et le garage sur un socle, en fait un plane que je démarre à 50m de dimension (primitive plane). Je l'ajuste ensuite avec les translate X, Y, Z et les scales X et Z pour qu'il soit sous la maison et le garage et qu'il masque l'herbe.
Résultat, il faudra que j'utilise translate Y pour surélever un peu le garage qui était trop enfoncé dans le plane. En même temps, ça fournit une sorte de plancher pour le garage.

Pendant que j'écris ça, je réalise que le plane va perturber l'intérieur de la maison. Ceci dit, il y a des rectifications à apporter à chaque fois que l'on change de plan. Là, on cherche à améliorer les plans plans extérieurs. Quand on fera des plans à l'intérieur de la maison, on retirera tout ce qui prend de la place mémoire et ralentit le rendu (ce n'est pas parce qu'un objet n'est pas dans l'axe de la caméra qu'il n'ajoute pas de temps de calcul, le meilleur moyen, c'est de supprimer tout ce qui est inutile à la scène).

Un autre plane à 90° du premier sera nécessaire pour représenter la route qui amène à la maison. Je le renomme "route" afin de ne pas rechercher plus tard à quoi correspondait chaque plane. Je le fabrique pour 10 m*10. Je le règle avec le scale Z pour augmenter sa longueur et j'utilise les translate X, Y, Z pour qu'on ne voit pas la jointure entre les deux.

Il ne reste plus qu'à ajouter les personnages: la mère et les deux enfants du projet précédent et une voiture. Cette fois-ci, vu la propriété qu'elle a acheté, la mère est suffisamment riche pour avoir une voiture de sport, du moins une voiture plus luxueuse que la coccinelle rouillée du premier projet. D'ailleurs, il est plus facile de trouver des voitures de luxe modélisée que des voitures rouillées.

Que vois-je sur le rendu? Que le bitume de la route reflète le ciel, ce qui est fort improbable. On sélectionne les deux planes l'un après l'autre et dans surfaces on met "glossy layered weight" et "glossy refeclivity" à 0. Maintenant ça roule.

Il se trouve qu'au départ, j'avais choisi IRW +1SkyDome-Gr+Tr avecdes arbres. Mais d'une part, le sillon concentrique au centre de la scène n'est pas esthétique et d'autres part il oblige à surélever les planes un peu haut pour qu'on ne voit pas l'herbe. Conséquence les fenêtres qui servent à éclairer la cave diminuait de moitié leur surface.

Je vais donc implanter des arbres manuellement avec beautiful nature trees: https://www.daz3d.com/beautiful-nature-trees
Si on plante 2 fois le même arbre et que l'on opère une rotation Y on a l'impression d'avoir 2 arbres différents.
Pour que cela soit plus réaliste d'une maison bourgeoise, je vais faire en sorte que la route d'accès soit bordée d'arbres.

Comme je l'ai déjà dit, je m'évite le travail quand je peux. Comme voiture, j'ai choisi une voiture de sport (la famille est censée être riche vu la maison) et basse pour que l'on ne voit pas les personnages dedans quand ils arrivent. Un rendu et un dialogue de gagné sans avoir à positionner les personnages assis dans la voiture, ce qui n'aurait pas été le cas avec une décapotable.

J'ai choisi Astro Sport Car https://www.daz3d.com/astro-%20sport-car parce qu' en plus elle a les portes qui s'ouvrent.
Comme toujours, on lance l'aux viewport et on choisit la même caméra que le viewport, ce qui permet de voir quelle est la zone exacte prise en compte pour le rendu.


Les nuages que l'on voit au rendu ne se voit pas dans le viewport quand on place les éléments. Reste à améliorer le terrain avec des arbres, des statues, que sais-je? Ceci explique pourquoi j'enregistre et je rends la scène qui pourra déjà être utilisée dans Renpy mais que j'améliorerais au fur et à mesure.


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



Dim 30 Mai 2021, 16:40
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
Pour les scènes d'intérieur, je meublerai aussi au fur et à mesure. Je compte récupérer une des caisses en bois de New brooklyn appartment pour qu'elle masque le trou dans la première cave qui donne un accès à la seconde cave dans laquelle se trouve les machines à remonter le temps.

Donc il va falloir que je creuse un trou dans le sol. Chez Renderguide.com, j'ai repéré un tuto qui s'appelle "DAZ3D extract sub parts of a big object to reuse inside a new scene". Je vais préalablement faire un essai sur une primitive plane. Bien qu'il ne s'agisse pas de récupérer un élément qui est une sous-partie d'un élément plus gros, c'est le même principe.

Je crée donc une primitive plane de 10m*10. Au départ, j'ai cru qu'il était nécessaire d'augmenter le nombre de subdivisions parce que c'est elles qu'on supprimerait et mes essais ont démontré que non. Je laisse donc le nombre de subdivisions à 10.

Le tuto me dit qu'il faut utiliser l'outil geometry editor que l'on trouve dans le menu tools. J'oriente le plane face à moi dans le viewport. Je le sélectionne dans scene. Je clique avec le bouton droit sur plane. Selection type doit être à polygone selection. Selection mode doit être à marquee selection. Avec la souris, par drag and drop, j'entoure un des carrés de subdivision du plane (ça ressemble à l'outil de sélection rectangulaire que l'on trouve dans les logiciels de traitement photo). Je relâche, il est sélectionné et apparait en marron clair. Je clique avec le bouton droit. Dans geométry editing, je choisis delete selected polygon. J'ai désormais un plane avec un trou carré dedans.

Comme je le soupçonnais, si on veut faire un trou plus petit, il faudra augmenter le nombre de subdivisions puisque ce sont des subdivisions que l'on peut sélectionner.

Pas de chance, le seul emplacement que l'on peut sélectionner dans la cave est celui de l'écoulement de l'eau et le trou que ça laisse est trop petit pour que la mère puisse s'y glisser. Ce qui veut dire qu'il faudra créer un parallélépipède rectangle de même taille pour remplacer le sol d'origine. Le parallélépipède est un cube qu'on a diminué en taille. Il faut s'y prendre à plusieurs fois pour creuser le trou. Attention j'ai réussi à planter DAZ avec 1000 subdivisions.

Première chose: j'ai chargé uniquement Long island mansion et j'ai positionné la caméra pour regarder dessous.
Ensuite dans scene, j'ai sélectionné house puis basement floor. J'ai cliqué sur l'oeil pour faire disparaitre le sol et j'ai fait un dessin rapide des différentes pièces. En regardant dans surfaces, on voit qu'il y a plusieurs textures car le solest composé de plusieurs parties. Une partie est recouverte de moquette et la majorité des autres d'une texture ressemblant à du ciment.

Le parallélépipède remplaçant le sol sera donc un cube que l'on va modifier. Je crée donc un cube de 10m de côté avec 100 divisions. Celui-ci englobe la maison sur l'axe des Z. Il n'y a donc qu'en X (pour la largeur de la maison) Y (pour l'épaisseur du sol) qu'il y aura des modifications à faire pour les échelles (scale). Pour X, à la louche, c'est 182%, pour Y 2%.
Dans un premier temps, on laisse invisible le sol original de la cave (basement floor) pour ajuster notre parallélépipède. Ca tombe bien au niveau de l'escalier on a un trait blanc indiquant où il faut s'arrêter. Tanslate Y réglé on est à -203,62. Pour cela, il fallait ajuster la caméra de façon à "entrer" dans la cave.

Dans un premier temps, j'utilise "drag selection" de "selection mode" de geometry editor pour verifier si mon nombre de subdivisions est suffisant. Je traine la souris sur le parallélépipède (je suis toujours à l'intérieur de la cave pour cela). Visiblement, c'est suffisant donc je repasse en mode "marquee selection". Après avoir délimité l'endroit où je vais creuser mon trou, je passe la caméra en top pour voir le parallélépipède sur le dessus. Il faut que je creuse mon trou un peu écarté des mur pour poser en suite la caisse dessus.
On peut reprocher à l'outil geometry editor de ne pas fournir de renseignements sur les dimensions de la sélection. Tant pis! J'agrandirais si nécessaire.
Nouveau positionnement de la mère au-dessus du trou qui visiblement ne passera pas. J'écarte la mère (sinon l'outil geometry editor la prendra en compte) je resélectionne mon cube modifié et j'agrandis le trou avec la caméra en top. Comme le trou peut ne pas être totalement rectangulaire, je peux rectifier en plusieur fois en utilisant le mode drag sélection pour rendre le trou rectangulaire.


Je sauve la maison en tant que scène car pour économiser de la mémoire et du temps de rendu, on n'a pas besoin de la voiture, du dôme et des routes. A la limite, je supprimerais même le garage de la série de scènes intérieures.


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



Lun 31 Mai 2021, 08:17
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
L'explication pour faire un trou dans un cube est tout à fait valable pour d'autres objets, Vous pouvez tout à fait faire des trous dans des vêtements ou autre chose. Il faut sélectionner le vêtement dans scene, passer l'affichage en mode wired texture shaded (parce que c'est le plus pratique pour voir les polygones), que l'outil geometry editor soit activé et que la selection mode des polygones soit en drag selection.

On applique ensuite une texture de ciment sur le cube. On n'a pas besoin d'ajouter la seconde cave dessous. Dans les rendus, on ne vois que les personnages descendre les escaliers par le trou et dans AJ Metro (la seconde cave), on fera un rendu des personnages devant les machines sans que l'escalier soit visible.

Pour l'escalier, on sélectionne dans scene "second floor stairs" et on fait un edit / duplicate/ duplicate node. On a une copie de l'escalier que l'on peut renommer escalier secret et qu'on va descendre en Y à -1300 pour le voir sous la maison. On va dans surfaces et on met cutout opacity à 0 pour les barrières et les éléments non indispensables.
Ensuite, on le remonte avec translate Y et on l'ajuste à peu près au trou avec translate X et Z. On remonte la caméra pour voir la bonne partie de la cave et on finalise l'ajustement.
J'ai été obligé pour cela de passer l'épaisseur du sol à 4% au lieu de 2 et de réajuster le sol de la cave par rapport au reste.

Avec une caméra au dessus du personnage, on le voit entrer dans un trou noir. Face à lui, on voit l'escalier et les côtés de l'escalier en transparent, Il sera donc logique de faire le rendu en png, de remplacer le transparent par du noir et de sauvegarder en jpg.


Mar 1 Juin 2021, 14:22
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
Une constatation en passant, la mise en route de l'outil Geometry editor perturbe les geo graftings. Il suffit de dé-sélectionner geometry editor pour que tout revienne à la normale. Comment on fait pour dé-sélectionner geometry editor? On sélectionne un autre outil!

A ce stade, je pense qu'on a 4 environnements de départ:
1/ la maison avec le garage et le paysage sous dôme
2/l'intérieur de la maison (sauf la cave) qu'il faudra meubler. Il faudra également voir ce qui est visible des fenêtres, ce qui donne une idée des éléments à supprimer.
3/la cave de la maison (dans laquelle on vient de faire un trou) et qui n'a pas besoin du garage, la voiture, du dôme, etc..
4/ la seconde cave avec les machines à remonter le temps.

Justement, parlons-en.
J'ai pratiqué de nombreux essais pour tenter d'enregistrer l'animation dans un aniblock sans succès.
La première chose à faire est de retrouver les fichiers Time Travel Machine.dson et Time Travel Machine.png. Ils sont dans le répertoire véhicles.
Renommer ensuite ces deux fichiers comme Time Travel Machine2 (sans changer leur extension)

On édite ensuite le fichier Time Travel Machine2.dson avec Notepad. Notepad conserve l'extension quand on fait un save mais n'a pas dson comme extension pour un save as. On supprime la partie animation qui se trouve à la fin du fichier et qui est celle-ci:
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" ] ] ]
         },
         {
            "url" : "Metal%20Ring2:/data/AcharyaPolina/Time%20Travel%20Machine/TTM%20Rotator2/Metal%20Ring2.dsf#Metal%20Ring2?rotation/y/value",
            "keys" : [ [ 0, 0, [ "LINEAR" ] ], [ 1, -360, [ "LINEAR" ] ] ]
         }
      ]

Il faut ne pas oublier de prendre en compte la virgule juste avant "animations"

Une remise à jour de la base de données du Content Directory (Content DB maintenance/ Re import data) devrait afficher la Time travel 2.
Pourquoi je travaille sur une copie modifiée de la machine? Parce que l'animation était intégrée dans le dson et donc fort peu modifiable. En extrayant l'animation, on va pouvoir créer la sienne comme on le souhaite.

On charge un exemplaire de Time Travel Machine2 en double-cliquant dessus .
Si on lance animate, on voit que la machine ne tourne plus.Si elle tourne c'est que vous avez fait une erreur quelque part.

C'est là que les choses se corsent comme disais Tino Rossi.
La machine a deux parties rotatives: TTM rotator et TTM rotator2.
Dans scene on clique sur TTM rotator. Dans Animate, les pistes automatiques c'est pour les personnages. Pour les objets, il faut se les créer

Dans Animate2, on clique sur + (celui du +-fleche bas fleche haut) et miracle une piste se crée. On clique avec le bouton droit sur la piste et on choisit add an empty block. On choisit Motion properties (parce que ça me semble le plus adapté) et on met le temps à 2 secondes.

Pourquoi 2 secondes? Parce que j'ai fait des essais et contrairement à ce que disais l'auteur dans sa notice, si on sauvegarde un anibloc de quelques images, il fera systématiquement une seconde quand on le rechargera, ce qui pose un problème puisque des image-clés seront vides.

Je vais donc créer une rotation et si elle fait moins de 1 seconde, je recommencerai pour dépasser la seconde.
Je clique sur la barre bleue et ensuite je double-clique pour passer en mode keyframes (celui où l'aniblock est composé de cases)

Je positionne le curseur sur la case 0. Dans paramètres, je joue sur rotate Y pour finalement le remettre à 0. Pourquoi? Parce le fait de modifier la valeur génère une image-clé et que cette image-clé devra avoir la valeur 0.
Je passe à la case 1 et je donne la valeur 30 à Y rotate. Etc 60 pour la case 2. On avance de 30 par case jusqu'à 360. ATTENTION de ne pas vous faire perturber par la barre studio qui fait disparaitre son image-clé quand on avance le curseur.

Sauf erreur de ma part le retour à 0 est dans la case 12. Si vous revenez un peu en arrière, vous pouvez constater que certaines valeurs sont devenues négatives. En fait -30 correspond à 330 (360-30). J'ai fait un copy/paste des valeurs pour m'éviter du boulot (du moins pour la seconde zone) car on recommence la série +30 avancement d'une case jusqu'à ce qu'on dépasse le 1 correspondant à 1 seconde. Evidemment, on termine la série sur un 0.

On revient sur le menu précédent (celui où il y a la poubelle) en double-cliquant sur la piste. On clique sur l'outil split (voir notice ou se servir des infobulles). Le bloc est divisé en deux. On clique sur le deuxième pour le sélectionner puis sur la poubelle.

@@On clique sur le bloc restant avec le bouton droit. On choisit save as new avec TTMrotate comme nom de fichier et on le sauve de préférence dans un répertoire aniblock pour qu'il soit vu. On efface tout (new).
On charge une machine Time Travel Machine2. Dans scene on resélectionne TTM rotator. On attrape TTMrotator gfa et on l'emmène sur la piste. On lance l'animation.
Il vaut mieux qu'Animate ne soit pas docké sinon ça pose des problèmes. On vérifie que tout se passe bien. Pour ma part, je constate qu'il y a un problème avec les dernières images. Je
vais donc passe en mode keyframes pour modifier et sauvegarder de nouveau si nécessaire. Ce qui me permet de découvrir que je n'ai pas fait d'erreurs mais qu'Animate m'a sauvegardé une animation de 2 secondes malgré mon split (j'avais eu le même problème avec une seconde). Il me suffit de mettre la butée derrière la dernière image-clé et l'animation est correcte.

Comme je suis d'un naturel perfectionniste, j'ai fait des essais complémentaires pour chercher à comprendre et j'ai fini par trouver la solution. J'ai la flemme de recommencer toute l'écriture du texte, donc j'ai mis deux arrobases à l'endroit où les choses devraient changer.

Après le split et le delete du deuxième aniblock, on fait un "bake to studio keyframes" ce qui transmettra la courbe à Timeline. On delete ensuite l'aniblock et on fait un "create aniblock from studio keyframes". On sauve l'animation (save as new). La nouvelle animation fait la bonne longueur. Ce qui veut dire qu'en reprenant le processaus au début, ça marche probablement en créant un aniblock vide de 1 seconde et en se contentant d'images-clés augmentant de 30 degrés toutes les images.

On peut ensuite faire la même chose avec TTMrotator 2 et faire tourner dans le sens inverse, c'est à dire en partant de 360 et en diminuant de 30 degrés à chaque image.

Sachant que c'est le rendu qui prend le plus de temps, dans mon scénario, les 3 personnages sont dans la deuxième cave dans 3 machines dont 2 clonées, ce qui fait que l'animation appliquée à l'original va se répliquer automatiquement (je l'espère, je n'ai pas essayé) aux deux autres. Si mes calculs sont exacts ça faisait 9 images à rendre. Avec un logiciel de traitement vidéo, on copy/paste la séquence des rendus, ce qui permet d'allonger le temps d'animation sans prendre autant de temps qu'un équivalent en rendu et on peut également régler la vitesse d'animation en choisissant le temps que l'on accorde à chaque image.

Si vous avez des questions sur ce que j'ai écris, je serai heureux d'y répondre.


Mer 2 Juin 2021, 07:18
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 vérifié et dans le cas de clonage, l'animation appliquée à l'original est bien transmise aux clones. Pour la machine à remonter le temps, il y a trois éléments qui peuvent s'animer: les deux rotators et la porte qui doit se fermer avant que les machines se mettent en route,

J'ai pensé à un effet intéressant. Faire disparaitre les machines et les personnages progressivement pour faire un effet FX. On peut le faire avec le cutout opacity. Malheureusement, il n'est pas accessible par Animate2, ce qui signifie qu'il faudra rendre image par image en baissant soi-même le cutout opacity. Pour cela, il faudra sélectionner dans surfaces et dans scene tous les éléments concernés.

Pour la machine, ça marche (ne pas oublier de sélectionner dans scene et dans surfaces les rotators, doors etc..). Quand le cutout opacity est à 0, on a l'impression qu'il reste une sphère dans le viewport mais elle n'apparait pas au rendu.

Côté personnage, c'est un peu plus compliqué. Malgré qu'il existe un réglage cutout opacity pour les cheveux et les chaussures, celui-ci n'a visiblement aucun effet. Il faudra ruser et carrément les supprimer de la scene quand le curseur de cutout opacity est au milieu. Il m'est difficile de préciser un chiffre puisque le réglage agissant sur plusieurs éléments à la fois, il n'affiche plus de valeur. Il faudra vérifier pour chaque personnage, les vêtements et cheveux qui sont insensibles au cutout opacity.

Le cycle d'animation deviendrait donc celui-ci:
chaque personnage prend possession de sa machine dans la cave
animation de la fermeture des portes suffisamment long pour que l'on voit quelque chose (rendu images par lot)
rendu d'animation des rotators (rendu images par lot également)
rendu avec cutout opacity et disparition des chaussures et cheveux à 50%
Ensuite on utilise un logiciel de traitement vidéo pour ajouter ces images les unes derrière les autres avec sans doute des copier/coller pour le troisième point. Et un ralentissement pour le quatrième.
Faire de préférence ces rendus en png. La transparence permettra d'avoir sur une piste l'environnement (dans un premier temps la cave mais également chaque lieu d'arrivée puisqu'il faudra repartir) et sur une autre la séquence que j'ai décrite. D'ailleurs, à l'arrivée, on a la séquence inverse: la machine et les personnages deviennent progressivement opaques, la machine tourne et finit par s'arrêter avec un certain temps, les portes s'ouvrent et les personnages découvrent leur nouveau lieu. Ce seront les mêmes images qui serviront puisque l'environnement est rendu à part.

Côté Renpy (voir les vidéos de Random sur Youtube pour les explications). Quelques images ou animations pour que les personnages découvrent leur nouvelle maison et par curiosité poussent la caisse dans la cave donnant accès aux machines. On utilise le cycle d'animation ci-dessus et on fait apparaitre un menu laissant au joueur le choix d'aller à un endroit ou à un autre.

Bien sûr, je ne pense pas que tout le monde soit intéressé par ce scenario. Le but était de montrer quelques astuces. Comme je vous l'ai dit ce fil sera plutôt un vrac. Il est clair que certaines formes de jeux sont possibles avec Renpy comme naviguer à travers des pièces (ou des environnements) et récolter des objets qui serviront à d'autres moments à faire des choses.

Evidement, on n'a pas la puissance d'un Unity ou d'un Unreal Engine mais le temps d'apprentissage de ces derniers, mêmes s'ils sont gratuits, n'est pas non plus le même que pour Renpy.


Mer 2 Juin 2021, 16:28
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
Qu'ajouter? J'ai installé mes 3 machines côte à côte dans ma cave numéro 2. Une original et 2 clones.

Les clones possèdent leurs propres réglages tanslate, rotate et scale. Je vous conseille d'utiliser des valeurs entières quand vous placez vos objets. Pour placer mes machines côte à côte, ça a été plus facile de reporter des valeurs entières de l'une à l'autre que des valeurs avec plusieurs décimales.

Autre point, je vais faire mes rendus en iray mais probablement avec un nombre de samples max limité à 500 pour que le rendu ne dure pas 2 heures pas image. En conséquence, j'ai récupéré le plafond de lumière que j'avais dans mon projet précédent.

Encore un autre point: quand on est dans un univers exigüe comme celui d'une pièce, on a du mal pour le cadrage. Pour cadrer les 3 machines sans me retrouver de l'autre côté du mur, j'ai changé Focal length à 35mm. Ceux qui ont fait de la photo savent que l'on utilise un fish-eye pour ce genre de scène. Cela veut dire création d'une caméra puisque les paramètres de la caméra par défaut ne sont pas accessibles. ATTENTION de bien noter la valeur qu'avait un paramètre de caméra avant de le changer.

Comme déjà dit, utiliser l'aux viewport qui cadrera la scène comme elle sera au rendu. Pour cela, choisissez la caméra que vous avez créée plutôt que la caméra par défaut dans l'aux viewport.

Si dans les mondes que vous allez créer vous voulez des créatures fantastiques, je vous conseille
EJ Fantasy Races Creator and Morphs for Genesis 8 Female(s) and Male(s) | Daz 3D qui permet beaucoup de réglages.

Résultat de mon rendu. A 100 samples max on a beaucoup de bruit sur les globes des machines. Dans la réalité, la cave et les machines seront rarement rendues ensemble. Mais pour que le mixage de l'environnement et des machines soit correcte, il faut que je positionne les machines dans l'environnement, que j'utilise la même caméra sans changer ses paramètres et surtout pas sa place. Là, il faudrait que je supprime les machines et que je fasse un rendu de l'environnement puis que je fasse réapparaitre les machines, que je fasse disparaitre l'environnement et que je commence à modifier les paramètres des rotators pour rendre des images qui deviendront une animation bout à bout. J'oubliais qu'il faut aussi positionner les personnages dans les machines avant de faire le rendu. N'oubliez pas que vous avez à votre disposition la caméra par défaut pour le faire.

En revenant sur le rendu, la meilleure solution est peut-être de demander le rendu dans une fenêtre, de surveiller l'image et d'arrêter le rendu quand il vous semble correct.

Rappel: l'environnement est à rendre en jpg et les images servant à l'animation en png. C'est le côté transparent du png qui permet de les "coller" sur l'environnement. Ca marche avec les images mais également avec les vidéos.
Exemple:

https://drive.google.com/file/d/1LQJBRz8RqRuvUuGBx8hU2As1-4fUlCiR/view?usp=sharing

L'environnement est en jpg et sur la piste 1, les images successives sont en png. J'ai rendu la fermeture des portes de 10° par 10°. Ca parait un peu saccadé mais je pourrais sans doute réduire le temps de chaque image sur la piste 2. En plus il fallait que vous soyez en mesure de voir quelque chose.
Pour la suite, un série de rendu des rotators. En accordant un temps différent à chaque rotation complète, je pourrai donner une impression d'accélération jusqu'au moment où il me faudra un rendu d'une autre série d'images, toujours avec les rotations mais avec la disparition progressive des personnages. Dans la réalité, puisque l'animation est relativement simple, je n'ai pas besoin de passer par Animate, il me suffit de faire un rendu, de changer les paramètres, de lancer un autre rendu, etc.. Vu que ça ne fera qu'une vingtaine d'images en tout, c'est gérable!


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



Jeu 3 Juin 2021, 14:36
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
Juste une astuce. Dans Renpy faire suivre l'animation d'une image de l'environnement.

Evidemment les rendus d'environnement et d'animation doivent être faits avec la même résolution, ici 1280*720


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



Ven 4 Juin 2021, 08:24
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 poursuis mon projet en parallèle tout en cherchant à compléter ma notice sur Animate2. Là, je regarde ce qu'il est possible de programmer avec un script. Le moins que l'on puisse dire est que DAZ3D.com n'a pas dû faire de remises à jour puisque sur les forums le SDK (Software Development Kit) qui sert à programmer les plugins en est toujours à la version 4.5 (gratuite ceci dit): https://www.daz3d.com/daz-studio-4-5-sdk

D'après un fichier d'origine asiatique comprenant les différentes "actions", il y en avait quelques-unes en bas du tableau (voir fil sur le scripting). On retrouve ces actions sur cette page:
http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/interface/action/index/start
mais pas dans l'index des objets:
http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/object_index/start
C'est dans la page Object index que l'on trouvera les méthodes des différents objets.
Normalement, pour la majorité des actions possibles en agaissant manuellement sur le menu, on a un équivalent que l'on peut programmer par script.

Le script suivant:

Code:
(function(){
// Get the Pane Manager
var paneMgr = MainWindow.getPaneMgr();
if ( paneMgr ) {
var pane = paneMgr.showAllPanes();
}
})();

va vous ouvrir tous les panes qui existent (voir dans votre menu "panes").Evitez de le lancer si vous ne voulez pas avoir à refermer une quarantaine de fenêtre.

DAZ a été écrit en Qt. Le départ est un objet DzApp qui permet une variable gobale App. Le code suivant permet dans un script d'envoyer des messages que l'on pourra lire dans le log file. A ce sujet, pensez à le vider de temps en temps, il grossit vite.

Code:
(function(){
debug ("toto");
})();

Ce genre de solution est pratique car en parsemant un code d'instructions debug, on va pouvoir suivre ce que fait le script et où se situe le problème s'il y en a un.
L'instruction debug est une des rares méthodes où on n'a pas besoin de faire une référence à App
Dans le code suivant:
Code:
(function(){
debug (App.getDataFolderName());
})();

si vous ne précisee pas que getDataFolderName est une méthode de App (qui est une instance de DzApp) voius aurez une erreur.

Les objets de même type sont regroupés dans un manager (Mgr). Les panes sont regroupés dans une intance de DzPaneMgr.

Le code suivant concerne Animate2:
Code:
(function(){
// Get the Pane Manager
var paneMgr = MainWindow.getPaneMgr();
// if successful, get the AniMate pane
if ( paneMgr ) {
var pane = paneMgr.findPane("aniMate");
// if successful, get the methods
if ( pane ) {
print (pane.getLabel());
//var menu = pane.getOptionsMenu(); //dzactionmenu
pane.showPane();
print(pane.getOptionsMenuVersion());
print(pane.getOptionsMenu());
var toto = pane.getOptionsMenu(); //toto=dzactionmenu
print(toto.getNumItems());
var titi = toto.getItem[0];//titi = dzactionmenuitem
print (titi);

}
}

})();

Ayant voulu avoir les résultats rapidement, je n'ai pas respecté les règles de nommage. Le résultat est que titi renvoie undefined, ce qui veut dire qu'il n'y a pas d'item de menu et que ce n'est pas par le biais du paneMgr que l'on jouera sur Animate. On peut récupérer chaque "pane" par son nom ou par un numéro. Je suppose (parce que je n'ai pas essayé) que le numéro d'un pane correspond à son emplacement dans la liste, la liste commençant à 0. Sinon il faut utiliser le nom et il m'a fallu un certain temps pour m'apercevoir qu'AniMate (au lieu d'AniMate2) était le bon nom. Ca évite à DAZ de revoir son code chaque fois qu'il y a une nouvelle version d'un pane.

Notez quand même que les méthodes pour faire apparaitre et disparaitre les fenêtres animate et animate constraints dépendent de DzPane.

Pour la suite, je vais explorer la piste de DzPlugin puisqu'Animate est également un plugin.


Sam 5 Juin 2021, 07:32
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
Dans le même esprit que debug vous avez warning et log sauf qu'il faudra absolument préciser que ce sont des méthodes de App (ex: App.log();)

N'ayant pas réussi avec le nom animate, en désespoir de cause, j'ai tenté avec la recherche par chiffre:

Code:
// DAZ Studio version 4.15.0.2 filetype DAZ Script

(function(){
// Get the Pane Manager
var pluginMgr = App.getPluginMgr();
// if successful, get the AniMate pane
if ( pluginMgr ) {
var plugin = pluginMgr.getPlugin(0);
if (plugin){
print ("reussi");
print (plugin.getName());
}
}
})();


On voit que les plugins ne sont pas dans l'ordre qu'on penserait. La réponse est aniMate 2. Donc en revenant en arrière maintenant que j'ai le bon nom, ce code fonctionne:
Code:
(function(){
// Get the Pane Manager
var pluginMgr = App.getPluginMgr();
// if successful, get the AniMate pane
if ( pluginMgr ) {
var plugin = pluginMgr.findPlugin("aniMate 2");
if (plugin){
print ("reussi");
print (plugin.getName());
}
}
})();

L'ajout d'un getAuthor() donne GoFigure! LLC, ce qui prouve que DAZ ne s'en est pas attribué les mérites.
Pour getFilename: D:/Program Files/DAZ 3D/DAZStudio4/plugins/aniMate2.dll
code:

Code:
// DAZ Studio version 4.15.0.2 filetype DAZ Script

(function(){
// Get the Pane Manager
var pluginMgr = App.getPluginMgr();
// if successful, get the AniMate pane
if ( pluginMgr ) {
var plugin = pluginMgr.findPlugin("aniMate 2");
if (plugin){
print ("reussi");
print (plugin.getName());
print (plugin.getAuthor());
print (plugin.getDescription());//rien pour la description
print (plugin.getFilename());
var prefixes= plugin.getPrefixes();
print (prefixes[0]);
print (prefixes[1]);
print(plugin.isRegistered());
}
}
})();


On voit qu'il n'y a pas de méthode permettant d'accéder au différents menus d'animate. Ceci dit, les méthodes que DAZ donne sont les méthodes publiques, il ne donne pas les méthodes privées et par évidence, les méthodes privées ne sont pas accessibles en script. Donc pas d'accès par DzPlugin non plus!

Mais je ne désespère pas, je vais essayer avec le fichier des actions que j'avais récupéré et voir si d'autres actions ont été ajoutées.


Dim 6 Juin 2021, 08:47
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 1 invité


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:  
cron

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