Page 1 sur 1

[Tuto] Création de Viewports pour tous les afficheurs DCS

Publié : sam. mars 26, 2011 6:08 pm
par icemaker
J'ai réussi!!!!!!
Voici une petite capture de ce que j'ai obtenu sous DCS pour les affricheurs


Image

- Allez dans S:\DCS A-10C\Scripts\Aircrafts\A-10C\Cockpit
- Puis allez dans le dossier de l'afficheur que vous voulez modifier (Eg : AN_ALR69V\indicator
- puis ouvrez le fichier init.lua de votre afficheur (Eg : AN_ALR69V_init.lua here)
- Trouvez la ligne:

Code : Tout sélectionner

indicator_type = indicator_types.COMMON
-And Et collez le code suivant en dessous :

Code : Tout sélectionner

purposes = {render_purpose.GENERAL, render_purpose.HUD_ONLY_VIEW, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} screenspace_scale_initial = 3; screenspace_diplacement = {0,0} local x_size = 1 local y_size = 1 function update_screenspace_diplacement(zoom_value) screenspace_scale = screenspace_scale_initial + zoom_value; if screenspace_scale < 1 then screenspace_scale = 1 end local screen_height = 2.0; local screen_width = screen_height * LockOn_Options.screen.aspect; local scaled_width = SelfWidth * screenspace_scale local scaled_height = y_size * scaled_width -- for indicator all sizes is function of width scaled_width = x_size * scaled_width screenspace_diplacement = { 0.5 * screen_width - 0.5 * scaled_width, -0.5 * screen_height + 0.5 * scaled_height} screenspace_diplacement_arcade = {screenspace_diplacement[1], 0.5 * screen_height - 0.5 * scaled_height} end update_screenspace_diplacement(0) function set_full_viewport_coverage(viewport) local w = LockOn_Options.screen.width local h = LockOn_Options.screen.height local a = LockOn_Options.screen.aspect local x = (-1.0 + 2.0 * (viewport.x / w)) * a local y = 1.0 - 2.0 * (viewport.y / h) local width = (viewport.width / w) * a local height = viewport.height / h local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth screenspace_scale_x = 2.0 * width / scl_wdt_K screenspace_scale_y = 2.0 * height / scl_hgt_K screenspace_diplacement = {x + width, y - height} screenspace_diplacement_arcade = screenspace_diplacement purposes = {render_purpose.HUD_ONLY_VIEW, --render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always render_target_always = true end -- try to find assigned viewport local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua" local env = {} env.screen = LockOn_Options.screen local f = loadfile(multimonitor_setup_name) if f then setfenv(f,env) pcall(f) local vp = nil vp = env.[color=Red]RWR_SCREEN[/color] if vp ~= nil then dbg_print("ok we have directly assigned viewport to CDU\n") set_full_viewport_coverage(vp) end end
-Changer la valeur en rouge pour définir le nom de votre ViewPort
-Aller dans \Config\MonitorSetup\ProfilEcran.lua
- Ajouter une section Viewport Comme ceci :

Code : Tout sélectionner

RWR_SCREEN = { x = 1000; y = 1245; width = 170; height = 170; }
Amusez-Vous!!!

Publié : dim. mars 27, 2011 6:06 am
par Legionnaire
icemaker a écrit :J'ai réussi!!!!!!
Voici une petite capture de ce que j'ai obtenu sous DCS pour les affricheurs


Image

- Allez dans S:\DCS A-10C\Scripts\Aircrafts\A-10C\Cockpit
- Puis allez dans le dossier de l'afficheur que vous voulez modifier (Eg : AN_ALR69V\indicator
- puis ouvrez le fichier init.lua de votre afficheur (Eg : AN_ALR69V_init.lua here)
- Trouvez la ligne:

Code : Tout sélectionner

indicator_type = indicator_types.COMMON
-And Et collez le code suivant en dessous :

Code : Tout sélectionner

purposes = {render_purpose.GENERAL, render_purpose.HUD_ONLY_VIEW, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} screenspace_scale_initial = 3; screenspace_diplacement = {0,0} local x_size = 1 local y_size = 1 function update_screenspace_diplacement(zoom_value) screenspace_scale = screenspace_scale_initial + zoom_value; if screenspace_scale < 1 then screenspace_scale = 1 end local screen_height = 2.0; local screen_width = screen_height * LockOn_Options.screen.aspect; local scaled_width = SelfWidth * screenspace_scale local scaled_height = y_size * scaled_width -- for indicator all sizes is function of width scaled_width = x_size * scaled_width screenspace_diplacement = { 0.5 * screen_width - 0.5 * scaled_width, -0.5 * screen_height + 0.5 * scaled_height} screenspace_diplacement_arcade = {screenspace_diplacement[1], 0.5 * screen_height - 0.5 * scaled_height} end update_screenspace_diplacement(0) function set_full_viewport_coverage(viewport) local w = LockOn_Options.screen.width local h = LockOn_Options.screen.height local a = LockOn_Options.screen.aspect local x = (-1.0 + 2.0 * (viewport.x / w)) * a local y = 1.0 - 2.0 * (viewport.y / h) local width = (viewport.width / w) * a local height = viewport.height / h local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth screenspace_scale_x = 2.0 * width / scl_wdt_K screenspace_scale_y = 2.0 * height / scl_hgt_K screenspace_diplacement = {x + width, y - height} screenspace_diplacement_arcade = screenspace_diplacement purposes = {render_purpose.HUD_ONLY_VIEW, --render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always render_target_always = true end -- try to find assigned viewport local multimonitor_setup_name = "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua" local env = {} env.screen = LockOn_Options.screen local f = loadfile(multimonitor_setup_name) if f then setfenv(f,env) pcall(f) local vp = nil vp = env.[color=red]RWR_SCREEN[/color] if vp ~= nil then dbg_print("ok we have directly assigned viewport to CDU\n") set_full_viewport_coverage(vp) end end
-Changer la valeur en rouge pour définir le nom de votre ViewPort
-Aller dans \Config\MonitorSetup\ProfilEcran.lua
- Ajouter une section Viewport Comme ceci :

Code : Tout sélectionner

RWR_SCREEN = { x = 1000; y = 1245; width = 170; height = 170; }
Amusez-Vous!!!

ok c'est bien joli tout ca, mais a quoi sa sert? Le bidouillage c'est pourquoi faire?

Publié : dim. mars 27, 2011 10:14 am
par icemaker
ça sert à afficher les instruments sur un autre ecran ce qui est utile pour les créateurs de pits.

Publié : lun. mars 28, 2011 6:54 pm
par Legionnaire
icemaker a écrit :ça sert à afficher les instruments sur un autre ecran ce qui est utile pour les créateurs de pits.


Merci pour l'info! :notworthy

Publié : mar. mars 29, 2011 11:51 pm
par Merlin (FZG_Immel)
Petite astuce, pour ceux qui souhaitent déporter MFD's et autres, sur un autre écran, et qui ont besoin de les positionner exactement sur un écran, pour y superposer des choses, genre MFD's thrustmater etc etc..

J'ai par intuition mis au point une technique très précise, et qui fonctionne tj mieux que le tatonnement (je suis persuadé que d'autres font déjà pareil, mais bon, sait-on jamais j'apprendrais ptet qqch à qqun..)

Alors simplement..

Tout d'abord, on regarde quelle sera la résolution des 2 écrans.. dans mon cas, 1920x1080, pour les deux.. le premiers (celui du jeu) et le 2ème, celui des MFDs..

Ensuite, on mesure précisément la taille de la dalle LCD de son 2ème écran, celui ou on va afficher des MFDs.. Dans mon cas : 48cm x27cm...


Ensuite, il suffit d'appliquer des produix en croix avec les données suivantes..

En gros, on sait que 1920pixels correspondent à 48cm et que 1080pixels correspondent à 27cm

Par ex, en pratique.. j'aimerais connaitre la taille de mes MFDs sur l'écran (en pixel) pour qu'ils rentrent pile poil dans mes MFD's thrustmaster..

Rien de plus simple.. on mesure la taille des MFD's thustmaster (cotes intérieures) avec un mètre (ou autre).. ca donne, 11cm x 11cm.

Du coup..

On fait son produit en croix,

1920 = 48
X = 11

pour obtenir le rapport..


(1920(p)x11(cm) ) / 48(cm) = 440(p)

Oui, les MFDs de 440x440 pixels font exactement 11cmx11cm sur mon écran, et rentrent donc pile poil dans mes MFD's thrustmaster-




Pour les positionner sur l'écran, on procéde pareil:

Le point qui indique ou sont positionné les instruments est marqué par le poit supérieur gauche de chaque instruments.

Ainsi, pour mon MFD gauche, je mesure sur l'écran, OU je veux qu'il apparaisse :

chez moi c'est à 8,6cm du bord gauche de l'écran, pour les "X" et à 14,5cm du bord supérieur de l'écran pour les "Y"


Comme sous windows mon deuxième écran est à droite de mon écran principal, ma résolution "globale" est de 3840 x 1080-

Pour connaitre les décalage en pixel, je refait mon produit en croix :


( 1920(p) x 8,6(cm) ) / 48(cm) = 344(p)

Ma coord sur l'axe X pour mon MFD de gauche est donc de 344pixel sur le deuxième écran, qui sur ma coord "globale" me donne 2264 (344 + 1920)





On procède pareil pour l'axe Y

Dans ce produit en croix, je peux utiliser l'autre rapport pixel/cm que j'ai mesuré plus haut

1080(p) = 27(cm)
Y(p) = 14,5 (cm)

Ce qui donne le produit en croix suivant :

( 1080(p) x 14.5(cm) ) / 27 = 580 (p)

Comme les 2 écrans son côte à cote, la résolution verticale est la même pour un écran, ou les 2.. il faut donc simplement mettre 580 comme Y pour ce MFD..

Il faut donc placer ce MFD aux coords suivantes :

X = 2264
Y = 580




Voilà, c'est tout con, mais je sais pas si tout le monde y a pensé (c'est des maths plus que basique, rien de génial) , mais en tous cas ça fonctionne au poil, et la précision est redoutable.

ps: la précision dépend de la précision de la prise de vos mesures !

Publié : mar. mars 29, 2011 11:53 pm
par Merlin (FZG_Immel)
Pour info Icemaker, j'ai fait ta manip pour le CDU, et il s'affiche bien sur mon 2ème écran, mais le pb c'est qu'il disparait de mon cockpit 3d..

Publié : lun. avr. 11, 2011 10:00 am
par icemaker
désolé j'avais pas vu le message :

Code : Tout sélectionner

purposes = {render_purpose.HUD_ONLY_VIEW, [color=Red]--[/color]render_purpose.GENERAL, render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
Enleve les 2 tirets que j'ai surligné en rouge pour réafficher dans le cockpit 3D.

Pour Iceberg

Publié : jeu. juin 02, 2011 6:04 pm
par Alienfive
Je suis passionné par ce simulateur Warthog, et j'étais si heureux de copier le fichier pour déporter les MFD et autres... Las, avec la dernière version en téléchargement, un petit cadre me dit: LUA files modified.
Au secours.
Et merci .

Pour Icemaker

Publié : jeu. juin 02, 2011 6:06 pm
par Alienfive
Voir Iceberg avec mes plus plates excuses.

Publié : mar. août 02, 2011 5:37 pm
par Chris4335
salut
Depuis la dernière maj A10C impossible de déporter quoi que se soit c'est pareil pour toi icemaker ?

Publié : mar. août 02, 2011 7:53 pm
par hellflyer

Publié : mer. août 03, 2011 7:18 pm
par babar25
salut a tous

et bien moi je patauge .
je n y arrive pas ce n est pas faute d essayer mais que voulez vous .

une petite aide serai la bienvenue
merci .