Autor Wątek: Model lotu podczas tworzenia własnych samolotów do symulatorów.  (Przeczytany 6932 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

empeck

  • Gość
Problem w tym, by tego inżyniera znaleźć.

Dyskusja wydzielona z wątku "Stary Hangar" http://www.il2forum.pl/index.php/topic,5335.0.html
Razorblade1967
« Ostatnia zmiana: Lipca 19, 2007, 12:45:33 wysłana przez Razorblade1967 »

Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #1 dnia: Lipca 15, 2007, 09:36:06 »
Problem w tym, by tego inżyniera znaleźć.
Nawet jak znajdziesz - jak ocenić "poprawność" odwzorowania modelu lotu ?
Na podstawie zachowanych instrukcji i dokumentacji da się, z dużym przybliżeniem, odtworzyć "obsługę maszyny w locie" i z dużym przybliżeniem "naziemną obsługę techniczną".
Nawet relacje bezpośrednich użytkowników oryginalnych maszyn są rozbieżne albo koncentrują się na różnych elementach - np jeden francuski pilot uważa że MS406 "był świetny", a pilot fiński powie że coś tam zamarzało i trzeba było uważać, Polak powie o zwłoce spustów itd.

Leszek

empeck

  • Gość
Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #2 dnia: Lipca 15, 2007, 10:20:12 »
To jest gra. Nie samolot. Wrażenia z modelu lotu są subiektywne dla każdego gracza, jednemu się spodoba, innemu nie. Niemniej można się postarać by samolot latał wg znanych źródeł, by zachowywał prawidłowe prędkości lotu na poziomie morza czy wznoszenia itd.

Offline lucas

  • *
  • RoF, FSX
    • 1.PUŁK LOTNICZY
Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #3 dnia: Lipca 19, 2007, 08:46:16 »
Dokładnie. Te współczesne silniki gry potrafią coraz więcej. Jeżeli wprowadzisz poprawny profil skrzydła, dobry rozkład mas, oryginalne dane silnika i śmigła i całość skalibrujesz pod osiągi z instrukcji płatowca, możesz otrzymać fajną namiastkę prawdziwej maszyny. Niejednokrotnie budujesz coś, co zachowało się tylko na zdjęciach. To jest najpiękniejsze, IMO. A dreszczyk emocji z pierwszego lotu "prototypu", który się zbudowało jest niesamowity. Człowiek naprawdę czuje się jak jakiś "inż."  :004:

"Skrzydlata husaria współczesna, lotnictwo polskie, czuwa w powietrzu. Warkot motoru chroni każdą piędź polskiej ziemi." - Kronika PAT, maj 1939.

Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #4 dnia: Lipca 19, 2007, 09:29:53 »
....Jeżeli wprowadzisz poprawny profil skrzydła, dobry rozkład mas, oryginalne dane silnika i śmigła i całość skalibrujesz pod osiągi z instrukcji płatowca, możesz otrzymać fajną namiastkę prawdziwej maszyny. ....
Napisz jak i w jakim simie to robisz / robicie.
Pal diabli poprawność biegunowych skrzydeł, owiewek, gondol i podwozi - to można odtworzyć z dużym przybliżeniem i jednocześnie wprowadzić korekcje Cx dla przejść, połączeń, zastrzałów itd. Gorzej z rozkładem mas i parametrami układu napędowego. Żeby rozpocząć można zgodzić się na jakieś  uproszczenia a potem "cyzelować wierność".
Kiedyś robiło się takie rzeczy w języku o nazwie Basic, ale to dawno było. Napisz jak to zrobicie dla Karasia i Łosia.
Leszek

Offline lucas

  • *
  • RoF, FSX
    • 1.PUŁK LOTNICZY
Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #5 dnia: Lipca 19, 2007, 12:20:29 »
Oj, to już bardziej na priva rzecz:) Bo topic nieodpowiedni itp.
W dużym uproszczeniu:
-samolot składa się tutaj z 2ch modeli: fizycznego i graficznego. Graficzny pokazuje jedynie sprawę wizualną, uszkodzenia, animacje. Oba używają identycznego nazewnictwa, aby jeden model korespondował z drugim.

Zastrzegam, że to NIE jest "jedyny słuszny", czy "najlepszy" silnik gry. Ma masę bugów, jest niedokończony. Zaleta jest taka, że to obecnie freewarowa BETA i oferuje łatwość tworzenia. Dlatego budujemy pod to nasz mod (jedyna alternatywa w chwili obecnej to seria CFS MS)
Przykładowe wpisy z modelu lotu "Karasia":

Silnik Pegaz VIII z Karasia:
# PZ Skoda Pegaz VIIIA (500 kW)
# Rev.1.0 Date 1.09.2006
# use as an include only
# parent must define: name, location, parent

type = prop
size = 1.235, 0.93, 1.245
orientation = 0, 0, 0

bore = 146
stroke = 191
cylinders = 9
mass = 535
cycle = 4
compression = 6.0
rotation = counterclockwise
rotary = 0
engine_diameter = 1.24
fuel_type = octane
throttle_type = regulated
throttle_rate = 2.0
throttle_idle = 0.05
turbocharger = 0
liquid_cooled = 0
auto_blower = 0
neg_g_cutout = 1
min_rpm = 0
max_rpm = 2400
gear_ratio = 0.666
military_mp = 1.135
num_crit_alt = 1
crit_power = 500
crit_alt = 3500

fire = /wop/particles/_fire/fire.par
leak = /wop/particles/_leaks/_fuel/fuel_leak.par

start_sound = /wop/sound/pegasus/enginestart.wav
stop_sound = /wop/sound/pegasus/enginestop.wav
sound = /wop/sound/pegasus/engine.wav

Śmigło Szomańskiego:

diameter = 3.5
solidity = 0.0479
#solidity = 0.03
prop_mass = 60
pitch_type = fixed
min_pitch = 21
max_pitch = 21
pitch_rate = 0
max_alpha = 18
zero_alpha = -5
min_alpha = -16
featherable = 0
unfeatherable = 0
critical_mach = 0.85

Sekcja skrzydła z linkiem do profilu płata z kodem klapy:

[Part 3]
name = left central wing
type = airfoil
#include _airfoils/pzl/bm37_iia_wing.acm
force_limit = -100000, 100000
location = -2.9088, 1.1493, -0.3031
size = 2.26, 2.6606, 0.468
mass = 121.2
incidence = 1
dihedral = 3
sweep = 0
area = 6.13
chord = 2.215
aspect_ratio = 7.26
parent = left inner wing
num_surfaces = 1

[Part 3 Surface 1]
name = left flap
type = cflap
split = 0
fowler = 0
chord = 0.16
span = 1.0
will_blowback = 0
deploy_rate = 5.0
max_ias = 65
max_deflection = 30

Model fizyczny robi się z "części"-hitboxów, w odróżnieniu np. od FSa, gdzie dajesz "contact ponty"-punkty styku (co jest chyba lepszym rozwiązaniem)
Najlepiej po prostu ściągnij mod (na razie tylko 1920), skontaktuj się ze mną na GG (w profilu) i powiem Ci trochę o strukturze, przez co Sam będziesz mógł sprawdzić wiele rzeczy, bo te pliki edytujesz w notepadzie.

Przepraszam za OT.

"Skrzydlata husaria współczesna, lotnictwo polskie, czuwa w powietrzu. Warkot motoru chroni każdą piędź polskiej ziemi." - Kronika PAT, maj 1939.

Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #6 dnia: Lipca 19, 2007, 13:45:46 »
Bo topic nieodpowiedni itp.

Już jest odpowiedni, tak więc nie krępuj się, bo tematyka tworzenia FM jest bardzo ciekawa!

Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #7 dnia: Lipca 19, 2007, 14:41:04 »
Locas na jakim silniku robicie bo nie napisałeś ?

Czytałem trochę o Pegazie XX , tam jest jakaś regulacja wpuszczania ciepłego powietrza do gaźnika  + coś oddzielnego do ogrzewania gaźnika (nie mam pojęcia w jakim celu , odlodzenie ?) .W jaki sposób te czynniki mają wpływ na lot , jak się je koduje ?

Macie namiary na jakieś fora albo osoby znające się na tworzeniu modeli do FS ?

empeck

  • Gość
Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #8 dnia: Lipca 19, 2007, 15:00:04 »
Jeśli chodzi o polskie fora na temat tworzenia samolotów do FS'a, to niestety nic takiego nie ma.

Z zachodnich najlepsze jest http://www.aerodynamika.com/forum.html, warto też zajrzeć w odpowiedni dział na forum www.sim-outhouse.com. Natomiast, jeśli chodzi o osoby zajmujące się tworzeniem samolotów w Polsce, to kilka tu jest, ale się raczej nie ujawniają :/

Odpowiem za Lucasa - ich mod powstaje na silniku Targetware.

Offline lucas

  • *
  • RoF, FSX
    • 1.PUŁK LOTNICZY
Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #9 dnia: Lipca 19, 2007, 19:02:02 »
Muminek, to zależy od silnika gry. Silnik FSa oferuje znacznie więcej tego typu możliwości. W TW na 100% poprawnie działających dźwigni w łosiu nie wykonasz, z racji ograniczeń. Właśnie taka funkcja manetki nie będzie podpięta. Podobnie jest z systemem paliwowym łosia. W TW będzie "wsio rawno" na którym zbiorniku wystartujesz. W prawdziwym PZL.37 już tak fajnie nie było, o czym świadczą "przygody " niemieckich i sowieckich oblatywaczy zdobycznych łosi. Myślę, że znając FSa "od podszewki" można się pobawić w emulację tej instalacji. Ale tylko podejrzewam. ROB by musiał coś skrobnąć na ten temat. Ja nie mogę się wypowiadać.
Poza tym, ja jestem w naszym modzie kolesiem od terenu, malowań i prostych obiektów. FM jako taki wykonuje Sander. Ja w tym palców nie maczam  :001:

"Skrzydlata husaria współczesna, lotnictwo polskie, czuwa w powietrzu. Warkot motoru chroni każdą piędź polskiej ziemi." - Kronika PAT, maj 1939.

empeck

  • Gość
Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #10 dnia: Lipca 19, 2007, 23:34:49 »
Ok, to może jeszcze trochę ja. W FS za FM odpowiadają dwa pliki. Tekstowy aircraft.cfg i binarny *.air. W tekstowym zawarte są podstawowe dane na temat maszyny, takie jak dane silnika:

power_scalar =1.00000
cylinder_displacement=87.46667
compression_ratio=5.10000
number_of_cylinders=9
max_rated_rpm=1800.00000
max_rated_hp=223.00000
fuel_metering_type=1
cooling_type=0
normalized_starter_torque=0.25320
turbocharged=0
max_design_mp=29.92000
min_design_mp=0.00000
critical_altitude=0.00000
emergency_boost_type=0
emergency_boost_mp_offset=0.00000
emergency_boost_gain_offset=0.00000
fuel_air_auto_mixture=0
auto_ignition=0
max_rpm_mechanical_efficiency_scalar=1.00000
idle_rpm_mechanical_efficiency_scalar=1.00000
max_rpm_friction_scalar=1.00000
idle_rpm_friction_scalar=1.00000
emergency_boost_duration=0.00000

Wymiary samolotu:

wing_area               =263.70000
wing_span               =43.47000
wing_root_chord         =7.15000
wing_dihedral           =0.00000
wing_incidence          =0.00000
wing_twist              =0.00000
oswald_efficiency_factor=0.60000
wing_winglets_flag      =0
wing_sweep              =0.00000
wing_pos_apex_lon       =-5.90030
wing_pos_apex_vert      =2.80000

htail_area              =17.43000
htail_span              =8.30000
htail_pos_lon           =-22.10000
htail_pos_vert          =0.80000
htail_incidence         =0.00000
htail_sweep             =15.00000

vtail_area              =6.35000
vtail_span              =3.00000
vtail_sweep             =20.00000
vtail_pos_lon           =-22.10000
vtail_pos_vert          =0.96000

elevator_area           =19.16000
aileron_area            =30.10000
rudder_area             =10.41000
elevator_up_limit       =30.00000
elevator_down_limit     =20.00000
aileron_up_limit        =20.00000
aileron_down_limit      =20.00000
rudder_limit            =28.00000
elevator_trim_limit     =10.00000
spoiler_limit           =0.00000
spoilerons_available    =0
aileron_to_spoileron_gain =0.00000
min_ailerons_for_spoilerons =0.00000
min_flaps_for_spoilerons =0.00000
spoiler_handle_available=0
auto_spoiler_available=0
positive_g_limit_flaps_up=3.70000
negative_g_limit_flaps_up=-2.96000
positive_g_limit_flaps_down=2.59000
negative_g_limit_flaps_down=-2.22000
load_safety_factor=1.00000

Są tu jeszcze prędkości referencyjne, dane nt zbiorników paliwa, prędkości, contact pointy itp.

W pliku .air część danych jest zdublowana z tego co jest w powyższym .cfg, przy czym .cfg ma wyższy prirytet. Poza tym w plik .air zawarte są tabele w których są opisane osiągi samolotu. Jedno z drugim razem tworzą model lotu.

Problem w tym, że część tego nie jest w ogóle opisana (w SDK od FSX nie znalazłem ani słowa o edycji plików .air). Nie ma też jakiejś strony na której zawarta byłoby jakieś FAQ, czy coś podobnego. Większość informacji jest rozrzucona po anglojęzycznych forach dyskusyjnych, dodatkowo pełnych technicznego 'żargonu', co jest pewną barierą, przynajmniej dla mnie. Dlatego nie jest tak łatwo wgryźć się w temat.

Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #11 dnia: Lipca 20, 2007, 14:38:48 »
Hm, możliwości FS(X) są nieograniczone w przypadku próby odtworzenia działania urządzeń i systemów samolotów (np. układ paliwowy Łosia). Nie mówię tu o modelowaniu lotu - tu już tak przyjemnie nie jest.

Możliwości dzielą się na dwa poziomy zaawansowania programistycznego: pierwszy, lżejszy, służy głównie do tworzenia animacji: interaktywne wajchy i pstryczki w kokpicie, pasywne animacje ruchomych części samolotu i zegary. Oczywiście możliwości nie kończą się na samych animacjach, można budować wirtualne urządzenia i systemy wykorzystujące interaktywność animacji czy parametry obecne w tym wirtualnym świecie. Na tym poziomie tworzymy skrypty w XMLu. Wykorzystywana w tym przypadku jest metoda stosu i tzw. RPN (reverse polish notation) czyli zapis odwrotny. Metoda dobra dla prostych urządzeń ale można też budować skomplikowane geraty. Poza tym wyrafinowana wiedza programistyczna nie jest potrzebna, no i wystarczy Notatnik. Chęć szczera zrobi z nas programera, czego osobiście jestem przykładem :D. Porównując do Matrixa, jesteśmy jak Neo po domózgowym kursie kung-fu.

Drugi poziom to programowanie zewnętrzne w C++ i intergracja z FSX poprzez specjalny moduł SimConnect. Tutaj nie jesteśmy niczym ograniczeni, bebechy całego FSX leżą przed nami jak na stole. Znów wracając do Matrixa, tu Neo czyli my widzi kod, lata i biega w sutannie.

Co do modelu lotu to, a mówiąc model lotu mam na myśli plik AIR, zarówno dokumentacja jak i narzędzia są bardzo skąpe. Software (FSEDIT) oferowany przez twórców FSa tworzy model lotu daleki od przyzwoitości. Spiskowa teoria dziejów sugeruje iż jest to celowe działanie twórców FSa, którzy posądzani są o słabą wiedze na temat tego co tak naprawdę kryje w sobie plik AIR. Obecna wiedza na temat modelu lotu, sposobów edycji i tworzenia pliku AIR jest rozdrobniona i rozproszona, została ona nabyta przez zewnętrzną społeczność i poszczególne indywidua metodą prób i błędów poprzez reverse engineering. Taką wiedzą nikt nie dzieli się zbyt chętnie. Jest tylko kilku macherów, którzy tworzą "profesjonalne" modele lotu.

pozdrawiam
ROB

Offline some1

  • Global Moderator
  • *****
Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #12 dnia: Lipca 20, 2007, 16:20:13 »
Troszkę odbiegnę od tematu doprecyzowując wypowiedź ROB'a jeśli chodzi o przyrządy. Mam nadzieję, że nic nie pokręciłem, bo piszę to jako 100% teoretyk, czyli odwrotnie niż ROB. :D

Podobnie jak z modelem 3D samolotu i jego modelem lotu, rzecz dzieli się na wizualizację i logikę działania.

Zakładając, że mamy już odpowiednie grafiki, wizualizacja może być wykonana za pomocą XML'a (najprostrze), animowanych modeli 3D (trudniejsze), badź C++ (overkill w przypadku zegarów analogowych, ale jedyne wyjście jeśli piszemy MFD). Logika działania może być w XML bądź C++, niezależnie od tego którą metodę wybraliśmy do prezentacji zegara.

XML jest dobry gdyż jak ROB zauważył, nie trzeba być programistą żeby go ogarnąć. Wszystko jest w nim w miarę proste, kod można przeczytać i od razu wiadomo o co chodzi.... prawie. FS symuluje działanie systemów samolotu w zakresie jaki jest widoczny we wbudowanych maszynach. Czyli bateria, iskrowniki, generatory, etc. Dostęp i operacje na tych systemach są bardzo proste w realizacji, prawie natychmiastowe. FS sam się martwi żeby wyłączyć radio gdy wyłączymy awionikę albo gdy wyłączymy baterię, albo gdy wyłączymy baterię i generatory w przypadku gdy silniki pracują. Schody zaczynają się, gdy chcemy zrobić coś czego nie ma w standardzie, na przykład system hydrauliczny którego FS gotowego nie dostarcza, bądź system elektryczny który działa inaczej niż ten w FS'ie. Cały mechanizm działania (pompy hydrauliczne, reakcję sterów w zależności od ciśnienia w instalacji, zmiany ciśnienia w instalacji w zależności od obciążenia, obwody hydrauliczne, wartości ciśnienia itp) trzeba gdzieś napisać. No i zonk. Wyrażenia logiczne w XML'u wyglądają na przykład tak:

Cytuj
Attitude Indicator%((A:ATTITUDE INDICATOR BANK DEGREES, degrees) s0 abs s1)%((A:ATTITUDE INDICATOR PITCH DEGREES, degrees) s2 abs s3)%(l1 l3 + 0.99 >)%{if} (%{end}%(l1 l0 0.99 >)%{if}Bank %!d!° Left%{else}%(l1 l0 -0.99 <)%{if}Bank %!d!° Right%{end}%{end}%(l3 0.99 >)%{if}%(l1 0.99 >)%{if}, %{end}%{end}%(l3 l2 0.99 >)%{if}Pitch %!d!° Down%{else}%(l3 l2 -0.99 <)%{if}Pitch %!d!° Up%{end}%{end}%(l1 l3 + 0.99 >)%{if} )%{end}

A jest to po prostu kod używany przez tooltip dla sztucznego horyzontu, wyświetlający na przykład "Bank 4° left, Pitch 5° up". Odwrotna notacja polska używana w wyrażeniach arytmetycznych i instrukcjach warunkowych (if ... then ... else) plus to XML że wymaga innego podejścia niż standardowe języki programowania sprawiają, że jest to ciężkie narzędzie do tworzenia skomplikowanych systemów.

C++ to mnóstwo makr, flag, i niezrozumiałych dla śmiertelników konstrukcji, które są bo są, przynajmniej taki wniosek wyciągnąłem po lekturze SDK. Ale jeśli przebrnie się przez to, to samo zrobienie instalacji paliwowej czy hydraulicznej Łosia to bułka z masłem, pod warunkiem że wie się, jak to kiedyś działało.

Najlepszym wyjściem jeśli tworzymy zaawansowane oprzyrządowanie samolotu, jest miks XML'a i C++. XML odpowiada za wizualizację płaskich zegarów 2D, bądź definicje animacji obiektów 3D (wskazówek zegarów i wihajstrów). Natomiast cała reszta jest zakodowana w C++ i podłączona jako dll do symulatora.

SimConnect nie jest wymagany przy tworzeniu zegarów w C++, aczkolwiek jego użycie jest możliwe, jeśli chcemy zapewnić sobie dostęp do pewnych nowych funkcji i większą interakcję samolotu z samym FS'em.
« Ostatnia zmiana: Lipca 20, 2007, 16:33:00 wysłana przez some1 »
"It's not a Bug! It's an undocumented feature!"

Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #13 dnia: Lipca 20, 2007, 17:21:17 »
Może ktoś bardziej doświadczony zrobi takiego tutka .
Od podstaw jak programować gausy (?) , czym różnią się przyrządy 2d od 3D .

No właśnie jak to jest z tym 2d i 3d . W 3d jest tarcz i wskazówka jako oddzielne obiekty i wskazówka jest obracana o odpowiedni kąt ?

Odp: Model lotu podczas tworzenia własnych samolotów do symulatorów.
« Odpowiedź #14 dnia: Lipca 20, 2007, 18:32:14 »
Zgadza się, perfekcyjna sytuacja to mix C++ i XMLa. Wtedy mamy największe możliwości i najbardziej komfortowe warunki pracy. Taki mix sprawdza się w przypadku bardzo złożonych projektów łączących zagary i systemy pokładowe wykraczające daleko poza to co oferuje sam FS.

Dla zachęty dla ewentualnych amatorów robienia zegarów dodam, że w przytłaczającej większości przypadków sam XML, bez C++, w zupełności wystarcza. Ujmę to tak, osoba biegła lub nawet zaznajomiona z C++ wybierze zegary w C++. Pewnie ma już stworzone środowisko, software i odpowienie nawyki myśleniowe. Natomiast do XMLa można się dosiąść z ulicy. Wystarczy chęć i odrobina samozaparcia (cierpliwość, stalowe nerwy, perfekcyjność i emerytura [trochę wolnego czasu] mile widziana ;))

pozdrawiam
ROB