Domelecq
PILOTE DE LIGNE
- Messages
- 704
- Réactions
- 6
- Points
- 108
Bonjour a tous,
Afin d'améliorer encore l'immersion dans mon cockpit, j'ai décidé d'améliorer mon
système son.
j'ai maintenant cinq zones de diffusions sonores totalement indépendantes (merci prosim).
Et j'ai aussi investi dans un bodyshaker et ampli dédié (coût total de 40 euros).
Ce Bodyshaker est fixé directement sous mon siege (le siège copilote vas bientôt suivre).
Le problème est de trouver le moyen de répartir correctement ces sons, et surtout les jouer au bon moment.
Ne trouvant pas mon bonheur, j'ai décidé en m’inspirant de ce qui avait déjà été fait,
de créer des fichiers LUA permettant de gérer ces sons automatiquement.
C'est une première version, je vais l’améliorer, et je partagerais mes avancées sur ce post.
il y a en tout 14 fichiers LUA, il suffit de les copier/coller dans le répertoire module de P3DV4.
Ces fichiers vont a la fois gérer les annonces des hôtesses dans les différentes phases de vol, les bruits ambiants, et surtout les vibrations du bodyshaker.
Rassurer tout ce fait de façon très transparente, le plus long est de rajouter les sons a PROSIM et de leur affecter un Offset FSUIPC de déclenchement.
Mais en suivant mon tuto vous verrez que c'est très simple.
Je vais maintenant vous décrire la fonctions de chacun des scripts LUA.
-----------------------------------------------------------------------------------
I DESCRIPTION SCRIPT LUA
-----------------------------------------------------------------------------------
1. ipcReady
Ce fichier Lua est le lanceur de script automatique, au lancement de P3D (et donc de
FSUIPC), il est lu, et son contenu est lancé.
Par exemple avec cette ligne :
ipc.macro("Lua BOARDING")
Nous lançons BOARDING.lua, il est important de bien respecter les majuscules et orthographe sinon le fichier ne se lancera pas.
si vous souhaitez enlevez des scripts automatiques, il vous suffit de supprimer la ligne correspondante.
Si vous avez déjà des script dans ipcReady, alors ajouter les miens à la suite.
------------------------------------------------------------------------------------
2. BOARDING
Pour commencer il est important de démarrer avec les portes de l'avion fermées
Ce lua vas attendre de votre part plusieurs actions
2.1 EMBARQUEMENT
Pour activer l’embarquement, il suffit d’activer le seatbelt sign et no smoking sign
et ensuite de demander l’ouverture de la porte principale (shift+E dans P3D)
Si tout se passe bien :
- Message EMBARQUEMENT sur l'écran
- Musique embarquement jouée automatiquement
- Son des passagers qui embarquent
2.2 FIN EMBARQUEMENT
pour cela on referme la porte principale (de nouveau shift+E)
Si tout se passe bien :
- Message OK POUR DÉPART
- la Musique sarrête
- son des passagers en cruise
- Annonce de bienvenue de lhôtesse.
------------------------------------------------------------------------------------
3. SAFETY
Le lua safet'y va détecter un déplacement de l'avion.
Quand la vitesse sol dépassera 8 knots :
- Annonce de l’hôtesse des consignes de sécurité
------------------------------------------------------------------------------------
4. TAXI
le lua taxi est conditionné par la vitesse sol et que l'avion se touve bien au sol
si la vitesse sol est supérieur a 3 et inférieur a 15 alors :
- son ground roll 1
- son ground roll bass 1 (pour bodyshaker)
si la vitesse sol est superieur a 15 et inferieur a 25 alors :
- son ground roll 2
- son ground roll bass 2 (pour bodyshaker)
si la vitesse sol est superieur a 25 et inferieur a 40 alors :
- son ground roll 3
- son ground roll bass 3 (pour bodyshaker)
si la vitesse sol est supérieur a 40 alors :
- son ground roll max
- son ground roll max - bass (pour bodyshaker)
une fois que l'avion ne touche plus le sol les sons sarrêtent.
-------------------------------------------------------------------------------------
5. RAIN
Le lua RAIN est conditionné par la presence pluie et intensité pluie.
Les trois sons :
RAIN 1
RAIN 2
RAIN 3
correspondent a 3 intensités (volume a régler dans prosimaudio)
------------------------------------------------------------------------------------
6. PARKING
Le lua PARKING est conditionné par la position du parking break
si enclenché :
- son parking set
- son parking set bass (bodyshaker)
si relaché :
- son parking release
- son parking release bass (bodyshaker)
-------------------------------------------------------------------------------------
7. GEAR
Le lua GEAR est conditionné par la position du levier.
Avec audacit'y j'ai parfaitement s'ynchronisé le son audible et les vibrations du siège
si UP :
- son gear up
- son gear up bass (bodyshaker)
si DOWN :
- son gear down
- son gear down bass (bodyshaker)
-------------------------------------------------------------------------------------
8. VIBRATIONS
le lua Vibration est conditionné par la puissance moteur en %
Inferieur a 80 % : plus de vibration
entre 80 et 90 % : vibration low bass (bodyshaker)
entre 90 et 97 % : vibration med bass (bodyshaker)
supérieur a 97 % : vibration high bass (bodyshaker)
------------------------------------------------------------------------------------
9. TURBULENCE
Le lua turbulence est conditionné :
- turbulences vent et turbulences nuage de P3D
- turbulences de Active sky
si vous utilisez active sky il faudra renomer TURBULENCE(ASCA) en TURBULENCE.
a laide audacit'y j'ai essayé de reproduire des turbulences réalistent pour le bodyshaker. Vous me direz ce que vous en pensez
le niveau de turbulence vari entre 0 et 1000
les sons :
- turbulence low bass (bodyshaker)
- turbulence med bass (bodyshaker)
- turbulence high bass (bodyshaker)
seront joué automatiquement suivant le niveau de turbulence.
le niveau ressenti sera lié au volume réglé pour chacun de ces sons dans prosimaudio
-------------------------------------------------------------------------------------
10. CLIMB
le lua climb est lié a la vertical speed et altitude
si VS est supérieur a 1200 et altitude supérieur a 10000 alors
- annonce de lhôtesse que l'avion est en phase de montée
-------------------------------------------------------------------------------------
11. CRUISE
le lua cruise est conditionné par la position du seatbelt sign sur off et altitude supérieur a 10000
- annonce de lhôtesse
-------------------------------------------------------------------------------------
12. DESCENT
le lua descent est lié a la vertical speed et altitude
si VS est supérieur a -1200 et altitude inférieur a 18000 alors :
- annonce descent de lhôtesse
-------------------------------------------------------------------------------------
13. APPROACH
le lua descent est lié a la vertical speed et altitude
si VS est supérieur a -500 et altitude inférieur a 6000 alors :
- annonce approach de lhôtesse
-------------------------------------------------------------------------------------
14. FLAPS
Le lua FLAPS est lié a la position des FLAPS (15,25,30,40) et avion en l'air.
les sons correspondants a chaque position de flaps a partir de 15 a 40 seront joué automatiquement
- FlapsWind_15
- FlapsWind_25
- FlapsWind_30
- FlapsWind_40
Je n'ai pas mis de son pour le bodyshaker vol'ontairement.
-------------------------------------------------------------------------------------
maintenant voyons le paramétrage des sons.
-----------------------------------------------------------------------------------
II PARAMÉTRAGE SONS
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
1. ajout des sons dans prosim
Menu Config / Audio Addons
on rajoute l'ensemble des sons contenu dans le répertoire audiolua
ne pas oublié de paramétrer si le son doit être joué en continu ou une seule fois voir listing ci dessous.
-----------------------------------------------------------------------------------
2. Configuration audio
Menu Config / Configuration / onglet AUDIO (Switch)
Nous allons attribuer a chaque son (active) un offset FSUIPC 8bit U.
par exemple musique embarquement sera lié a l'offset 0x5713.1
trouvez la liste des offsets ci dessous :
------------------------------------------------------------------------------------
3. Prosimaudio
Il vous faudra créer autant de prosimaudio que de zones sonore (sorties sons de votre pc et enceintes)
un prosim audio sera dédié pour le bodyshaker
bien régler les différents volumes a votre convenance.
l'avantage de prosim est de pouvoir déporter les prosim audio, par exemple dans mon cas le PC 2 gère le son ATC (proATC) et certain son prosim vers mes hauts parleurs plafond et casque pilote et copilote
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
4. Driver
Ne pas oublier d'activer FSUIPC dans les drivers Prosim
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Conclusion.
Surtout n'hésitez pas a me donner votre avis, surtout vous pilotes qui avaient le ressenti du cockpit et du niveau de vibrations suivant les différentes phases. Le but est d'être au plus proche de la réalité (en tout cas essayer).
Chaque Lua est totalement indépendant, rien ne vous oblige a les utiliser tous.
de même si vous ne souhaitez pas utiliser un des sons, il suffit de pas le coller, même si le lua ne le trouve pas cela ne provoque pas d'erreur. ou de le décocher dans prosim audio
bien entendu libre a vous de mettre vos sons préférés, il suffira de les mettre en lieu et place des miens.
Si vous avez d'autres idées pour encore améliorer l'immersion.
Pour ceux qui le souhaite je pourrais vous envoyer par mail les sons (envoyez moi un mp)
Philippe
Afin d'améliorer encore l'immersion dans mon cockpit, j'ai décidé d'améliorer mon
système son.
j'ai maintenant cinq zones de diffusions sonores totalement indépendantes (merci prosim).
Et j'ai aussi investi dans un bodyshaker et ampli dédié (coût total de 40 euros).
Ce Bodyshaker est fixé directement sous mon siege (le siège copilote vas bientôt suivre).
Le problème est de trouver le moyen de répartir correctement ces sons, et surtout les jouer au bon moment.
Ne trouvant pas mon bonheur, j'ai décidé en m’inspirant de ce qui avait déjà été fait,
de créer des fichiers LUA permettant de gérer ces sons automatiquement.
C'est une première version, je vais l’améliorer, et je partagerais mes avancées sur ce post.
il y a en tout 14 fichiers LUA, il suffit de les copier/coller dans le répertoire module de P3DV4.
Ces fichiers vont a la fois gérer les annonces des hôtesses dans les différentes phases de vol, les bruits ambiants, et surtout les vibrations du bodyshaker.
Rassurer tout ce fait de façon très transparente, le plus long est de rajouter les sons a PROSIM et de leur affecter un Offset FSUIPC de déclenchement.
Mais en suivant mon tuto vous verrez que c'est très simple.
Je vais maintenant vous décrire la fonctions de chacun des scripts LUA.
-----------------------------------------------------------------------------------
I DESCRIPTION SCRIPT LUA
-----------------------------------------------------------------------------------
1. ipcReady
Ce fichier Lua est le lanceur de script automatique, au lancement de P3D (et donc de
FSUIPC), il est lu, et son contenu est lancé.
Par exemple avec cette ligne :
ipc.macro("Lua BOARDING")
Nous lançons BOARDING.lua, il est important de bien respecter les majuscules et orthographe sinon le fichier ne se lancera pas.
si vous souhaitez enlevez des scripts automatiques, il vous suffit de supprimer la ligne correspondante.
Si vous avez déjà des script dans ipcReady, alors ajouter les miens à la suite.
Code:
[== Indéfini ==]
ipc.macro("Lua APPROACH")
ipc.macro("Lua BOARDING")
ipc.macro("Lua CLIMB")
ipc.macro("Lua CRUISE")
ipc.macro("Lua DESCENT")
ipc.macro("Lua GEAR")
ipc.macro("Lua PARKING")
ipc.macro("Lua RAIN")
ipc.macro("Lua SAFETY")
ipc.macro("Lua TAXI")
ipc.macro("Lua TURBULENCE")
ipc.macro("Lua VIBRATION")
------------------------------------------------------------------------------------
2. BOARDING
Pour commencer il est important de démarrer avec les portes de l'avion fermées
Ce lua vas attendre de votre part plusieurs actions
2.1 EMBARQUEMENT
Pour activer l’embarquement, il suffit d’activer le seatbelt sign et no smoking sign
et ensuite de demander l’ouverture de la porte principale (shift+E dans P3D)
Si tout se passe bien :
- Message EMBARQUEMENT sur l'écran
- Musique embarquement jouée automatiquement
- Son des passagers qui embarquent
2.2 FIN EMBARQUEMENT
pour cela on referme la porte principale (de nouveau shift+E)
Si tout se passe bien :
- Message OK POUR DÉPART
- la Musique sarrête
- son des passagers en cruise
- Annonce de bienvenue de lhôtesse.
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- BOARDING
------------------------------------------------------------------------------------------------
------------------
-- BOARDING --
------------------
boardingflag=0 --détection embarquement
boardingfin=0 --détection fin embarquement
function boarding(offset,value)
Seatbeltsign=ipc.readUB("341D")
Nosmokingsign=ipc.readUB("341C")
ground=ipc.readUB("0366") --only on ground
porte=ipc.readUB("3367") --détection portes
if (ground == 1) and (porte > 0) and (Seatbeltsign == 1) and (Nosmokingsign == 1) and (boardingflag==0) then
ipc.setbitsUB(0x5713, 1) -- 0x5713 bit 0 boarding sound
ipc.setbitsUB(0x5713, 2) -- 0x5713 bit 1 music
boardingflag=1
ipc.display("EMBARQUEMENT", 5)
end
if (porte == 0) and (boardingflag == 1) and (boardingfin == 0) then
ipc.clearbitsUB(0x5713, 1) -- 0x5713 bit 0 fin boarding sound
ipc.clearbitsUB(0x5713, 2) -- 0x5713 bit 1 fin music
ipc.setbitsUB(0x5713, 4) -- 0x5713 bit 2 cruise passager sound
ipc.sleep(10000)
ipc.setbitsUB(0x5714, 16) -- 0x5714 bit 4 gate depart sound
boardingfin=1 -- fin de boarding
ipc.display("OK POUR DEPART", 5)
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x3367,"UB","boarding") -- suivant position porte
------------------------------------------------------------------------------------
3. SAFETY
Le lua safet'y va détecter un déplacement de l'avion.
Quand la vitesse sol dépassera 8 knots :
- Annonce de l’hôtesse des consignes de sécurité
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- SAFETY ANNONCE
------------------------------------------------------------------------------------------------
------------------
--SAFETY MESSAGE--
------------------
safet'yflag=0
function safet'y(offset,value)
Seatbeltsign=ipc.readUB("341D")
Nosmokingsign=ipc.readUB("341C")
ground=ipc.readUB("0366") --only on ground
gs=ipc.readUD("02B4") -- valeur brut de la vitesse sol
groundspeed = gs / 65536.0 * 1.94384 -- valeur vitesse sol en knots
if (ground == 1) and (safet'yflag==0) and (groundspeed >= and (Seatbeltsign == 1) then
ipc.setbitsUB(0x5713, -- 0x5713 bit 3 safet'y briefing
ipc.display("SAFETY BRIEFING", 5)
safet'yflag=1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x02B4,"UD","safet'y") -- suivant gs
------------------------------------------------------------------------------------
4. TAXI
le lua taxi est conditionné par la vitesse sol et que l'avion se touve bien au sol
si la vitesse sol est supérieur a 3 et inférieur a 15 alors :
- son ground roll 1
- son ground roll bass 1 (pour bodyshaker)
si la vitesse sol est superieur a 15 et inferieur a 25 alors :
- son ground roll 2
- son ground roll bass 2 (pour bodyshaker)
si la vitesse sol est superieur a 25 et inferieur a 40 alors :
- son ground roll 3
- son ground roll bass 3 (pour bodyshaker)
si la vitesse sol est supérieur a 40 alors :
- son ground roll max
- son ground roll max - bass (pour bodyshaker)
une fois que l'avion ne touche plus le sol les sons sarrêtent.
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- GROUNDROLL
------------------------------------------------------------------------------------------------
----------------------
-- GROUND ROLL --
----------------------
function groundroll(offset,value)
ground=ipc.readUB("0366") --only on ground
if (ground == 1) then
gs=ipc.readUD("02B4") -- valeur brut de la vitesse sol
groundspeed = gs / 65536.0 * 1.94384 -- valeur vitesse sol en knots
if (ground == 1) and (groundspeed > 2) and ( groundspeed <= 15 ) then -- groundroll niveau 1
ipc.setbitsUB(0x5715, 1) -- 0x5715 bit 0 et 3
ipc.setbitsUB(0x5715,
else
ipc.clearbitsUB(0x5715, 1) -- 0x5715 bit 0 et 3
ipc.clearbitsUB(0x5715,
end
if (ground == 1) and (groundspeed > 15) and ( groundspeed <= 25 ) then -- groundroll niveau 2
ipc.setbitsUB(0x5715, 2) -- 0x5715 bit 1 et 4
ipc.setbitsUB(0x5715, 16)
else
ipc.clearbitsUB(0x5715, 2) -- 0x5715 bit 1 et 4
ipc.clearbitsUB(0x5715, 16)
end
if (ground == 1) and (groundspeed > 25) and ( groundspeed <= 40 ) then -- groundroll niveau 3
ipc.setbitsUB(0x5715, 4) -- 0x5715 bit 2 et 5
ipc.setbitsUB(0x5715, 32)
else
ipc.clearbitsUB(0x5715, 4) -- 0x5715 bit 2 et 5
ipc.clearbitsUB(0x5715, 32)
end
if (ground == 1) and (groundspeed > 40) then -- groundroll niveau MAX BASS
ipc.setbitsUB(0x5716, 16) -- 0x5716 bit 4
else
ipc.clearbitsUB(0x5716, 16) -- 0x5716 bit 4
end
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x02B4,"UD","groundroll")
-------------------------------------------------------------------------------------
5. RAIN
Le lua RAIN est conditionné par la presence pluie et intensité pluie.
Les trois sons :
RAIN 1
RAIN 2
RAIN 3
correspondent a 3 intensités (volume a régler dans prosimaudio)
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- RAIN
------------------------------------------------------------------------------------------------
---------------------------
-- RAIN --
---------------------------
rainflag=0
function rain(offset,value)
raincontrol=ipc.readUB("04CC")
rainforce=ipc.readUB("04CB")
if (raincontrol == 1) and (rainforce <= 2) then
ipc.display("pluie", 5)
ipc.setbitsUB(0x5716, 64) -- 0x5716 bit 6 pluie faible
else
ipc.clearbitsUB(0x5716, 64)
end
if (raincontrol == 1) and (rainforce > 2) and (rainforce <= 4) then
ipc.display("pluie MOY", 5)
ipc.setbitsUB(0x5716, 12 -- 0x5716 bit 7 pluie moyenne
else
ipc.clearbitsUB(0x5716, 12
end
if (raincontrol == 1) and (rainforce == 5) then
ipc.display("pluie FORT", 5)
ipc.setbitsUB(0x5717, 1) -- 0x5717 bit 0 pluie forte
else
ipc.clearbitsUB(0x5717, 1)
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x04CB,"UB","rain")
------------------------------------------------------------------------------------
6. PARKING
Le lua PARKING est conditionné par la position du parking break
si enclenché :
- son parking set
- son parking set bass (bodyshaker)
si relaché :
- son parking release
- son parking release bass (bodyshaker)
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- PARKING
------------------------------------------------------------------------------------------------
---------------------------
-- PARKING --
---------------------------
parkingflag=0
function parking(offset,value)
parkingcontrol=ipc.readSW("0BC8")
if (parkingcontrol > 0) then
ipc.display("SET", 5)
ipc.setbitsUB(0x5716, 4)
ipc.setbitsUB(0x5717, 32) -- 0x5716 bit 2 parking set
ipc.clearbitsUB(0x5716, -- 0x5717 bit 5 parking set bass
ipc.clearbitsUB(0x5717, 64)
parkingflag=1
end
if (parkingcontrol == 0) and (parkingflag == 1) then
ipc.display("RELEASE", 5)
ipc.setbitsUB(0x5716,
ipc.setbitsUB(0x5717, 64)
ipc.clearbitsUB(0x5716, 4)
ipc.clearbitsUB(0x5717, 32) -- 0x5716 bit 3 parking release
parkingflag=0 -- 0x5717 bit 6 parking release bass
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0BC8,"SW","parking")
-------------------------------------------------------------------------------------
7. GEAR
Le lua GEAR est conditionné par la position du levier.
Avec audacit'y j'ai parfaitement s'ynchronisé le son audible et les vibrations du siège
si UP :
- son gear up
- son gear up bass (bodyshaker)
si DOWN :
- son gear down
- son gear down bass (bodyshaker)
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- LANDING GEAR
------------------------------------------------------------------------------------------------
---------------------------
-- GEAR --
---------------------------
gearupflag=0
function gear(offset,value)
gearcontrol=ipc.readSW("0BE8")
if (gearcontrol == 0) then
ipc.display("UP", 5)
ipc.setbitsUB(0x5714, 32) -- 0x5714 bit 5 gearup
ipc.clearbitsUB(0x5714, 64)
gearupflag=1
end
if (gearcontrol > 0) and (gearupflag == 1) then
ipc.display("DOWN", 5)
ipc.setbitsUB(0x5714, 64)
ipc.clearbitsUB(0x5714, 32) -- 0x5714 bit 6 geardown
gearupflag=0
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0BE8,"SW","gear")
-------------------------------------------------------------------------------------
8. VIBRATIONS
le lua Vibration est conditionné par la puissance moteur en %
Inferieur a 80 % : plus de vibration
entre 80 et 90 % : vibration low bass (bodyshaker)
entre 90 et 97 % : vibration med bass (bodyshaker)
supérieur a 97 % : vibration high bass (bodyshaker)
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- VIBRATION MOTEUR
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
----------------------
-- ENGINE VIBRATION --
----------------------
vibrationflag=0
function engine(offset,value)
rotorspeed=ipc.readUW("0898") / 164
if (rotorspeed > 80) and ( rotorspeed <=90 ) then -- vibration moteur niveau 1
ipc.setbitsUB(0x5713, 12 -- 0x5713 bit 7
else
ipc.clearbitsUB(0x5713, 12 -- 0x5713 bit 7
end
if (rotorspeed > 90) and (rotorspeed <= 97) then -- vibration moteur niveau 2
ipc.setbitsUB(0x5714, 1) -- 0x5714 bit 0
else
ipc.clearbitsUB(0x5714, 1) -- 0x5714 bit 0
end
if (rotorspeed > 97) then -- vibration moteur niveau 3
ipc.setbitsUB(0x5714, 2) -- 0x5714 bit 1
else
ipc.clearbitsUB(0x5714, 2) -- 0x5714 bit 1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0898,"UD","engine")
------------------------------------------------------------------------------------
9. TURBULENCE
Le lua turbulence est conditionné :
- turbulences vent et turbulences nuage de P3D
- turbulences de Active sky
si vous utilisez active sky il faudra renomer TURBULENCE(ASCA) en TURBULENCE.
a laide audacit'y j'ai essayé de reproduire des turbulences réalistent pour le bodyshaker. Vous me direz ce que vous en pensez
le niveau de turbulence vari entre 0 et 1000
les sons :
- turbulence low bass (bodyshaker)
- turbulence med bass (bodyshaker)
- turbulence high bass (bodyshaker)
seront joué automatiquement suivant le niveau de turbulence.
le niveau ressenti sera lié au volume réglé pour chacun de ces sons dans prosimaudio
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- TURBULENCE
------------------------------------------------------------------------------------------------
------------------
-- TURBULENCE --
------------------
turbulenceflag=0
function turbulence(offset,value)
ground=ipc.readUB("0366") --only on ground
if (ground == 0) then
turbulencecloud=ipc.readUW("0E88")
turbulencewind=ipc.readUW("0E98")
turbulenceasca=ipc.readFLT("8638")
turbulencelevel=(turbulencecloud + turbulencewind) * 2 --niveau de turbulence de 0 à 1000
alt = ipc.readSD(0x0574) * 3.28084
gnd = ipc.readSW(0x0B4C) * 3.28084
agl = alt - gnd
if (turbulencelevel > 20) and (turbulencelevel <= 375) then -- turbulence niveau 1
ipc.setbitsUB(0x5713, 16) -- 0x5713 bit 4 turbulence low
else
ipc.clearbitsUB(0x5713, 16) -- 0x5713 bit 4
end
if (turbulencelevel > 375) and (turbulencelevel <= 750) then -- turbulence niveau 2
ipc.setbitsUB(0x5713, 32) -- 0x5713 bit 5 turbulence med
else
ipc.clearbitsUB(0x5713, 32) -- 0x5713 bit 5
end
if (turbulencelevel > 750) then -- turbulence niveau 3
ipc.setbitsUB(0x5713, 64) -- 0x5713 bit 6 turbulence heavy
else
ipc.clearbitsUB(0x5713, 64) -- 0x5713 bit 6
end
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0E88,"UW","turbulence") -- suivant turbulence nuage
event.offset(0x0E98,"UW","turbulence") -- suivant turbulence vent
event.offset(0x8638,"FLT","turbulence") -- suivant turbulence activesky
--global variables
--end script--
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- TURBULENCE ASCA
------------------------------------------------------------------------------------------------
------------------
-- TURBULENCE --
------------------
turbulenceflag=0
function turbulence(offset,value)
ground=ipc.readUB("0366") --only on ground
if (ground == 0) then
turbulencecloud=ipc.readUW("0E88")
turbulencewind=ipc.readUW("0E98")
turbulenceasca=ipc.readFLT("8638")
turbulencelevel= turbulenceasca--niveau de turbulence de 0 à 1000
alt = ipc.readSD(0x0574) * 3.28084
gnd = ipc.readSW(0x0B4C) * 3.28084
agl = alt - gnd
if (turbulencelevel > 20) and (turbulencelevel <= 375) then -- turbulence niveau 1
ipc.setbitsUB(0x5713, 16) -- 0x5713 bit 4 turbulence low
else
ipc.clearbitsUB(0x5713, 16) -- 0x5713 bit 4
end
if (turbulencelevel > 375) and (turbulencelevel <= 750) then -- turbulence niveau 2
ipc.setbitsUB(0x5713, 32) -- 0x5713 bit 5 turbulence med
else
ipc.clearbitsUB(0x5713, 32) -- 0x5713 bit 5
end
if (turbulencelevel > 750) then -- turbulence niveau 3
ipc.setbitsUB(0x5713, 64) -- 0x5713 bit 6 turbulence heavy
else
ipc.clearbitsUB(0x5713, 64) -- 0x5713 bit 6
end
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0E88,"UW","turbulence") -- suivant turbulence nuage
event.offset(0x0E98,"UW","turbulence") -- suivant turbulence vent
event.offset(0x8638,"FLT","turbulence") -- suivant turbulence activesky
--global variables
--end script--
-------------------------------------------------------------------------------------
10. CLIMB
le lua climb est lié a la vertical speed et altitude
si VS est supérieur a 1200 et altitude supérieur a 10000 alors
- annonce de lhôtesse que l'avion est en phase de montée
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- CLIMB ANNONCE
------------------------------------------------------------------------------------------------
------------------------
-- Climb Announcements--
------------------------
climbflag=0
function climb(offset,value)
vspeed=ipc.readSW("0842") * -3.28084
groundalt=ipc.readUD("0020") * 3.28084 /256
alt=ipc.readUD("0574") * 3.28084
altogr=alt - groundalt
if (alt > 10000) and (vspeed > 1200) and (climbflag == 0) then
ipc.setbitsUB(0x5716, 3) -- chime
ipc.sleep(10000)
ipc.clearbitsUB(0x5716, 3)
ipc.sleep(10000)
ipc.setbitsUB(0x5714, 4) -- 0x5714 bit 2 annonce montée
ipc.display("MONTEE EN COURS", 7)
climbflag=1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0842,"UW","climb")
-------------------------------------------------------------------------------------
11. CRUISE
le lua cruise est conditionné par la position du seatbelt sign sur off et altitude supérieur a 10000
- annonce de lhôtesse
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- CRUISE ANNONCE
------------------------------------------------------------------------------------------------
--------------------------
-- cruise Announcements --
--------------------------
cruiseflag=0
function cruise(offset,value)
Seatbeltsign=ipc.readUB("341D")
groundalt=ipc.readUD("0020") * 3.28084 /256
alt=ipc.readUD("0574") * 3.28084
if (Seatbeltsign == 0) and (cruiseflag == 0) and (alt > 10000) then
ipc.setbitsUB(0x5716, 3) -- chime
ipc.sleep(10000)
ipc.clearbitsUB(0x5716, 3)
ipc.sleep(10000)
ipc.setbitsUB(0x5714, 12 -- 0x5714 bit 7 annonce cruise
ipc.display("CRUISE ANNOUNCEMENTS", 7)
cruiseflag=1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x341D,"UB","cruise")
-------------------------------------------------------------------------------------
12. DESCENT
le lua descent est lié a la vertical speed et altitude
si VS est supérieur a -1200 et altitude inférieur a 18000 alors :
- annonce descent de lhôtesse
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- DESCENT ANNONCE
------------------------------------------------------------------------------------------------
---------------------------
-- Descent announcements --
---------------------------
descentflag=0
function descent(offset,value)
vspeed=ipc.readSW("0842") * 3.28084
groundalt=ipc.readUD("0020") * 3.28084 /256
alt=ipc.readUD("0574") * 3.28084
altogr=alt - groundalt
if (alt < 18000) and (alt > 10000) and (vspeed > 1200) and (descentflag == 0) then
ipc.setbitsUB(0x5715, 64) -- 0x5715 bit 6 annonce descente
ipc.display("DESCENTE", 7)
descentflag=1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0842,"SW","descent")
-------------------------------------------------------------------------------------
13. APPROACH
le lua descent est lié a la vertical speed et altitude
si VS est supérieur a -500 et altitude inférieur a 6000 alors :
- annonce approach de lhôtesse
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- APPROACH MESSAGE
------------------------------------------------------------------------------------------------
---------------------------
-- Approach announcements --
---------------------------
approachflag=0
function approach(offset,value)
vspeed=ipc.readSW("0842") * 3.28084
groundalt=ipc.readUD("0020") * 3.28084 /256
alt=ipc.readUD("0574") * 3.28084
altogr=alt - groundalt
if (alt < 5000) and (vspeed > 500) and (approachflag == 0) then
ipc.setbitsUB(0x5715, 12 -- 0x5714 bit 7 annonce approach
ipc.display("APPROACH", 7)
approachflag=1
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0842,"SW","approach")
-------------------------------------------------------------------------------------
14. FLAPS
Le lua FLAPS est lié a la position des FLAPS (15,25,30,40) et avion en l'air.
les sons correspondants a chaque position de flaps a partir de 15 a 40 seront joué automatiquement
- FlapsWind_15
- FlapsWind_25
- FlapsWind_30
- FlapsWind_40
Je n'ai pas mis de son pour le bodyshaker vol'ontairement.
Code:
[== Indéfini ==]
------------------------------------------------------------------------------------------------
-- Auteur : Philippe LECQ
-- pseudo : domelecq
-- forum : www.flightpilote.fr
-- 2019
-- VERSION 1.1
-- PROSIM737
-- FLAPS
------------------------------------------------------------------------------------------------
------------------
-- FLAPS --
------------------
flapflag=0
function flap(offset,value)
ground=ipc.readUB("0366") --only on ground
flapos=ipc.readUW("0BE0")
if (ground == 0) then
flapos=ipc.readUW("0BE0")
alt = ipc.readSD(0x0574) * 3.28084
gnd = ipc.readSW(0x0B4C) * 3.28084
agl = alt - gnd
if (flapos >= 6144) and (flapos < 10239) then -- FLAP 15
ipc.setbitsUB(0x5717, 1) -- 0x5717 bit 0
else
ipc.clearbitsUB(0x5717, 1) -- 0x5717 bit 0
end
if (flapos >= 10239) and (flapos < 12287) then -- FLAP 25
ipc.setbitsUB(0x5717, 2) -- 0x5717 bit 1
else
ipc.clearbitsUB(0x5717, 2) -- 0x5717 bit 1
end
if (flapos >= 12287) and (flapos < 16383) then -- FLAP 30
ipc.setbitsUB(0x5717, 4) -- 0x5717 bit 2
else
ipc.clearbitsUB(0x5717, 4) -- 0x5717 bit 2
end
end
if (flapos == 16383) then -- FLAP 40
ipc.setbitsUB(0x5717, -- 0x5717 bit 3
else
ipc.clearbitsUB(0x5717, -- 0x5717 bit 3
end
end
-------------------------------
--LUA calls for events FSUIPC--
-------------------------------
event.offset(0x0BE0,"UW","flap") -- suivant position flap
--global variables
--end script--
-------------------------------------------------------------------------------------
maintenant voyons le paramétrage des sons.
-----------------------------------------------------------------------------------
II PARAMÉTRAGE SONS
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
1. ajout des sons dans prosim
Menu Config / Audio Addons
on rajoute l'ensemble des sons contenu dans le répertoire audiolua
ne pas oublié de paramétrer si le son doit être joué en continu ou une seule fois voir listing ci dessous.
-----------------------------------------------------------------------------------
2. Configuration audio
Menu Config / Configuration / onglet AUDIO (Switch)
Nous allons attribuer a chaque son (active) un offset FSUIPC 8bit U.
par exemple musique embarquement sera lié a l'offset 0x5713.1
trouvez la liste des offsets ci dessous :
------------------------------------------------------------------------------------
3. Prosimaudio
Il vous faudra créer autant de prosimaudio que de zones sonore (sorties sons de votre pc et enceintes)
un prosim audio sera dédié pour le bodyshaker
bien régler les différents volumes a votre convenance.
l'avantage de prosim est de pouvoir déporter les prosim audio, par exemple dans mon cas le PC 2 gère le son ATC (proATC) et certain son prosim vers mes hauts parleurs plafond et casque pilote et copilote
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
4. Driver
Ne pas oublier d'activer FSUIPC dans les drivers Prosim
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Conclusion.
Surtout n'hésitez pas a me donner votre avis, surtout vous pilotes qui avaient le ressenti du cockpit et du niveau de vibrations suivant les différentes phases. Le but est d'être au plus proche de la réalité (en tout cas essayer).
Chaque Lua est totalement indépendant, rien ne vous oblige a les utiliser tous.
de même si vous ne souhaitez pas utiliser un des sons, il suffit de pas le coller, même si le lua ne le trouve pas cela ne provoque pas d'erreur. ou de le décocher dans prosim audio
bien entendu libre a vous de mettre vos sons préférés, il suffira de les mettre en lieu et place des miens.
Si vous avez d'autres idées pour encore améliorer l'immersion.
Pour ceux qui le souhaite je pourrais vous envoyer par mail les sons (envoyez moi un mp)
Philippe