Mot-clé - Tutoriel

Fil des billets

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.

 

vendredi 16 juin 2017

Génération des icônes des avions pour X-Plane 11

X-Plane 11 permet la génération des icônes des avions.

Pour créer une icône vous devez :
- Sélectionner l'avion et démarrer un vol,
- Cliquer sur "Open the Flight Configuration Window" (en haut à droite de votre fenêtre X-Plane),
- De retour sur la fenêtre "Flight Configuration / Aircrafts", cliquer sur le bouton "Customize" de l'avion,
- Un nouveau bouton "Regenerate Icon" apparaît, cliquer ce bouton,
- Une nouvelle fenêtre "Commencing Icon Creation" apparaît, cliquer sur Continue,
- Quelques seconde plus tard, la nouvelle icône est créee en deux versions (normale de taille 800 x 450 px et vignette de taille 174 x 107 px)

Ces icônes sont sauvegardées au format.png dans le dossier de l'avion.

[Your aircraft directory]

  • [your ACF name].acf
  • [your ACF name]_icon11.png
  • [your ACF name]_icon11_thumb.png
    liveries

     

    • [your livery name]
      • [your ACF name]_icon11.png
      • [your ACF name]_icon11_thumb.png
    • [another livery name]
      • [your ACF name]_icon11.png
      • [your ACF name]_icon11_thumb.png

Si une icône Version Xplane10 est déjà présente dans le dossier de votre avion, elle ne sera pas écrasée car les nouvelles versions générées ont pour suffixe _icon11.

Exemple d'icône générée par X-Plane11 avec le Boeing B-17G Flying Fortress :
B17G_icon11.png

N'étant pas satisfait par l'apparence de cette icône (orientation de la lumière principale en contre jour), j'ai crée une nouvelle icône en modifiant l'heure et donc la position du soleil. Ca ne marche pas. J'ai tenté un nouvel essai en modifiant cette fois-ci l'orientation de l'avion par rapport au soleil. Pour ce faire, j'ai ouvert la carte (touche M), sélectionné l'avion et défini un nouveau "Heading" puis relancer la génération de l'icône. Bingo !

Voici donc la nouvelle icône.

B17G_icon11_02.png

Une dernière remarque : L'avion est dessiné en fonction de son état au moment de la génération. Sur l'exemple proposé, j'ai opté pour un démarrage "Cold & Dark". Si vous optez pour un démarrage moteurs tournants, les hélices seront floues et les landing lights et autres nav lights seront allumées.
Enfin, il est également possible de créer des icônes personnalisées. Je n'ai pas testé ce cas de figure mais, sous réserve du respect des tailles, format et convention de nommage précisés plus haut, ca devrait bien se passer.

Comme vous pouvez le constater, la génération des icônes pour les avions sur XPlane11 est à la portée de tous.

Sources : http://developer.x-plane.com/?article=generating-icons-for-aircraft

dimanche 10 juillet 2016

Blender2Xplane V3.3 - Properties/Scene - 01

blender2xplane V3.3 Properties

Chaque calque de Blender peut contenir un objet X-Plane. L'exportation simultanée de plusieurs objets est un gain appréciable de temps pour le créateur d'avion car la totalité du projet sera contenu dans un seul fichier Blender avec des calques fuselage, ailes, intérieur, cockpit… qui deviendront autant d'objets X-Plane. C'est également utile pour le créateur de scène qui pourra regrouper par exemple des objets partageant la même texture.
Tout les paramètres du plugin Blender2XPlane sont accessibles depuis la fenêtre Properties de Blender :

Onglet Properties/Scene

C'est ici que l'on configure l'exportation du ou des fichiers .obj pour X-Plane.

X-Plane Version : Sélectionne la version de X-Plane désirée pour l'objet à exporter.

Optimize :  Réduit la taille du fichier obj en éliminant les vertices dupliqués. Le temps de calcul de cette optimisation peut être assez long en fonction de la complexité de votre objet. A utiliser donc de préférence seulement lors de l'exportation finale.

Debug, deux options : Profiling et Log

Profiling injecte des informations dans le fichier .obj comme le nom des objets, des matériaux, le n° d'ordre de vertice... Utile dans la phase de développement, ces informations textuelles incluses dans le fichier .obj permettent de localiser rapidement une partie d'un objet.

Log injecte des informations dans le fichier log.txt de X-Plane qui se trouve au premier niveau du dossier X-Plane.

Export Mode, deux modes : Layers et Root

Pas testé pour le moment.

Activate X-Plane layers : Cette option validée donne accès aux calques de Blender. Chaque calque sera exporté en tant que fichier obj si l'option Export est validée.

L'option Debug validée injecte des diagnostics dans le fichier log.txt de X-Plane.

Il faut donc renseigner pour chaque calque utilisé :

Le nom de l'objet (le suffixe .obj n'est pas requis).

Le type de l'objet (Instanced Scenery Object, Scenery Object, Cockpit et Aircraft Parts).

Il faut remarquer ici l'apparition d'un nouveau type d'objet : l'Instanced Scenery Object qui permet la duplication en très grand nombre d'un objet dans une scène sans ralentir X-Plane. Cependant le nombre de paramètres est limité :

Pas d'animation

Pas d'attribut ATTR : Seules les GLOBALS properties sont acceptées.

Pas de LOD (Level of Detail)

Quelques Named Lights sont valides comme headlight, taillight (voir le fichier Ressources/bitmaps/world/lites/light.txt dans le répertoire X-Plane).

Auto Detect Textures : Le script Blender2Xplane V3.3 est en mesure de détecter les textures utilisées dans les matériaux Blender et les attribuer aux textures du fichier .obj pour X-Plane. J'ai testé uniquement avec une texture DIFF pour le moment.

Attribution des textures  : Si Auto Detect Textures n'est pas validée, des champs de saisie sont disponibles pour affecter les textures utiles pour X-Plane soit :  Default, Night et Normal/Specular.

LOD (Level Of Detail) : None , 2, 3 et 4

Slung Load Weight : Poids de l'objet en livres qui sera pris en compte par le modèle de vol de X-Plane si l'objet est embarqué sur l'avion ou l'hélicoptère.

Slope Limit : Inclinaison maximale de l'objet scène dans un DSF.

Tilted : pose l'objet sur la normale de la face du terrain.

Require Surface : ( Wet , Dry, Any)

Cast Shadow

Shadow Cutoff : If enabled shadow blending

Layer Group : Définit l'ordre d'affichage des objets. Les noms de groupes valides sont ; Cars, Light Objects, Objects, Roads, Airports, Markings, Runways, Shoulders, Beaches, Terrain, None.

Layer Group Offset : Valeur comprise entre -5 et 5 pour hierarchiser la visibilité des objets d'un même group.

Add Property : Il est possible d'ajouter une propriété additionnelle au matériau qui sera défini dans le fichier obj. Il sera donc possible d'ajouter une nouvelle propriété pas encore supportée par le plugin. De cette façon, il ne sera pas nécessaire d'ouvrir le fichier .obj dans un éditeur de texte.

FAQ

Comment savoir si mon fichier .obj est éligible pour le type Instanced Scenery Object ?

Créer une scène comportant des dizaines de copies de votre objet. Ces copies doivent être proches les unes des autres. Charger la scène dans X-Plane, ouvrez le plugin DatarefEditor et paramétrer le art control “terrain/kill_clusters” à 1.
Dans ce cas, toutes les copies (instances) de l'objet disparaitront.

L'objet pourra utilisé le nouveau type Instanced Scenery Object si :

  • Pas d'animation
  • Pas d'attributs ATTR
  • Pas de LOD (Level Of Detail)
  • D'autres condition sont à consulter sur le blog de Ben Supnik ici :

http://developer.x-plane.com/2016/02/third-party-cars-should-really-be-instanced/

Quand utiliser le nouveau type d'objet Instanced Scenery Object ?

Tout objet susceptible d'être répété en grand nombre est à considérer pour optimiser votre scène. Cependant, il faudra prendre en compte les limitations inhérentes à ce nouveau type d'objet.

Immeubles "génériques", avions statiques, équipement aéroport, végétation 3D...

A éviter : les objets liés à un avion, les objets de scène extrêmement compliqués...
comme le Nimitz ! C'est Ben qui le dit ! :)

Comment exporter un seul objet de mon fichier blend qui comprend plusieurs calques ?

Dans la fenêtre Properties/Scene/X-Plane, décocher pour tous les layers l'option Export à l'exception du layer contenant le fichier .obj à exporter.

Blender2Xplane V3.3 propose deux options pour assigner les textures au fichier .obj. Laquelle choisir ?

Cela dépend de votre maîtrise de Blender, notamment en ce qui concerne la création de matériaux Blender. Avec les textures PBR (Physically-based rendering), il sera essentiel de pouvoir disposer d'un aperçu en 3D temps réel de votre objet dans la fenêtre 3D view de Blender. Bien sûr c'est déjà le cas maintenant pour vérifier votre modélisation. Avec X-Plane 11, il faudra aussi tester les textures avant export de l'objet...
ou disposer d'un visualisateur de fichier .obj PBR de Laminar Research ?

Bref, pour ma part, je suis plutôt à la recherche d'une solution 100% Blender.
J'opterai donc pour l'option Auto Detect Texture et assignerai à mes objets des matériaux avec les textures nécessaires. Blender2Xplane V3.3 sera en mesure de détecter les textures et les assigner au fichier obj.

Dans le cas de réalisation d'un unique objet, l'assignation manuelle des textures est appropriée.

L'optimisation des fichiers est-elle vraiment nécessaire ?

Je n'ai pas encore fait beaucoup de tests mais la suppression des vertices en double permet de réduire sensiblement la taille d'un fichier .obj. Donc oui, c'est nécessaire.

samedi 9 juillet 2016

Matcap 3d viewport Blender

modeling matcap blender - XPlane

A défaut de visualiser en temps réel un objet PBR (pour X-Plane) dans une fenêtre 3D views de Blender, on peut quand même utiliser deux ou trois trucs pour avoir une idée de la qualité de la modélisation.

Ici, un screenshot de l'ensemble Pedestal et Switchbox du Boeing B-17G Flying Fortress.
Une Matcap est attribuée aux objets. La Matcap metallique choisie met bien en évidence tout les défaut de modélisation. L'occlusion ambiante, activée et parametrée avec une distance de 0.02m et 32 samples, permet de mieux discerner les volumes.

mardi 28 juin 2016

Boeing B-17G Flying Fortress - PBR test

Physically Based Rendering (PBR)  - Test 02 - Xplane 11

Un test rapide de textures PBR sur la switchbox du Boeing B-17G Flying Fortress avec une création de textures assez basiques.

- page 1 de 3