Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 21/11/2020 21:28:23

Yveen
Membre
Inscription : 10/11/2020
Messages : 6

Nasal et IA

Bonjour à tous. J'hésite entre les rubriques "Problèmes" et "Développement" pour le sujet suivant :

Mon but ultime serait de me choisir une vue en haut d'une tour de contrôle et de regarder des vols que j'aurais programmés se dérouler sous mes yeux.

Je pensais qu'il serait possible, en ajoutant via du script Nasal des nodes dans "l'arbre des propriétés", de faire apparaitre des avions IA en live puis ensuite de les faire vivre. Mais quand je parcours les propriétés d'un avion ajouté par un scénario, par le trafic IA ou un wingman créé par Nasal, je ne retrouve pas les même propriétés (le trafic IA n'a même pas de propriété "model" ou autre qui indiquerai quel path suivre pour retrouver le fichier xml du modèle 3D).

Avez-vous une idée des propriétés mini nécessaires pour afficher un mobile puis le déplacer, ou est-ce plus compliqué que cela ?

Merci de votre aide.


FG version 2020.3.2
Windows10, NVIDIA GeForce GTX 1050 Ti, 16Go RAM DDR3-1600, i5-4670K

Hors ligne

#2 22/11/2020 13:09:46

zakharov
Membre historique du forum.
Inscription : 11/09/2005
Messages : 958

Re : Nasal et IA

Salut,

si je comprends bien tu voudrais «programmer» en direct des AI pour te repasser la scène en accédant à leurs propriétés ?

Je pense que tu peux passer par les scénarios pour faire ça, regarde le code de $FGROOT/gui/dialogs/scenario.xml pour avoir une idée des propriétés impliquées, ensuite regarde du côté de la doc sur les scenarios.

Dans /ai/ton_scenario tu trouveras tout le nécessaire pour contrôler ton modèle (tu peux rajouter des propriétés si tu as besoin, elles ne seront vues par aucun mécanisme de FG mais ça peut t'aider).

Je sais pas si j'enfonce une porte ouverte ou pas smile

@+
bons vols
zakh


le zkv1000
Debian Bookworm sur i7-9750H, 16G, NV GeForce GTX 1660 Ti MaxQ 6Go
FG next compilé à la mano
Joystick TM T. Stick X avec fichier de conf perso

Hors ligne

#3 22/11/2020 19:07:04

jano
Moderateur
Inscription : 13/11/2007
Messages : 963

Re : Nasal et IA

Le traffic ai a une indication du modèle, mais peut être uniquement dans les fichiers de config, qui sont dans:
AI/Traffic qui utilise les plan de vol du dossier flightplans.
Il se trouve juste que ce n'est pas reporté dans l'arbre des propriètès (sauf si  c'est caché dans un coin de l'arbre, je saurais pas dire, je n'utilise pas le traffic AI, ça me ruine mes fps wink )

Si tu veux un fichier nasal qui affiche un modèle et le fait voler, regarde Nasal/tanker.nas, qui gère un ravitailleur, par contre c'est le nasal qui doit le faire voler ensuite, alors que le traffic AI utilise le modèle de vol simplifié ecris dans le code de FG.

le minimum me semble la position et  l'orientation, en plus du modèle, mais je peux me tromper (j'ai participé à la création du tanker.nas, à une époque, et me souviens qu'on avait commencé par faire voler une vache smile de quoi faire cailler son lait big_smile )

tu as une autre solution, qui est d'enregistrer des vols ( au niveau du reseau, les paquets udp) et ainsi tu peux les ajouter ensemble et te faire une session de spectateur sur des vols enregistrés, par contre c'est un peux de la bidouille avec des outils reseau mais ça marche bien.

jano

Hors ligne

#4 23/11/2020 12:24:57

Patten
Membre
Lieu : LFLR
Inscription : 14/12/2010
Messages : 1 757
Site Web

Re : Nasal et IA

Hello,
Piloter au milieu des IA çà peut être sympa aussi:

https://youtu.be/zZR2HI6O38o

https://youtu.be/XPDOL_7dLZk

Je ne retrouve plus mes senarii, je ne pense pas qu'il y avait du nasal, je suis naze en nasal. hmm:/

smile


Intel I7.7700k 4.2 GHz.CM:MSI Z270 Gaming pro.CG:ASUS GTX 3070 Tuff OC  8Go.Ram:32Go DDR4 GSKILL. 2*SSD 500G 1*M2 500G 1*M2 1T, 2*HDD 2*2T Seagate Baracuda.Alim:Corsair RM750X 80Plus Gold.Ventirad Be quiet pure rock.Boîtier Aérocool GT-S black édition.DVD Asus drw-24f1-mt. Wifi + Bluetooth gigabyte.Dual boot LinuxMint 20.3 Una /Windows10 FG2020.4.0
http://pattenflightgear.wifeo.com/

Hors ligne

#5 23/11/2020 12:25:58

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 037

Re : Nasal et IA

Bonjour Yveen, bonjour vous tous.

Tu peux aussi regarder AI Scenarios. Au moins pour la forme des fichiers (que tu trouveras aussi dans tous ces scénarios).

Il y avait un moyen d'enregistrer un trajet en volant avec un modèle d'avion "classique" (avec FDM) puis d'en faire un AI scénario, mais je ne me souviens plus comment. L'objectif est évidemment d'obtenir la suite des waypoints, ce qui est très fastidieux et approximatif "à la main".


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#6 24/11/2020 0:18:02

Yveen
Membre
Inscription : 10/11/2020
Messages : 6

Re : Nasal et IA

Cool... Merci de vos réponses. smile smile

Je progresse, mon bonheur passant visiblement par la combinaison suivante :
• créer un scénario et l'activer pour avoir des aircraft
• les animer en modifiant leurs propriétés en dynamique via Nasal.
Il me reste à devenir plus à l'aise avec les timer et les events pour les animer correctement. Je ne peux pas utiliser les Flighplan avec mes scénario parce que c'est très restrictif, par ex cela fait apparaitre l'avion avec une vitesse initiale instantanée. Et au sol, ça fait bizarre...

J'en viens à mes questions, parce que j'en ai toujours un paquet, bien sûr : la page AI systems m'a montré comment agir sur les avions avec leurs propriétés controls/flight/target-hdg, target-spd, ... Mais les classes AIAircraft.hxx, AIBaseAircraft.hxx ont l'air de contenir plein de variables ou méthodes intéressantes. Vous croyez qu'on peut agir là-dessus avec Nasal en live, ou ça n'est pas accessible?
Par exemple, target-hdg.setValue() pour faire tourner un avion au roulage, c'est pas propre parce qu'il prend un angle de roulis et enfonce une aile dans le tarmac... roll Si je pouvais utiliser yawTo ou autre...

Merci de votre aide.


FG version 2020.3.2
Windows10, NVIDIA GeForce GTX 1050 Ti, 16Go RAM DDR3-1600, i5-4670K

Hors ligne

#7 24/11/2020 7:26:28

zakharov
Membre historique du forum.
Inscription : 11/09/2005
Messages : 958

Re : Nasal et IA

Salut Yveen,

Yveen a écrit :

target-hdg.setValue() pour faire tourner un avion au roulage, c'est pas propre parce qu'il prend un angle de roulis et enfonce une aile dans le tarmac

ton avion, quand il est au sol, ne devrait pas être un «groundvehicle» plutôt qu'un «aircraft» ? Tu changerais alors son type d'AI en «aircraft» au moment où l'appareil sera aligné sur la piste. Y a plus qu'à voir s'il n'y aura pas de «glitch» au moment du changement de type, et même si le changement de type d'AI est efficace sans avoir à recharger un autre scenario avec le type «aircraft».

À mon avis c'est plus simple et partageable que de modifier le source de FG pour afficher une nouvelle propriété pour les AI.

@+
bons vols
zakh

Dernière modification par zakharov (24/11/2020 7:29:00)


le zkv1000
Debian Bookworm sur i7-9750H, 16G, NV GeForce GTX 1660 Ti MaxQ 6Go
FG next compilé à la mano
Joystick TM T. Stick X avec fichier de conf perso

Hors ligne

#8 28/11/2020 10:46:41

Yveen
Membre
Inscription : 10/11/2020
Messages : 6

Re : Nasal et IA

Hooo. Ça me parait une super bonne idée. Mais je ne vois pas comment faire ça en Nasal. Tu veux bien m'aider ?


FG version 2020.3.2
Windows10, NVIDIA GeForce GTX 1050 Ti, 16Go RAM DDR3-1600, i5-4670K

Hors ligne

#9 28/11/2020 13:07:34

zakharov
Membre historique du forum.
Inscription : 11/09/2005
Messages : 958

Re : Nasal et IA

Salut Yveen

ben tout dépend de ce que tu veux faire, et de comment tu t'es organisé. J'imagine un truc du genre tu suis ton scénario jusqu'à un point via un listener qui suit la propriété qui stocke l'étape du scénario, une fois à l'étape kivabien tu modifies la propriété qui indique à FG quel est le type d'AI (props.globals ou setprop) : «aircraft» pour un décollage, ou «groundvehicle» suite à un atterrissage (tu le sais car c'est toi qui a écrit le scénario smile).

Je ne sais pas si ça a déjà été tenté, ni même si ça va donner le résultat attendu smile

@+
bons vols
zakh


le zkv1000
Debian Bookworm sur i7-9750H, 16G, NV GeForce GTX 1660 Ti MaxQ 6Go
FG next compilé à la mano
Joystick TM T. Stick X avec fichier de conf perso

Hors ligne

#10 28/11/2020 15:55:19

Yveen
Membre
Inscription : 10/11/2020
Messages : 6

Re : Nasal et IA

OK

Je crois que je vois l'esprit mais je ne retrouve pas type AI dans l'arbre des propriétés. Et dans Nasal, je ne sais pas par quel "objet" accéder à cela.
J'ai mon avion au bout de mon props.globals.getNode("ai/models/aircraft[]") ... mais j'ignore comment lui attribuer "groundvehicle" ou une valeur autre que celles visibles dans l'arbre.

C'est possible de faire ça?

(ça se voit que je n'y connais pas grand chose en programmation ?) big_smile


FG version 2020.3.2
Windows10, NVIDIA GeForce GTX 1050 Ti, 16Go RAM DDR3-1600, i5-4670K

Hors ligne

Pied de page des forums