samedi 26 janvier 2019

Blender Animation X-Plane - Speed Control

animation_speed_control_Xplane_01.jpg

Test du jour : Variation de la vitesse de déplacement d'un objet.

Le prototype : Deux cube rouges avec une translation sur l'axe X d'une amplitude de 0.4m en 4 sec, animation cyclique.
Dataref utilisée : sim/time/total_running_time_sec

Le cube supérieur est animé avec 2 keyframes.
L'interpolation entre deux values d'une dataref X-Plane étant linéaire, la vitesse du déplacement est constante.

Le cube inférieur est animé avec 8 keyframes.
Des keyframes ont été ajoutées directement dans la fenêtre Graph Editor sur le canal Value() de l'objet sélectionné.
Ils sont positionnés de façon à simuler une vitesse variable (un amorti de début et de fin de mouvement dans cet exemple).

Pour que l'animation soit cyclique, renseigner le paramètre Loop Animation Key dans la fenêtre Properties / Objects / XPlane.

Au final, on lance X-Plane pour constater que le cube supérieur se déplace bien à vitesse constante.
Le mouvement du cube inférieur est amorti en début et en fin de mouvement.
Avec seulement 8 keyframes, cela manque de souplesse et on percoit bien que la courbe... n'en est pas une ! :)
Mais bon... c'est mieux que rien.

 

vendredi 25 janvier 2019

Blender Animation X-Plane - Stick

animation_stick_Blender_01.jpg

Aujourd'hui un nouveau test d'animation d'objet : un stick.

Jusqu'à présent, j'utilisais l'animation d'armature pour l'animation d'un stick. Une première armature pour le roll, une seconde armature pour le pitch parentée à la première armature et l'objet stick parenté à la seconde armature.

Le prototype est toujours aussi basique : un objet floor_stick et un objet stick. Le stick est parenté à floor-stick.
Pour ce test, j'ai choisi une animation de l'objet Stick avec 4 keyframes :

  • select stick object
  • Frame 1,  Rot Y -20, dataref sim/cockpit2/controls/yoke_roll_ratio, value -1
  • Frame 10, Rot Y 20, dataref sim/cockpit2/controls/yoke_roll_ratio, value 1
  • Frame 20, Rot X -15, dataref sim/cockpit2/controls/yoke_pitch_ratio, value -1
  • Frame 30, Rot X 20, dataref sim/cockpit2/controls/yoke_pitch_ratio, value 1.

Pour cet exemple, contrairement à l'animation d'aiguille, les positions des frames n'ont plus de rapport avec le temps.
Vous pouvez donc les placer comme il vous plaira. Là, j'ai choisi de poser une keyframe toutes les 10 images.

Il est possible d'organiser le code obj en affectant un weight différent sur les objets.
Pour ce faire, il faut sélectionner l'objet et, dans la fenêtre Properties / Object / Xplane, Override Weight, Attribuer une valeur
Plus le weight est important, plus le code de l'objet est décalé en fin de fichier.

J'ai attribué un weight de 10 à l'objet stick_left et un weight de 20 à l'objet stick_right.
Le code obtenu est le suivant :
 
TRIS 4092 2748
TRIS 6840 1332
 
TRIS 1194 852
ANIM_begin
ANIM_trans -0.2 0.40000001 1.79999995 -0.2 0.40000001 1.79999995
ANIM_rotate_begin 1 0 0 sim/cockpit2/controls/yoke_pitch_ratio
ANIM_rotate_key -1 -15.01
ANIM_rotate_key 1 20
ANIM_rotate_end
ANIM_rotate_begin 0 0 -1 sim/cockpit2/controls/yoke_roll_ratio
ANIM_rotate_key -1 -20
ANIM_rotate_key 1 20
ANIM_rotate_end
TRIS 0 1194
ANIM_end
 
TRIS 2046 852
ANIM_begin
ANIM_trans 0.2 0.40000001 1.79999995 0.2 0.40000001 1.79999995
ANIM_rotate 0 1 0 -30 -30
ANIM_rotate 0 0 -1 30 30
ANIM_rotate 1 0 0 30 30
ANIM_rotate_begin 1 0 0 sim/cockpit2/controls/yoke_pitch_ratio
ANIM_rotate_key -1 -15.01
ANIM_rotate_key 1 20
ANIM_rotate_end
ANIM_rotate_begin 0 0 -1 sim/cockpit2/controls/yoke_roll_ratio
ANIM_rotate_key -1 -20
ANIM_rotate_key 1 20
ANIM_rotate_end
TRIS 2898 1194
ANIM_end

Comme pour le premier test, j'ai exporté le fichier animation_stick.obj dans le dossier Objects / animation_test de mon Stinson L5 ANIM.
Et ajouter ce nouvel objet dans l'acf avec PlaneMaker.

C'est testé... et ca fonctionne.
Plus d'armatures, de bones, de parentages.
Plus la peine de vérifier si l'on est bien en mode objet, edit ou pose.
Il suffit de sélectionner l'objet et de l'animer.

 

jeudi 24 janvier 2019

Blender Animation X-Plane - Needle

animation_needle_Blender_01.jpg

 

Pour ma part, un des moment les plus pénibles lors de la création d'un avion pour X-Plane, c'est l'animation des objets.

Entre ce que je sais, ce que je crois savoir, la lecture du manuel de Xplane2Blender, les avis des uns et des autres... je suis un peu perdu. J'ai donc décidé de réaliser quelques prototypes pour tenter de m'y retrouver.

Pour tester mes expérimentations, j'utilise le Stinson L5 présent par défaut dans X-Plane.
Le dossier de l'avion est dupliqué à la racine de dossier Aircrafts et renommé Stinson L5 ANIM TEST.
Dans le dossier Object ge l'avion, j'ai crée un sous dossier animation_test qui hébergera mes fichiers de test.
Pour finir, il faut ouvrir l'acf avec PlaneMaker pour ajouter les objets de test.

Blender V2.79 - Xplane2blender V3.5

Xplane2Blender propose deux types d'animations : l'animation d'objet ou l'animation d'armature.
L'animation directe d'objet sans utiliser d'armature dans le cas d'une animation d'aiguilles est, à priori, la bonne solution.
Le fichier Blender est plus lisible en l'absence de bones. On sélectionne l'aiguille et on attaque l'animation. C'est tout !

Le prototype est des plus simple : une face représentant l'instrument et une aiguille.
L'aiguille est parentée à l'instrument. Pour modifier la position/orientation de l'instrument, il suffit de sélectionner et repositionner/orienter l'instrument, l'aiguille et son animation suivront.

Animation basique d'une aiguille d'un instrument avec la dataref native X-Plane sim/time/total_running_time_sec

Par défaut, l'interpolation entre les keyframes par Blender est un courbe de Bézier. Le début et la fin du mouvement sont amortis. Ce n'est pas le cas de X-Plane où l'interpolation entre les keyframes est linéaire. Pour avoir une animation synchrone Blender / Xplane; il faut modifier le type d'interpolation de l'animation de Blender. Dans la fenêtre Dope Sheet : select keyframes, T key, Linear interpolation

Pour cette animation, seules 2 keyframes sont nécessaires :

  • Rotation continue 1 tour / 4 sec
  • Start frame : 1
  • End frame : 100
  • Select Object Needle
  • Keyframe 1 : Rot Y 0 deg
  • Keyframe 26 : Rot Y 90 deg

Pour prolonger l'animation eu delà de la keyframe 26 :

Graph Editor : select YEuler Rotation, add modifier Cycles Before : Repeat with Offset.et After : Repeat with Offset.
La courbe d'animation est prolongée à l'infini.
Il est donc possible de tester en temps réel l'animation en cliquant Play dans la Timeline de Blender.

Viennent ensuite les parametres spécifiques de Xplane2Blender.
Sélection de l'aiguille puis dans la fenêtre Properties/ Object / Xplane :

Add Dataref, 
Dataref : sim/time/total_running_time_sec
Animation Type : Transformation
Frame 1, Value 0
Frame 26, Value 1

Exportation et test.
Ca fonctionne !

J'ai ajouté une copie de l'instrument en modifiant son orientation sur les trois axes..
Ca marche aussi !

Le code .obj obtenu :

Pour l'instrument de gauche (sans orientation) :

ANIM_begin
ANIM_trans -0.15000001 0.44 1.79999995 -0.15000001 0.44 1.79999995
ANIM_rotate_begin 0 0 -1 sim/time/total_running_time_sec
ANIM_rotate_key 0 0
ANIM_rotate_key 1 90.01
ANIM_rotate_end
TRIS 4764 540
ANIM_end
 
Pour l'instrument de droite avec orientation sur les trois axes :
 
ANIM_begin
ANIM_trans 0.15000001 0.44 1.79999995 0.15000001 0.44 1.79999995
ANIM_rotate 0 1 0 30 30
ANIM_rotate 0 0 -1 30 30
ANIM_rotate 1 0 0 -30 -30
ANIM_rotate_begin 0 0 -1 sim/time/total_running_time_sec
ANIM_rotate_key 0 0
ANIM_rotate_key 1 90.01
ANIM_rotate_end
TRIS 5304 540
 

Bref, c'est l'option que je vais retenir pour l'animation des instruments à aiguilles.
C'est aussi utilisable pour des objets de scènes.

 

dimanche 20 janvier 2019

Boeing B-17G Flying Fortress 3D model WIP 2

B17G_V1130_05.jpg

lundi 14 janvier 2019

Boeing B-17G Flying Fortress 3D model WIP

B17G_V1130_04.jpg

- page 2 de 77 -