Troman - tworzenie gier
Logo serwisu Troman.pl
Panel Logowania

Actuatory

napisał : Troll
19
października
2012
Actuatory to trzecia grupa najważniejszych kostek logiki jakie mamy dostępne w oknie Logic Editor. dzięki nim obiekty nasze ożywają i wykonują różnorakie akcje. Poniżej przedstawiam artykuł o actuatorach ich typach.
tagi : Actuator BGE kostki logiki logika game

1. Wprowadzenie

Actuatory to kostki logiki, które wykonują pewne czynności takie jak np.: przenoszenie, tworzenie obiektów, odtwarzanie dźwięku. Czynności te wykonują się po otrzymaniu pozytywnych impulsów z jednego lub kilku podłączonych z actuatorem cotrollerami.

Bloki logiki dla wszystkich typów actuatorów mogą być budowane oraz edytowane używając okna Logic Editor. Dostępne typy actuatorów:

  • Action - ma za zadanie dbać o animacje obiektów, w tym armatur
  • Camera - służy do śledzenia obiektów w określonym zakresie. Jednakże obiekt używający actuatoru Camera nie musi być kamerą.
  • Constraint - powiązania służą do określania limitu poruszania się pewnego obiektu lub też jego rotacji.
  • Edit Object - służy do edytowania siatki obiektu, wstawanie go lub też usuwanie.
  • Filter 2D - odpowiada za włączanie i wyłączanie filtrów obrazu takich jak sepia czy blur.
  • Game - wykonuje operacje dotyczące gry takich jak restart, wyłączenie, zapis stanu lub odczyt.
  • Message - wysyła wiadomości które mogą być odebrane przez sensory innych obiektów, by te mogły wykonać daną operację.
  • Motion - wprawia obiekt w ruch. Może go dowolnie przesuwać i/lub obracać.
  • Parent - w czasie rzeczywistym tworzy powiązanie typu rodzic/dziecko. Może je również usunąć.
  • Property - manipuluje wartościami właściwości obiektu.
  • Random - tworzy losowe wartości, które mogą być przechowywane we właściwościach
  • Scene - służy do manipulowania scenami
  • Sound - używa się go do odtwarzania dźwięków w BGE
  • State - edytuje stany obiektu
  • Steering - służy do automatycznego szukania ścieżek
  • Visibility - zmienia widoczność obiektu

 

2. Edycja Actuatora

Actuatory mogą być ustawiane oraz edytowane w prawej kolumnie okna Logic Editor. Ten rozdział opisuje ogólną kontrolę kolumny actuatorów, a także  parametry, które są wspólne dla wszystkich poszczególnych typów Actuatorów.

 

Nagłówek kolumny

Kontrolki w nagłówku kolumny określają, które z actuatorów i z jaką szczegółowością mają pojawiać się w kolumnie. Jest to przydatne do ukrywania nieużywanych actuatorów, aby wprowadzić czytelność w kostkach logiki.

Kontrolka Actuators :

  •  Show Objects - rozwija actuatory wszystkich obiektów
  •  Hide Objects - ukrywa actuatory wszystkich obiektów
  •  Show Sensors - rozwija wszystkie actuatory obiektu
  •  Hide Sensors - ukrywa wszystkie actuatory obiektu

 Jest też możliwość filtrowania wyświetlania określonych actuatorów za pomocą 4 opcji :

  • Sel - Pokazuje wszystkie actuatory wybranych obiektów
  • Act - pokazuje tylko actuatory należące do aktywnego obiektu
  • Link - pokazuj actuatory które są zlinkowane z controllerem
  • State - pokazuje actuatory które są połączone z controllerem aktywnego stanu

 

Nagłówek obiektu

 

W kolumnie actuatorów, actuatory są pogrupowane według obiektu. Domyślnie actuatory pojawią się w kolumnie dla każdego zaznaczonego obiektu, ale to może być zmienione poprzez opcje filtrów.

  • Cube - nazwa obiektu
  • Add Actuator - po kliknięciu pojawi się lista dostępnych typów actuatorów. Wybranie spowoduje dodanie actuatora do obiektu

 

3. Wspólne opcje Actuatorów

Sensory mają zestaw przycisków wspólne dla wszystkich typów sensorów. Pierwsza linia : 

  • "Trójkąt" - zwija lub rozwija sensor
  • Typ Sensora - informacja o typie sensora. Po kliknięciu ten typ można zmienić
  • Nazwa Sensora - może być edytowana przez użytkownika. Jest ona używana do dostępu do sensora z poziomu Pythona. Musi być unikalna.
  • "X" - usuwa sensor z listy

 

4. Typy Actuatorów

Actuator "Action"

Actuator "Action" służy do operowania szkieletem lub zwykłą animacją obiektu. Ustawia akcje i metody ich odtwarzania kiedy dany obiekt jest zaznaczony.

Typ odtwarzania:

  • Play - odtwarza animację tylko raz kiedy otrzyma impuls będący prawdą (TRUE)
  • Ping Pong oraz Flipper - odtwarza animację kiedy otrzyma puls TRUE. W razie przechwycenia impulsu będącego fałszem (FALSE) odtworzy animację do tyłu
  • Loop end  - odtwarza animacje nieprzerwanie od końca do początku kiedy otrzymuje puls TRUE
  • Loop stop - podobnie jak wyżej. Z tą różnicą, że animacja odtwarzana jest normalnie od początku do końca
  • Property - animacja jest kontrolowana przez właściwość wcześniej przez nas ustaloną

  • Action - w tym polu możemy wybrać akcje, na której będziemy przeprowadzać operacje.
  • Continue - kiedy animacja jest przerwana, czyli aktuator nie otrzymuje impulsów TRUE, "Continue" stanowi o tym czy dana animacja po ponownym otrzymaniu impulsów będzie się odtwarzała od początku, czy też będzie kontynuowana do zakończenia jej.
  • Start Frame - ustawia klatkę od której będzie odtwarzana animacja
  • End Frame - ustawia ostatnią klatkę animacji
  • Child - animacja ma też dotyczyć sparentowanych obiektów
  • Blendin - ilość klatek mieszania ruchu (?)
  • Priority - ustalenie priorytetu wykonywania animacji. W dwiema lub więcej animacji, ważniejsze z nich muszą mieć niższy numer niż pozostałe
  • Frame Property - przypisuje akcje bieżącej klatki do właściwości
  • Property - służy do określenia położenia danej akcji. Używamy tylko do typu odtwarzania "Property"
  • Layer
  • Layer Weight

 

Actuator "Camera"

Camera actuator służy do tego, by wybrana przez nas kamera śledziła dany obiekt. Bardzo przydatne np. przy robieniu gry RPG, kiedy to kamera wciąż musi się znajdować za graczem. Aktuator ten pozwala zaoszczędzić zabawę z wieloma linijkami Pythona.

  • Camera Object - nazwa obiektu, za którym ma podążać kamera
  • Height - tutaj ustalamy jaką wysokość ma mieć kamera ponad obiektem
  • Axis - ustawienie osi za którą kamera stara się zawse być
  • Min - minimalny dystans dzielący kamerę od obiektu
  • Max - maksymalny dystans dzielący kamerę od obiektu
  • Damping - rodzaj siły która utrzymuje kamerę w zakresie maksymalnych i minimalnych wartości. Przykładowo dając najwyższy numer (10) kamera będzie mocno blokowana, podczas gdy przy zerowej wartości będzie swobodnie "pływać"

Actuator "Constraint"

Constraint służą do określania limitu poruszania się pewnego obiektu lub też jego rotacji. Przydają się w kontrolowaniu fizyki obiektów w grze.

  • Contraint Mode
    • Force Field Constraint- ustawia pole siłowe wzdłuż jednej osi
      • Damping - współczynnik tłumienia Force Height
      • Distance - Wysokość Force Height
      • Rot Fh - ustawia w grze osie obiektu równolegle do normalnych obiektu posiadającego wiązanie (??)
      • Force - siła pola
      • N - gdy jest włączony, używa przy pochyleniach siły poziomych sprężyn (??)
      • M/P - wywołanie ogranicznika na innym obiekcie będzie się odbywało za pomocą materiału (Material) lub właściwości(Property)
      • Property - właściwość lub materiał, który pozwoli wywołać pole siłowe
      • Per - kiedy jest włączony zawsze szuka właściwości lub materiału, które może wywołać pole siłowe. Jeżeli jest wyłączony pole siłowe nie działa, kiedy nie może jednego z nich znaleźć
      • Time - ilość klatek, w których wiązanie pozostaje aktywne
      • RotDamp - ogranicznik rotacji obiektu
    • Orientation Constraint - wiąże wybraną oś w grze z określonym kierunkiem osi globalnych
      • Direction - oś gry, która ma być edytowana
      • Damping - opóźnienie włączenia wiązania w klatkach
      • Time - ilość klatek, w których wiązanie pozostaje aktywne
      • ReferenceDir - współczynnik odniesienia osi obiektu do wybranych osi globalnych
      • MinAngle - minimalny kąt modyfikacji osi
      • MaxAngle - maksymalny kąt modyfikacji osi
    • Distance Constraint - ustanawia dystans pomiędzy obiektem zawierającym wiązanie, a powierzchnią innego obiektu.
      • Direction - kierunek osi (X, Y, Z, -X, -Y, -Z, lub None)
      • L - kiedy jest włączony, używa osi lokalnych (w innym przypadku globalnych)
      • N - kiedy jest włączony ustawia osie obiektu wzdłuż normalnych siatki
      • Range - ustala maksymalną długość promienia pomiędzy obiektem zawierającym wiązanie, a powierzchnią innego obiektu
      • Force Distance - ustala odległość, jaka musi być zachowana pomiędzy obiektem, a materiałem/właściwością która wyzwala ogranicznik dystansu
      • Damping - czas opóźnienia odpowiedzi constrainta
      • M/P - wywołanie ogranicznika na innym obiekcie będzie się odbywało za pomocą materiału (Material) lub właściwości (Property)
      • Property - właściwość lub materiał, który pozwoli wywołać ogranicznik
      • Per - kiedy jest włączony zawsze szuka właściwości lub materiału, które może wywołać ogranicznik. Jeżeli jest wyłączony pole siłowe nie działa, kiedy nie może jednego z nich znaleźć
      • Time - ilość klatek, w których wiązanie pozostaje aktywne
      • RotDamp - ogranicznik rotacji obiektu
    • Location Constraint - ogranicza ruch obiektu wzdłuż jednej osi globalnej. Aby ograniczyć ruch w wielu osiach, należy użyć dwóch lub więcej takich powiązań.
      • Limit - Oś, w której ustalamy ograniczenia
      • Min - minimalny limit w określonej osi
      • Max - maksymalny limit w określonej osi
      • Damping - opóźnienie włączenia wiązania w klatkach

 

Actuator "Edit Object"

Ten actuator pozwala wykonywać operacje na obiektach. Odpowiada za dodawanie określonego obiektu lub edycję jego siatki. Ma też możliwość usuwania obiektu.

Menu możliwości actuatora Edit Object:

  • Dynamics- pozwala zarządzać opcjami dynamiki obiektu
    • Set Mass - umożliwia użytkownikowi ustawienie masy obiektu
    • Disable Rigid Body - wyłącza stan Rigid Body obiektu - wyłącza kolizję
    • Enable Rigid Body - działa odwrotnie do powyższego
    • Suspend Dynamics - zawiesza dynamikę obiektu
    • Restore Dynamics - zwraca dynamikę
  • Track To - zmusza obiekt do śledzenia innego. Jako przód obiektu posiadającego ten actuator ustalona jest oś Y
    • Object - śledzony obiekt
    • Time - ilość klatek, w których obiekt będzie zwracał się w kierunku innego
    • 3D - umożliwia śledzenie w trzech wymiarach. W innym przypadku śledzi w dwóch
  • Replace Mesh - umożliwia zamianę siatki z innym obiektem. Pozwala też na przekazanie fizyki
    • Mesh - nazwa siatki, która ma być zamiennikiem
    • Gfx - przycisk zamiany widocznej siatki
    • Phys - zamienia także siatkę fizyki
  • End Object - niszczy wybrany obiekt
  • Add Object- dodaje wybrany obiekt w centrum posiadającego actuator
    • Object - nazwa obiektu, który ma być dodany
    • Time - ilość klatek, w których obiekt ma istnieć, zanim zniknie. Jeżeli ustawiona jest wartość "0", obiekt będzie na stałe
    • Linear Velocity - ustala prędkość liniową obiektu, który zostanie dodany. Taka opcja przydaje się np. przy strzelaniu określonym obiektem
    • Angular Velocity - ustala prędkość kątową obiektu

Actuator "Filter 2D"

Filtrują one finałowy render nadając mu różnych efektów wizualnych.

  • Filter 2D type - służy do wybierania określonego filtra
    • Custom filter
    • Invert
    • Sepia
    • Gray Scale
    • Prewitt
    • Sobel
    • Laplacian
    • Erosion
    • Dilation
    • Sharpen
    • Blur
    • Motion Blur
    • Remove Filter
    • Disable Filter
    • Enable Filter
  • Pass Number - służy do nadawania numerów określonym filtrom. Może to pomóc w wywołaniu lub deazktywowaniu konkretnego filtru, który nas interesuje
  • Custom Filter - pozwala na stworzenie własnego Filtera 2D za pomocą własnego skryptu

Actuator "Game"

Pozwala na wykonywanie podstawowych operacji na grze, takich jak wyłączenie, restart, zapisanie czy też załadowanie.

  • Start Game From File - kiedy actuator się aktywuje, otwiera grę z wybranego pliku .blend
  • Restart Game - restartuje grę
  • Quit game - wyłącza grę
  • Save bge.logic.globalDict - zapisuje starn gry do pliku .bgeconf
  • Load bge.logic.globalDict - odczytuje starny gry zapisane w pliku .bgeconf

 

Actuator "Message"

Ten actuator pozwala przesłać wiadomość do innego obiektu, który odbierze ją sensorem o identycznej nazwie.

  • To - obiekt, do którego ma zostać wysłana wiadomość
  • Subject - temat wiadomości
  • Body - treść wiadomości napisana w Pythonie
  • Text - pozwala użyć wybranego tekstu w treści
  • Property - pozwala użyć wybranej właściwości w treści wiadomości

 

Actuator "Motion"

Pozwala wykonywać na obiekcie operacje dotyczące samego ruchu obiektu - przesuwania i/lub obracania.

  • Motion Type - typ ruchu. Do wyboru mamy dwa typy
    • Simple Motion- umożliwia proste przesuwanie i rotację wzdłuż wybranych osi
      • Loc - obiekt przeskakuje określoną ilość jednostek wzdłuż wybranych osi za każdym razem kiedy otrzyma impuls
      • Rot - obiekt zostaje wprawiony w rotacje wokół wybranej osi za każdym razem kiedy otrzyma impuls
      • L - kiedy jest wyłączony osie do których odnosi się ruch są globalne. Kiedy jest wciśnięty są to osie lokalne obiektu
    • Servo Control- ustawia prędkość obiektu i czas, w jakim ma do niej się zbliżać
      • Reference Object - obiekt do którego ma się odnosić ruch
      • Linear V - ustawia prędkość liniową obiektu
      • L - działanie identyczne jak przy Simple Motion
      • X, Y, Z - ustawia maksymalne i minimalne limity siły, która oddziałuje na obiekt. Jeżeli są nieaktywne, nie ma limitu
      • Proportional Coefficient - ustawia współczynnik proporcjonalny. Kontroluje on różnicę pomiędzy aktualną prędkością obiektu, a prędkością docelową
      • Integral Coefficient - ten współczynnik kontroluje liczbę błędów w ruchu obiektu (??)
      • Devirative Coefficient - ten suwak kontroluje reakcje (??)

 

Actuator "Parent"

Pozwala zmieniać relacje pomiędzy obiektami typu rodzic-dziecko.

  • Scene- menu parentowania. Posiada ustawić rodzica lub usunąć powiązanie
    • Set Parent- ustawia określony obiekt jako rodzic obiektu posiadającego ten actuator
      • Parent Object - nazwa obiektu, który ma być rodzicem
      • Compound - dodaje kształt tego obiektu do obiektu rodzica
      • Ghost - czyni obiekt duchem w czasie parentowania
    • Remove Parent - usuwa rodzica
      • Parent Object - nazwa obiektu, który jest bieżącym rodzicem

Actuator "Property"

Kiedy ten actuator stanie się aktywny może zmienić wartość danej właściwości.

  • Mode
    • Assign - wartość wpisana poniżej w oknie "Value" zostanie przypisana do wybranej właściwości
    • Add - dodaje wartość do wybranej właściwości. Jeżeli Boolean property przyjmie wartość większą niż jeden, przyjmie on również wartość TRUE
    • Copy - kopiuje wartość z wybranej właściwości do właściwości obiektu aktywującego ten actuator
    • Toggle - zmienia wartości będące zerem na jeden. W przypadku dowolnej liczby zmienia ją na zero. Przydatne przy używaniu włączników
  • Property - nazwa właściwości, która zostanie zmieniona
  • Value - wartość jaką przyjmie właściwość

 

Actuator "Random"

Ustawia losową wartość we właściwości (Property) konkretnego obiektu.

  • Seed - ziarno losowości (pomiędzy 0 a 1000)
  • Distribution - wybiera rodzaj wygenerowanej wartości. Domyślnie wybrana jest stała Boolean, która zwraca wartość TRUE lub FALSE. Przydatne do celów testowych
  • Property - w każdym z rodzajów jest pole Property. Wybierana jest w nim właściwość, która ma otrzymać wartość z actuatora
  • Rodzaje generatorów:
    • Float Neg. Exp.- wartość jest generowana na określony czas półtrwania (??)
      • Half-life time - czas półtrwania (Od 0.00 -10000.00)
    • Float Normal- generuje losową liczbę z wybranym odchyleniem
      • Mean - środek od którego actuator ma liczyć odchylenie
      • SD - rozmiar odchylenia
    • Float Uniform- losuje wartość między wybraną minimalną, a maksymalną wartością
      • Min - minimalna wartość
      • Max - maksymalna wartość
    • Float Constant- zwraca stałą wartość
      • Value
    • Int Poisson- zwraca liczby losowe z układu Poissona
      • Mean - rozmiar odchylenia Poissona
    • Int Uniform- generuje liczbę całkowitą pomiędzy wartością maksymalną a minimalną
      • Min - minimalna wartość
      • Max - maksymalna wartość
    • Int Constant- zwraca stałą wartość (w liczbie całkowitej)
      • Value
    • Bool Bernoulli - pozwala na wybranie szansy na wygenerowanie TRUE
      • Chance - szansa na wygenerowanie TRUE
    • Bool Uniform - posiada 50% szansy na wygenerowanie TRUE lub FALSE
    • Bool Constant- Zwraca stałą Boolean. Pozwala na zaznaczenie "Always True". Jeżeli jest wciśnięty zwraca zawsze wartość TRUE

Actuator "Scene"

Ten actuator zarządza scenami. Może pomóc w ustawieniu tła lub wybranych poziomów w grze.

Scene - menu zarządzania scenami

  • Restart - restartuje bieżącą scenę
  • Set Scene - zmienia scene na wybraną
  • Set Camera - zmienia używaną kamerę
  • Add OverlayScene - nakłada inną scenę na bieżącą
  • Add BackgroundScene - podkłada jako tło inną scenę, odwrotnie do powyższego
  • Remove Scene - usuwa scenę
  • Suspend Scene - zawiesza scenę
  • Resume Scene - kontynuuje zawieszoną scenę

Actuator "Sound"

Pozwala na odtworzenie wybranego dźwięku.

Music File Title - wybiera plik muzyki do odtworzenia

 

Actuator "State"

Pozwala na edycje stanów. Bardzo przydatne np. przy ruchu postaci, kiedy trzeba ustalić, kiedy dana postać chodzi, biega, czy też skacze.

Operation - menu wybierania operacji na stanach

  • Change State - zmienia bieżący stan na inny
  • Remove State - usuwa wybrany stan ze stanów aktywnych
  • Add State - dodaje stan
  • Set State - przechodzi z aktywnego stanu do innego wyłączając wszystkie inne

Actuator "Steering"

Ten actuator służy do automatycznego wynajdowania ścieżek.

  • Behavior - rodzaj zachowania wobec wybranego obiektu
    • Flee - ucieczka
    • Seek - wyszukiwanie
    • Path Following - podążanie za ścieżką
  • Target Object - obiekt docelowy, na który będzie oddziaływał actuat
  • Navigation Mesh Object - używany dla Path Following. Wybiera ścieżkę, wzdłuż której ma podążać obiekt
  • Dist - ustawia dystans oddziaływania actuatora
  • Velocity - ustawia prędkość obiektu na obiekt posiadający actuator
  • Acceleration - ustawia przyspieszenie obiektu na obiekt posiadający actuator
  • Turn Speed - ustawia maksymalną szybkość skręcania obiektów
  • Facing - służy do wybierania tego, czy docelowy obiekt ma być zwrócony w stronę obiektu posiadającego actuator
  • Axis - wybór osi, którą obiekt docelowy zwraca się w stronę obiektu posiadającego actuator
  • N - używa normalnych Navigation Mesh do dopasowania do nich wierzchołków obiektu
  • Self Terminated - dla przykładu: w przypadku uciekania od obiektu, Target Object po osiągnięciu wyznaczonego wcześniej dystansu zatrzyma się. Actuator wówczas przestanie na niego działać i obiekt przestanie uciekać od posiadacza tego actuatora
  • Visualize - pokazuje wizualizację

Actuator "Visibility"

Pozwala na zmianę widzialności obiektów w czasie gry.

  • Visible - ustawia widzialność
  • Occusion - ustawia okluzję obiektu
  • Children - ustawianie dwóch poprzednich opcji również dla dzieci obiektu

5. Zakończenie

Tak więc mamy opisane wszystkie możliwe actuatory, dzięki którym będą wykonywane akcje obiektu. Actuatory można kontrolować także poprzez skrypty Pythona.

Powyższe opisy nie są kompletne, ponieważ próbowałem przetłumaczyć manual najlepiej jak się dało, do tego poparłem to swoim doświadczeniem. Nie mniej jednak jeśli widzicie jakieś błędy lub coś wyjaśniłem nie tak to proszę o korektę.

1 komentarz
marekl napisał :
godz. 22:16, 5 listopada 2012
Bardzo przydatne! Dzięki!
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj