Mot-clé - xplane2blender

Fil des billets

mardi 5 novembre 2019

Blender 2.80

USS NIMITZ aircraft carrier CVN-68 - XPlane 11, nov. 2019
Blender 2.80 est disponible depuis quelques semaines.
https://www.blender.org/download/

Un script xplane2Blender compatible avec cette nouvelle version de Blender est développé par Ted Greene.
https://github.com/X-Plane/XPlane2Bl...v4.0.0-alpha.2

Il est aujourd'hui possible de tester Blender 2.8 et exporter nos créations pour X-Plane.
Attention, le script est encore en version alpha... il vaut peut-être mieux se limiter à des tests pour le moment.

Après quelques semaines d'utilisation, je suis conquis.
Les premiers jours ont été un peu difficiles car l'interface a été considérablement remaniée.
Beaucoup de raccourcis clavier ont été changés.
Même la sélection d'un simple vertex, c'est différent !
Sur 2.79, c'était clic droit. Sur 2.80, c'est devenu clic gauche.
Bref, ça agace un moment et c'est pas fini en ce qui me concerne ! smile-new.png

Par contre, pour ceux qui débutent, aucun problème.
Sélection par clic gauche comme à peu près tous les autres programmes.

Quoi d'autre ?

Le Viewport :
La possibilité de visualiser les textures PBR en temps réel grâce au nouveau moteur de rendu EEVEE.
Des tas de réglages pour visualiser les objets en fonction de leur matériaux, textures, vertex colors.
Avec de l'occlusion ambiante, des cavity map...
Bref, c'est parfait.

Mais du coup, l'ancien moteur de rendu (Blender Internal) a disparu.
Les bakings devront être dorénavant calculés avec le moteur de rendu Cycles.
EEVEE ne pourra jamais proposer de fonctions de Baking.
Là, ca va tousser.
Un mauvais paramétrage de Cycles et vos temps de bakings vont être très, très, très long !

Coté modélisation et dépliage UV, l'édition de plusieurs objets simultanément est maintenant possible.
Ca n'a l'air de rien mais c'est vraiment utile.
Pouvoir éditer plusieurs objets simultanément, c'est aussi être en mesure de peaufiner son dépliage UV
en visualisant les dépliages de tous les objets qui partagent la même texture...
sans activer de plugin ou cocher d'options dans les profondeurs de la fenêtre Properties.

Autre point important, le hiérarchisation des éléments d'une scène est modifiée.
Avec Blender 2.79, nous disposions de 20 calques pour organiser notre travail.
C'était limité et pas très pratique.

Avec Blender 2.80, les calques ont été remplacés par des "Collections".
Ces collections sont visibles dans l'outliner.

Coté script.
Comme les layers ont disparu, l'option d'exports par layers n'est plus utilisable (Attention, cette option est toujours présente sur la version Alpha du script).
Il faut maintenant opter pour l'option "Root".
Faudra s'y faire.

A signaler, il est toujours possible et même recommandé d'exporter en validant l'option Optimize.
Avec le script pour la version 2.79 et un objet un peu compliqué, c'est 15 minutes !
Avec le script pour la version 2.80, c'est 20 secondes !
J'exagère à peine...
Imaginer une quinzaine d'export et faites le calcul.

Alors Blender 2.79 ou Blender 2.80 ?
A vous de voir.

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 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.