You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							262 lines
						
					
					
						
							10 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							262 lines
						
					
					
						
							10 KiB
						
					
					
				
								<!DOCTYPE html>
							 | 
						|
								<html lang="fr">
							 | 
						|
									<head>
							 | 
						|
										<meta charset="utf-8" />
							 | 
						|
										<base href="../../../" />
							 | 
						|
										<script src="page.js"></script>
							 | 
						|
										<link type="text/css" rel="stylesheet" href="page.css" />
							 | 
						|
									</head>
							 | 
						|
									<body>
							 | 
						|
								
							 | 
						|
										<h1>[name]</h1>
							 | 
						|
								
							 | 
						|
										<p class="desc">
							 | 
						|
											Un KeyframeTrack est une séquence chronométrée de [link:https://en.wikipedia.org/wiki/Key_frame keyframes],
							 | 
						|
											qui est composée de listes de durées et de valeurs connexes, qui sont utilisées pour animer
							 | 
						|
											une propriété spécifique d'un objet.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
								            Pour avoir un aperçu des différents éléments du système d'animation de three.js, consultez
							 | 
						|
								            l'article "Système d'Animation" dans la section "Étapes Suivantes" du manuel.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Contrairement à la hiérarchie d'animation du
							 | 
						|
											[link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format] un
							 | 
						|
											`KeyframeTrack` ne stocke pas ses keyframes comme étant des objets dans un tableau à "clés" (stockant
							 | 
						|
											les durées et les valeurs pour chaque frame ensemble à un même endroit).
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											A la place, il y a toujours deux tableaux dans un `KeyframeTrack`: le tableau [page:.times times] 
							 | 
						|
											stocke les durées pour chaque keyframes de ce track dans un ordre séquentiel, et le tableau
							 | 
						|
											[page:.values values] array contient les valeurs modifiées correspondantes de la propriété animée.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Une simple valeur, appartenant à un certain point temporel, ne peut pas simplement être un nombre, mais (par
							 | 
						|
											exemple) un vecteur (si c'est une position qui est animée) ou un quaternion (si c'est une rotation qui est animée). Pour
							 | 
						|
											cette raison, le tableau de valeurs (qui est également un tableau à une dimension) peut être de trois ou quatre fois la taille du
							 | 
						|
											tableau de durées.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Il existe plusieurs sous-classes de `KeyframeTrack` correspondant aux différents
							 | 
						|
											types possibles de valeurs animées, héritant de la plupart des propriétés et méthodes:
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<ul>
							 | 
						|
											<li>[page:BooleanKeyframeTrack]</li>
							 | 
						|
											<li>[page:ColorKeyframeTrack]</li>
							 | 
						|
											<li>[page:NumberKeyframeTrack]</li>
							 | 
						|
											<li>[page:QuaternionKeyframeTrack]</li>
							 | 
						|
											<li>[page:StringKeyframeTrack]</li>
							 | 
						|
											<li>[page:VectorKeyframeTrack]</li>
							 | 
						|
										</ul>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Quelques exemples qui montrent comment créer manuellement un [page:AnimationClip AnimationClips] avec différentes sortes
							 | 
						|
											de KeyframeTracks peuvent être trouvés dans le fichier [link:https://threejs.org/examples/jsm/animation/AnimationClipCreator.js AnimationClipCreator].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Étant donné que les valeurs explicites ne sont spécifiées que pour les points temporels discrets stocké dans le tableau de durées,
							 | 
						|
											toutes les valeurs du milieu doivent être interpolées.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Le nom du track est important pour la connexion de ce track avec une propriété spécifique du
							 | 
						|
											node animé (fait par [page:PropertyBinding]).
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h2>Constructeur</h2>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[name]( [param:String name], [param:Array times], [param:Array values], [param:Constant interpolation] )</h3>
							 | 
						|
										<p>
							 | 
						|
											[page:String name] - l'identifiant du `KeyframeTrack`.<br />
							 | 
						|
											[page:Array times] - un tableau des durées des keyframes, convertis en interne en un
							 | 
						|
											[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
							 | 
						|
											[page:Array values] - un tableau avec les valeurs concernant le tableau de durées, convertis en interne en un
							 | 
						|
											[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
							 | 
						|
											[page:Constant interpolation] - le type d'interpolation à utiliser. Voir
							 | 
						|
											[page:Animation Animation Constants] pour les valeurs possibles. La valeur par défaut est [page:Animation InterpolateLinear].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h2>Propriétés</h2>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[property:String name]</h3>
							 | 
						|
										<p>
							 | 
						|
											Le nom du track peut faire référence à des morph targets ou à des [page:SkinnedMesh bones] ou possiblement d'autres valeurs de l'objet animé. Voir
							 | 
						|
											[page:PropertyBinding.parseTrackName] pour les types de strings qui peuvent être assemblés:
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Le nom peut spécifier le noeud en utilisant son nom ou son uuid (bien qu'il doive être dans le 
							 | 
						|
											sous-arbre du noeud du graphe de scène passé dans le mixer). Ou, si le nom du track commence par un point,
							 | 
						|
											le track s'applique au noeud racine qui a été passé en paramètre du mixer.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Généralement après le noeud une propriété est spécifiée directement. Mais vous pouvez également spécifier une
							 | 
						|
											sous-propriété, comme .rotation[x], si vous voulez seulement contrôler X composants de la rotation
							 | 
						|
											via une float track.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Vous pouvez également spécifier des bones ou des multimatériaux en utilisant un nom d'objet, par exemple:
							 | 
						|
											.bones[R_hand].scale; le canal rouge de la couleur diffuse du quatrième matériau dans un
							 | 
						|
											tableau de matériaux - comme autre exemple - peut être accédé avec .materials[3].diffuse[r].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											PropertyBinding résoudra également les noms de morph target, par exemple: .morphTargetInfluences[run].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Note: Le nom de track ne doit pas nécessairement être unique. Plusieurs tracks peuvent gérer la même
							 | 
						|
											propriété. Le résultat doit être basé sur un mélange pondéré entre les mutiples tracks selon
							 | 
						|
											le poids de leurs actions respectives.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Float32Array times]</h3>
							 | 
						|
										<p>
							 | 
						|
											Un [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
							 | 
						|
											convertis depuis le tableau de durées qui est passé en paramètre au constructeur.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Float32Array values]</h3>
							 | 
						|
										<p>
							 | 
						|
											Un [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
							 | 
						|
											convertis depuis le tableau de valeurs qui est passé en paramètre au constructeur.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Constant DefaultInterpolation]</h3>
							 | 
						|
										<p>
							 | 
						|
											Le type d'interpolation par défaut: [page:Animation InterpolateLinear].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Constant TimeBufferType ]</h3>
							 | 
						|
										<p>
							 | 
						|
											[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
							 | 
						|
											le type de buffer utilisé en interne pour les durées.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Constant ValueBufferType ]</h3>
							 | 
						|
										<p>
							 | 
						|
											[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
							 | 
						|
											le type de buffer utilisé en interne pour les valeurs.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h2>Méthodes</h2>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[method:KeyframeTrack clone]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Renvoie une copie de ce track.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Interpolant createInterpolant]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Crée un [page:LinearInterpolant LinearInterpolant], un [page:CubicInterpolant CubicInterpolant]
							 | 
						|
											ou  un [page:DiscreteInterpolant DiscreteInterpolant], selon la valeur du paramètre d'interpolation
							 | 
						|
											passé au constructeur.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Interpolant getInterpolation]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Renvoie le type d'interpolation.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Number getValueSize]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Retourne la taille de chaque valeur (qui est la taille du tableau de [page:.values valeurs] divisé
							 | 
						|
											par la longueur du tableau [page:.times times]).
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Crée un nouveau [page:DiscreteInterpolant DiscreteInterpolant] depuis le
							 | 
						|
											[page:KeyframeTrack.times times] et [page:KeyframeTrack.times values]. Un Float32Array peut être
							 | 
						|
											passé en paramètre, il recevra les résultats. Autrement, un nouveau tableau avec la taille appropriée sera
							 | 
						|
											créé automatiquement.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:LinearInterpolant InterpolantFactoryMethodLinear]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Crée un nouveau [page:LinearInterpolant LinearInterpolant] depuis le
							 | 
						|
											[page:KeyframeTrack.times times] et [page:KeyframeTrack.times values]. Un Float32Array peut être
							 | 
						|
											passé en paramètre, il recevra les résultats. Autrement, un nouveau tableau avec la taille appropriée sera
							 | 
						|
											créé automatiquement.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:CubicInterpolant InterpolantFactoryMethodSmooth]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Crée un nouveau [page:CubicInterpolant CubicInterpolant] depuis le
							 | 
						|
											[page:KeyframeTrack.times times] et [page:KeyframeTrack.times values]. Un Float32Array peut être
							 | 
						|
											passé en paramètre, il recevra les résultats. Autrement, un nouveau tableau avec la taille appropriée sera
							 | 
						|
											créé automatiquement.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this optimize]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Retire les clés séquentielles équivalentse, qui sont communes dans les séquences de morph target.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this scale]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Met à l'échelle chaque vecteur grâce à un facteur.<br /><br />
							 | 
						|
								
							 | 
						|
											Note: C'est utile, par exemple, pour convertir à un certain taux de frames par secondes (comme
							 | 
						|
											réalisé en interne par
							 | 
						|
											[page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]).
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this setInterpolation]( [param:Constant interpolationType] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Renseigne le type d'interpolation. Voir [page:Animation Animation Constants] pour les choix.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this shift]( [param:Number timeOffsetInSeconds] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Déplace tous les keyframes avant ou après dans le temps.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[method:this trim]( [param:Number startTimeInSeconds], [param:Number endTimeInSeconds] )</h3>
							 | 
						|
										<p>
							 | 
						|
											Retire les keyframes avant `startTime` et après `endTime`,
							 | 
						|
											sans changer de valeurs entre [`startTime`, `endTime`].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Boolean validate]()</h3>
							 | 
						|
										<p>
							 | 
						|
											Performe une validation minimale de chaque track du clip. Renvoie true si toutes les tracks sont valides.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											Cette méthode envoie des erreurs à la console, si un track est vide, si la [page:.valueSize value taille] n'est pas valide, si un élémént
							 | 
						|
											dans le tableau [page:.times times] ou [page:.values values] n'est pas un nombre valide ou si les éléménts du tableau `times` sont désorganisés.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h2>Méthodes Statiques</h2>
							 | 
						|
								
							 | 
						|
										<h3>[method:JSON toJSON]( [param:KeyframeTrack track] )</h3>
							 | 
						|
										<p>
							 | 
						|
										Convertis le track en JSON.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h2>Source</h2>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
							 | 
						|
										</p>
							 | 
						|
									</body>
							 | 
						|
								</html>
							 | 
						|
								
							 |