Recherche d'informations.

Salle dédiée aux modules "réacteurs"

Topic author
Winizz
Nouvelle Recrue
Nouvelle Recrue
Messages : 30
Inscription : 23 octobre 2010

Recherche d'informations.

#1

Message par Winizz »

Bonjour à tous !

Actuellement, des amis et moi, sommes en train "d'essayer" de développer un alphajet pour DCS. Le modèle 3d externe est quasiment terminé (modèle de base modélisé par mcgee33).

Image

(Rien n'est définitif)

Un cockpit est également en cours de modélisation.

N'ayant jamais fais de .LUA, je voulais savoir si quelqu'un pourrait m'expliquer comment rendre un bouton cliquable depuis son animation sous 3D studio Max au "code" que nous écrivons dans les .LUA s'il vous plaît (exemple d'un levier de train et/ou aiguille de gauge, ou autre histoire de comprendre le principe).

Merci d'avance !

Pat01
Apprenti-Mécano
Apprenti-Mécano
Messages : 260
Inscription : 12 janvier 2004

#2

Message par Pat01 »

Ok ça roule.

Dans le cas que je vais expliquer, je n'utilise aucune dll.
Le jeu utilise par défaut les dll de base (cockpitbase.dll,...)

Commençons par une aiguille de jauge (c'est le plus simple)

arg_aiguille= numéro de l'argument pour la rotation de l'aiguille dans 3dsmax
disons que le dummy a été animé de 0 à 30 sur l'échelle de temps 3dsmax
(30 ou autre ça n'a pas d'importance)

Si la grandeur que tu veux mesurer possède déjà un controller c'est plus simple.
exemple : l'aiguille des mille pour l'altimetre barométrique.

dans mainpanel_init.lua

Baro_Altimeter_thousands = CreateGauge()
Baro_Altimeter_thousands.arg_number = arg_aiguille
Baro_Altimeter_thousands.input = {0,10000} -- m -- A AJUSTER
Baro_Altimeter_thousands.output = {0,1.0} -- A AJUSTER
Baro_Altimeter_thousands.controller = controllers.base_gauge_BarometricAltitude

Baro_Altimeter_thousands.input
A AJUSTER (valeurs non linéaires, ou pour que la valeur indiquée par l'aiguille colle avec l'image de la jauge)
indiquer un tableau par exemple {0,1000,2500,3000,3500,8000,10000}
Ces valeurs indiquent l'altitude indiquée par l'aiguille des mille
Ce tableau peut avoir un grand nombre d'entrées, pour l'instant je n'ai utilisé qu'une quinzaine d'entrées pour certaines jauges.
Il doit avoir le même nombre d'entrées que celui pour Baro_Altimeter_thousands.output

Baro_Altimeter_thousands.output
A AJUSTER un tableau avec le même nombre d'entrées que Baro_Altimeter_thousands.input
exemple {0,0.119,0.23,0.5,0.58,0.92,0.996}
ces valeurs indiquent la position de l'aiguille par rapport à l'échelle de temps 3dsmax.
0-> 0
0.33=>1/3 de l'échelle
etc...

Le plus simple pour avoir ces valeurs est de faire varier l'argument dans modelviewer et de noter les valeurs.

Pat01
Apprenti-Mécano
Apprenti-Mécano
Messages : 260
Inscription : 12 janvier 2004

#3

Message par Pat01 »

Allez, l'aiguille des dizaines (EDIT : des unités de 0 à 1000) (sans controller)
arg_aiguille_tenth numéro de l'argument pour la rotation de l'aiguille des dizaines dans 3dsmax

dans device.lua
devices["BARO_ALTIMETER"] = 8 ---> prochain numéro libre

dans device_init.lua
creators[devices.BARO_ALTIMETER] = {"avLuaDevice",LockOn_Options.script_path.."BaroAltimeter.lua"}

Dans BaroAltimeter.lua
local update_time_step = 0.04 -- au choix
make_default_activity(update_time_step)
local BaroAltTenth = get_param_handle("BARO_ALT_TENTH")
local sensor_data = get_base_data()
function update()
BaroAltTenth:set(sensor_data.getBarometricAltitude()%1000)
end

dans mainpanel_init.lua
Baro_Altimeter_tenth = CreateGauge("parameter") -- le mot "parameter" est important, il signifie au jeu que la jauge n'attend pas de controller
Baro_Altimeter_tenth.parameter_name = "BARO_ALT_TENTH" -- même nom que dans BaroAltimeter.lua --> get_param_handle("BARO_ALT_TENTH")
Baro_Altimeter_tenth.arg_number = arg_aiguille_tenth
Baro_Altimeter_tenth.input = {0, 1000} -- m -- A AJUSTER
Baro_Altimeter_tenth.output = {0, 1} -- 0.0 à 1.0 -- A AJUSTER

Topic author
Winizz
Nouvelle Recrue
Nouvelle Recrue
Messages : 30
Inscription : 23 octobre 2010

#4

Message par Winizz »

Merci Pat ! Nous irons tester tout cela !
Répondre

Revenir à « DCS : salles réacteurs »