BREAST JIG 

Le moins que l'on puisse dire c'est que les informations sur script ne sont pas nombreuses. Ce script est censé agir sur la gravité des seins soit au niveau d'une image, soit au niveau d'une animation. Ça peut être utile pour simuler le mouvement des seins lors d'une marche. Je m'y intéresse parce que parallèlement j'écris un tuto sur SPRING, l'équivalent sous iClone. Ce script est vendu sur https://www.renderosity.com/mod/bcs/breastjig-script-for-dazstudio/111905/ . Le fichier de script est à installer manuellement. Il est question de V4 et Genesis, mais l'auteur dit que le script reste valable pour Genesis 2 et 3.

D'autres s'étaient déjà lancé dans l'aventure comme Masato Kobayashi dont on trouve les vidéos sur Youtube (https://www.youtube.com/channel/UCeNikPSnBcjyedio1pI0JYget des explications dans la forum DAZ3D.com. Mais, il a effacé les liens permettant le téléchargement de ses fichiers.

Il faut d'abord sélectionner son personnage et ensuite cliquer sur la vignette déclenchant le script. Cela lance la fenêtre ci-dessous:


La première chose à faire est de sélectionner la taille des seins. Les dimensions sont données en taille US, EU et FR. Malgré cela, si vous arrivez à repérer le soutien-gorge nécessaire en regardant votre modèle 3D, c'est que vous êtes très fort ou travaillez dans un magasin de lingerie féminine! Voici le tableau complet des possibilités. On va du 85A français au 110K français. On voit que sous le sélecteur des indices sont fournis: le diamètre du sein, son volume en litres et son poids. Le renseignement utile en 3D sera le diamètre, mesurable avec Measure Metrics. La fiche DAZ indique souvent la taille, mais pas toujours!
La mesure avec Measure Metrics s'avère un peu compliquée et peu précise. Measure Metrics est fait pour calculer depuis le floor, à 0, 0, 0. J'ai décidé de "ruser" en créant une primitive plane et en l'appliquant au niveau du téton. Téton à l'emplacement d'origine avant la moindre modification. Pour Victoria 5, le plane fait 12.3 cm soit du 95B-100A

sein diametre

Une fois vérifiée la taille, vous pouvez jouer avec le plugin. A noter que cocher la case "with a bra" ramène le sein à la position qu'il a quand on le charge dans DAZ. L'affaissement des seins est fonction de sa taille d'origine. Même si le sein correspond à du 95B, si vous sélectionnez du 110K, le sein va évidemment s'affaisser plus. L'affaissement se fait selon de nombreux critères, dont l'âge. 

Breast Jig permet:
  • de jouer sur la gravité (pour le rendu d'une seule image
  • de jouer sur la gravité et l'effet ressort (appelé ici jig). Il fournit les valeurs à appliquer pour les images-clés. J'imagine que plus le personnage est en mouvement (courir au lieu de marcher) et plus les images-clés sont rapprochées.
  • gravité et effet ressort dès la première image
  • de détruire les images-clés
Breast Looseness: relâchement du sein, doit correspondre à sa forme, d'après l'auteur. Tout d'abord, le choix de la taille n'a pas d'effet automatique sur la valeur de breast looseness. Au min on constate un écrasement des seins, au max ils prennent une forme conique qui ne correspond pas à leur forme naturelle même si la femme se penche. Jusqu'à une certaine limite, cela pourrait correspondre à un étirement de la peau.

Pour une seule image;
Si la case "automatic morph" est cochée, la gravité va s'appliquer sauf si "with a bra" est cochée aussi. Ce qui signifie que cocher ces deux cases ramènent vos seins à leur position d'origine. Si elle n'est pas cochée, il ne se passera rien. 
On notera qu'à ce stade, je n'ai chargé aucun morph, c'est donc le script breast jig qui fait ça de lui-même.

Le plugin m'affiche ceci:

Please find below the relative position of breasts in cm:

Automatic morphs will NOT be applied


Frame: 0

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.7 , -0.3

-0.0 , -1.7 , -0.3


Done !


Ce sont les valeurs à entrer pour obtenir la même chose avec des morphs. L'auteur suggère glute and breast movement https://www.daz3d.com/glute-and-breast-movement-for-genesis


Dans le cas d'une animation, on va avoir la série de valeurs correspondant aux images-clés:


Frame: 0

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.7 , -0.3

-0.0 , -1.7 , -0.3


Done !

Automatic morphs will NOT be applied


Frame: 0

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , 0.0 , 0.0

0.0 , 0.0 , 0.0


Frame: 1

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -0.5 , 0.0

-0.0 , -0.5 , 0.0


Frame: 2

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.6 , -0.3

-0.0 , -1.6 , -0.3


Frame: 3

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -2.2 , -0.6

-0.0 , -2.2 , -0.6


Frame: 4

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.5 , -0.2

-0.0 , -1.5 , -0.2


Frame: 5

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.4 , -0.2

-0.0 , -1.4 , -0.2


Frame: 6

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 7

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -2.0 , -0.5

-0.0 , -2.0 , -0.5


Frame: 8

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.7 , -0.3

-0.0 , -1.7 , -0.3


Frame: 9

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.7 , -0.3

-0.0 , -1.7 , -0.3


Frame: 10

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.9 , -0.4

-0.0 , -1.9 , -0.4


Frame: 11

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.9 , -0.4

-0.0 , -1.9 , -0.4


Frame: 12

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.3

-0.0 , -1.8 , -0.3


Frame: 13

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.3

-0.0 , -1.8 , -0.3


Frame: 14

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 15

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 16

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 17

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 18

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 19

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 20

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 21

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 22

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 23

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 24

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 25

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 26

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 27

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 28

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 29

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Frame: 30

************

Relative Breast position[Left,Right][x,y,z]=

0.0 , -1.8 , -0.4

-0.0 , -1.8 , -0.4


Done !


Si la case automatic morph est cochée, l'animation est transmise à Animate et vous pouvez la visualiser. Ça ressemble à une démarche de marche. Il faudrait donc rentrer dans animate une marche sur 30 frames et programmer les valeurs ci-dessus pour voir le résultat (ce qui implique aussi de charger des morphs comme Glute and breast movement). Pour une course, les seins ont tendance à partir également sur les côtés, voire à monter au-delà de leur position de repos.

AVERTISSEMENT POUR CEUX A QUI UNE PAIRE DE SEINS FAIT PEUR OU QUI SONT MINEURS, NE PAS REGARDER LA VIDEO QUI SUIT:
ou encore mieux sur le site d'origine: http://www.shockabsorber.co.uk/bounce-o-meter/ où vous pourrez changer le degré de sportivité (de la marche à la course rapide), la taille des seins et la forme de la visualisation (sur le côté, de face ou en wireframe).

On voit bien que le mamelon passe au-dessus de sa position de repos. J'ai capturé la vidéo de face et de côté. Je vais la décomposer en images et voir les informations que l'on peut en tirer.

Le mouvement des seins est différent selon le mouvement du reste du corps. L'animation générée automatiquement par breastjig correspond plutôt à une femme assise dans une voiture qui passerait sur une bosse: mouvement simultané des deux seins vers le haut puis retour à la normale. Le bounce-o-meter montre que la marche et la course engage aussi les épaules (donc un effet de la kinematique inverse) et une des vidéos montre une courbe qui ressemble un peu à un Lissajous 1:2.

Revenons-en au panneau de commande de breast jig. Cocher ou non la case "discard acceleration on first frame?" ne semble pas avoir d'effet. La meilleure preuve est que les valeurs affichées sont les mêmes que cette case soit cochée ou non. 
La case "try to remove natural gravity morph" revient à supprimer la gravité naturelle des seins. Ça se voit évidemment plus avec du 110K.  Il y a une différence avec la case "with a bra" (avec un soutien-gorge). Dans ce cas, le sein remonte légèrement et revient à sa position initiale. Dans l'autre cas, le sein s'affaisse par le rebond. On voit que c'est une femme qui a écrit le script.

Le réglage breast looseness (relâchement du sein) provoque un allongement conique du sein. Au maximum du réglage, ça donne une incohérence. A réglage limité, ça peut ajouter un plus.

Il existe aussi les réglages expert, disponible si on clique sur le bouton du même nom
Comme je ne suis pas un expert en mathématique, la seule solution dont je dispose est l'expérimentation (et encore expérimentation visuelle). Avec la valeur mini de Bounce friction, le sein donne l'impression d'avoir plus de mouvements de bas en haut, donc l'effet ressort s'atténue beaucoup plus vite avec une valeur forte. Pour l'instant, je n'ai pas pu saisir l'effet de Rotation friction. In-out, Up-down, side-side sont les mêmes réglages que l'on pourrait avoir avec des morphs sauf qu'il ne sont pas instantanés et ne prennent effet qu'après l'appui du bouton start.

breast friction against chest= frottement des seins contre la poitrine
breast rotation friction= friction de rotation du sein

L'auteur a donc réussi à ajouter des réglages de poitrine sans que celle-ci n'apparaisse dans la hiérarchie. Je vais donc ajouter "glute and breast movement" pour voir la différence.
Il y a déjà une différence, c'est qu'à chaque lancement du script breast jig, j'ai le massage suivant:
L'avantage de glute and breast movement est de pouvoir régler en temps réel les in-out, up-down et side-side.

Conclusion pour ce plugin: 
  • le réglage de la taille des seins peut servir à accentuer la gravité même si la taille des seins de son personnage ne correspond pas. La gravité dépend du relâchement de la peau, donc éventuellement de l'âge.
  • on voit surtout un mouvement de bas en haut et simultané sur les deux seins. Ça ne peut correspondre que si les épaules ne bougent pas et si la femme est secouée de bas en haut (puisque les seins commencent par monter), par exemple si la femme est au volant et rencontre un ralentisseur ou, quand il y a plusieurs oscillations des seins quand elle roule sur des pavés à condition que bounce friction soit réglé au minimum.
  • Il permet d'éviter d'acheter un plugin par génération si le but est uniquement de faire grossir les seins et/ou de leur applique un effet de gravité.
Ce plugin a eu l'avantage de me faire faire des recherches et de découvrir bounce-o-meter. Non seulement, il permet de voir les effets sur plusieurs tailles de seins et sur 3 rythmes d'activité (marche, course moyenne et course intense) mais on peut voir les résultats sur 4 modes: 3D (mode où le téton dessine sa courbe, de face, de côté et en wireframe).

J'ai enregistré une vidéo de chaque possibilité, transformé en images séparées.J'utilise Free video to jpg converter qui, comme son nom l'indique, est un programme gratuit et qui permet d'extraire toutes les frames. Vient maintenant une phase qui risque d'être longue: les utiliser pour modifier un personnage en mettant les images en backdrop. Ce travail ne peut être entrepris que petit à petit car il y a d'autres tutos en souffrance sur ce site.


ANALYSE DES IMAGES

Mon premier travail a donc été de classer les images dans 4 dossiers (face, côté, courbes, wireframe) et dans chaque répertoire chaque taille (A, B, C, D, E) en modéré, élevé et intense. Le Bounce-o-meter se coince pour les courbes pour le A modéré (j'ai donc commencé par le E modéré pour ce genre. Autre chose: la courbe montrée par le bounce-o-meter montre qu'il n' s'agit pas d'une courbe régulière donc difficile à programmer mathématiquement. Je pense que la meilleure solution sera un tableau.

Le bounce-o-meter n'est pas suffisant pour tout comprendre. J'ai cherché d'autres vidéos et il n'est pas évident d'en trouver où on voit le personnage complètement pour voir ce qui se passe globalement.

Revenons un peu sur les vidéos de Masato Kobayashi. Il indique que le mouvement des seins fait appel à plusieurs réglages simultanés:
Je dirai que ça dépend plutôt de la fermeté et des mouvements.Il prétend que c'est basé sur la physique et les maths. Il n'a pas tout à fait tort mais je ne suis pas d'accord avec ses courbes. Il se base sur les travaux de Barger et Olsson sur l'amortissement d'une sinusoïde.
Je ne vois pas où se trouve la sinusoïde. Le sein remonte lors d'un mouvement, mais il ne redescend jamais en dessous de sa position initiale (voir bounce-o-meter) et surtout pas d'une valeur égale à sa montée. Lors d'une marche ou d'une course, quand la femme pose le pied à terre cela provoque une remontée des seins qui retombent ensuite par leur propre poids (effet de gravité).Éventuellement, on peut avoir à la retombée un léger effet d'écrasement.  Dans le bounce-o-meter on voit aussi un déplacement des seins en latéral. Il peut être dû au manque de fermeté du sein, mais également au fait du mouvement des épaules de la femme (on voit qu'en mode course, elle bouge beaucoup les bras, ce qui a un effet sur la position des seins). 

Si on examine les réglages simultanés de Masato Kobayashi.on découvre 4 réglages de nipple (mamelon). Or, c'est impossible. Ces réglages sont utiles pour définir les seins au départ parce que toutes les femmes n'ont pas les mamelons placés au même endroit, ni la même taille d'aréoles. Mais, si les seins vont bouger, le mamelon ne se déplacera que relativement au déplacement du sein lui-même. En absolu, il conserve la même place sur chaque sein. Donc les déplacements de seins sont des translate sur les axes X, Y et Z, auxquels on peut ajouter des réglages de déformations des seins car il ne conservent pas forcément la même forme au déplacement.

Donc, à mon avis, mais je peux me tromper, la meilleure solution est de mettre côte à côte, Genesis et chaque image  de bounce-o-meter pour adapter Genesis et noter les valeurs nécessaires pour que Genesis corresponde. Essai rapide ce matin. Premier problème, l'image en backdrop peut être déformé puisque devant s'adapter au viewport. Il faut donc aller dans render settings et se positionner en 3Delight Custom et régler le viewport pour que l'image ne soit pas déformée. Second problème, glute and breast movement ne dispose pas de tous les réglages nécessaires pour voir les différences. Entre-autres, le volume des seins est un réglage qui agit sur les deux en même temps. Or, visiblement, la femme du bounce-o-meter pour la taille E n'a pas les seins de la même taille.

Travail trop long puisqu'il faudrait recommencer tout à 0 en centrant la capture de flux de bounce-o-meter sur la femme sans soutien-gorge, avec Genesis 3 qui a, à sa disposition, plus de morphs pour la modification des seins. Ensuite regarder quel est le rapport entre la taille de l'image et la taille du viewport. Déjà, à y réfléchir, puisque l'on doit positionner Genesis à côté du modèle, cela veut dire qu'il faut 2 fois la largeur donc enregistrer également la femme en soutien-gorge à côté. Il faut commencer par E intense puisque c'est là que l'on a le déplacement maximum. Je ne ferai pas ce travail avant longtemps car ça me forcerait à abandonner d'autres sujet.

D'autant plus que d'autres ont fait de bons tutoriaux sur le sujet. Voir le site de SKAMotion: http://www.skamotion.com/tutorials.php. Apparemment, seulement 2 réglages varient pour les seins: breast downward slope et breast under curve de Genesis 3 female body morphs. A priori, breast under curve n'a pas de rapport puisque ce réglage augmente la taille du sein sous le mamelon. On ne voit ces réglages bouger que si on installe Genesis 3 Female body morphs.