FSM înseamnă „mașină de stare finită“ înseamnă „mașină de stat“. Prin definiție, compania Bohemia Interactive. FSM - un set de stări ale logicii jocului, trecând de la un stat la altul în funcție de anumite reguli.
FSM pot fi folosite pentru diferite situații, chiar și în scopul muzicii în funcție de situație (de exemplu, în timpul singur luptă, liniște în celălalt) și pentru a indica roboții, cum să se comporte într-o situație dată.
zbor de gânduri pot fi limitate doar de imaginatia ta.
FSM Editor Editare program
Cu jocul ArmA 2. Compania Bohemia Interactive a lansat un instrument pentru a edita fișierele FSM. Aici voi încerca să dezvolt acest program.
Descărcați programul de la acest link.
Editare interfață
Deschiderea prima dată în acest program este foarte ușor pentru a obține confuz. O mulțime de butoane confuze, setări, parametri. Acum vom elimina această obscuritate.
Luați în considerare cel mai de sus opțiuni panou:
Cu cunoștințe de bază chiar și limba engleză, esența acestor elemente nu vor apărea foarte complicat. Voi opri atentia doar pe punctul de Atribute FSM. care vorbesc mai târziu.
Următorul meniu:
Această bară de instrumente de formatare. Font, culoare, sublinia, aliniere, dimensiunea fontului și așa mai departe.
Acum am ajuns la cele mai interesante. Condiții de stabilire a panoului.
Descrierea va fi de sus în jos.
- Crearea unui nou stat (New Box);
- Mutarea starea selectată (Setare mod de a proiecta);
- Crearea de tranziții de la stat la stat (Desenați legături);
- Zoom (Zoom);
- Întoarcere la scară (Reset Zoom);
- Modificarea aspectului blocului (elementul Modificare în ...);
- Umple bloc de culoare (Setare culoare de umplere);
- Schimbarea de culoare de frontieră (Setare culoare line);
- Setați dimensiunea și stilul textului (stilul liniei Setare și lățime);
- Set de umplere transparentă;
- Setați linia transparentă;
- Editați textul în stare (Editare text și proprietățile font);
Descriere Blocuri Editare
Merge doar de sus în jos.
- Starea inițială. Activat la pornirea fsm;
- Condiția blocului. Controale condiții de tranziție de la un bloc în vederea priorității;
- Bloc de stat. În acest bloc sunt scripturi scrise;
- Punct de bloc. Doar o bucată convenabil, permițând mai aloca inteligent blocuri;
- Finalizarea blocului. Block, care este completarea fișier fsm;
Setarea FSM Edit
.FSM noastre au nevoie pentru a configura înainte de muncă! Pentru că dacă nu, aici vine această eroare atunci când compilarea fsm:
Există mai multe setări software:
Fiecare dintre ele este necesar pentru un anumit loc de muncă. Descrierea acestor opțiuni sunt enumerate mai jos.
Editați setările de control
- FSM Entitate - Gestionarea fișierelor entityFSM.cfg
Această setare este utilizată pentru a descrie comportamentul anumitor animale (fluturi, albine, libelule);
- FSM prin script - Gestionarea fișierelor scriptedFSM.cfg
Setarea care vă permite să utilizați comenzi și condiții de fișiere de scripting FSM.
- Comutator FSM Global - Gestionarea fișierelor globalSwitchFSM.cfg
Compilation la codul * Cpp, folosind comutatorul pentru a naviga prin statele FSM. Compilare utilizează mai multe atribute ale FSM, pentru a defini declarația funcției, codurile etc. precondiție Acest FSM a fost utilizat pentru prima dată în seagull.cpp pentru a coda funcționalitate pilot automat. Deci, deschiderea seagull.cpp în FSMEditor.
- Clasa Compile FSM - Gestionarea fișierelor classFSMcompile.cfg
Compilation la * Cpp, folosind arhitectura de clasa Fsm. Se creează% funcții (statename) pentru inițializarea de stat și verificați% (funcții statename pentru condițiile de verificare. Nici FSM creat de FSMEditor a fost compilate și utilizate în motor, dar unele au fost codificate manual înainte de existența FSMEditor.
Pentru a selecta setarea ne interesează făcând clic pe elementul evidențiat:
Acum, trebuie să alegeți calea pe care este setat programul FSM Editor.
Cu alegerea corectă ar trebui să vedeți mai multe fișiere cu extensia .CFG
Aceste fișiere de configurare de configurare .FSM
Alegerea dreptul și să înceapă să lucreze cu ea.
Caracteristici FSM Editare
Lucrul cu FSM Editare
Fiecare fișier .fsm ar trebui să înceapă cu starea inițială (Start de stat) și se încheie cu o stare finală (statul End). Pentru a selecta un tip de bloc, au nevoie de doar un clic dreapta pe blocul de interes.
Selecția de tip bloc
Blocul inițial este marcat în roșu. End - portocaliu. Zona de lucru pentru noi vor fi stabilite initCode
În acest domeniu, vom scrie script-uri noastre.
Exemple de lucru Editare
Toate exemplele lucra cu fișiere FSM voi face cu setarea - FSM scriptate.
EXEMPLUL 1 Edit
FSM devine _aktivnym_ de reacție și așteaptă evenimente. Ceea ce a ieșit din ea, uita-te la un exemplu.
EXEMPLUL 2 Editare
Acum voi arăta dependența performanței de prioritate FSM.
FSM - script este un bloc de stări ramificată, având prioritate.
Inițializarea FSM apare, de asemenea, în script-ul init.sqf.
Condiții „unitate 1 Killed“ are prioritate 0, condiția de „unitate de 2 Killed„are prioritate 1.
Prin urmare, în cazul în care există o unitate 1 ucis numai, merge pe o fsm ramură cu ieșirea din primele sfaturi descrise în codul. Dacă o unitate este ucis doar 2, du-te de-al doilea fsm mod, cu încheierea celui de al doilea prompt. Dacă ambele unități vor fi uciși în același timp, totul va merge FSM în același mod la a doua (unitatea de stare a ucis 2), deoarece are o prioritate mai mare și va aduce de-al treilea indiciu.
Puteți fi jucat cu prioritate în cadrul fișierului FSM.
descărcare fișier
EXEMPLUL 3 Editare
Caută arme statice
Acesta este deja exemplu mai complex. În ea, am încercat să simuleze comportamentul soldaților, atunci când se caută arme statice disponibile.
descărcare fișier
care apar frecvent erori Editare
1) Întrebare. Când compilarea, am obține această eroare:
2) Întrebare. La compilarea traseului acolo. eroare:
Eroare atunci când compilarea FSM
Răspuns. Această eroare este asociat cu plasarea de blocuri. Cel mai probabil ai pus două state identice, ce program și raportate în jurnalul:
Se pare ca acest lucru: