Panel Logowania

Sensory

napisał : maniek
12
września
2012
Sensory są najważniejszą częścią kostek logiki. To one wykrywają zdarzenia, uruchamiają controllery a te zaś Actuatory. W tym artykule postaram się objaśnić co to są sensory oraz pokrótce wyjaśnię ich każdy typ.
tagi : sensory kostki logiki actuator always collision delay joystick keyboard message mouse near property radar random ray touch

1. Wprowadzenie

Sensory są pewnego rodzaju czujnikami, które wykrywają określone zdarzenia, aby wysłać pozytywny impuls do controllera.  Sensory reagują na dane zdarzenie takie jak kolizja dwóch obiektów, czy naciśnięcie klawisza na klawiaturze. Kiedy taki sensor jest wyzwalany(tzn. wykrył określone zdarzenie), do wszystkich podłączonych do niego controllerów jest wysyłany pozytywny impuls.

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

  • Actuator - wykrywa i wysyła sygnał kiedy podany actuator się uruchomi
  • Always - wysyła ciągły sygnał w równych odstępach(standardowo 60 impulsów na sekundę)
  • Collision - wykrywa kolizję pomiędzy obiektami
  • Delay - opóźnia wysyłanie impulsu o podaną liczbę klatek
  • Joystick - wykrywa akcję określonych przycisków joysticka
  • Keyboard - wykrywa akcje klawiatury
  • Message - wykrywa zarówno wiadomości tekstowe jak i wartości zmiennych wysłanych przez Actuator Message
  • Mouse - wykrywa akcje myszki
  • Near - wykrywa obiekty, które znajdują się w określonym dystansie od siebie
  • Property - wykrywa zmianę wartości zmiennej bieżącego obiektu
  • Radar - wykrywa obiekty, które znajdują się w określonym dystansie od siebie, oraz określonym kącie danej osi
  • Random - generuje losowe impulsy
  • Ray - wystrzeliwuje promień w kierunku danej osi i wykrywa uderzenia
  • Touch - wykrywa dotykanie dwóch obiektów o określonym materiale

 

2. Edycja Sensora

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

 

Nagłówek kolumny

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

Kontrolka Sensors :

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

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

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

 

Nagłówek obiektu

 

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

  • Cube - nazwa obiektu
  • Add Sensor - po kliknięciu pojawi się lista dostępnych typów sensorów. Wybranie spowoduje dodanie sensora do obiektu

 

3. Wspólne opcje Sensoró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

 

Następna linia to przyciski do manipulowania impulsem wyjściowym. Sensory jak wiadomo wyzwalają impulsy do controllerów - 60 impulsów na sekundę przepływa z sensora do controllera (przy włączonej opcji True Level Triggering), jeśli nie zostało to zmienione.

 

Następna linia przycisków definiuje rodzaj wyjściowego pulsu wysyłanego przez sensor:

  •  ''' - True Level Triggering. Jeżeli ten przycisk jest ustawiony, controlller odbiera pozytywne impulsy dopóki stan sensora jest pozywny
  •  ,,, - False Level Triggering. Jeżeli ten przycisk jest ustawiony, controlller odbiera negatywne impulsy dopóki stan sensora jest negatywne

 

Notka o triggerach

Jeżeli nie został wciśnięty ani przycisk "True Level Triggering", ani "False Level Triggering" sensory nie wyzwala żadnego impulsu tak długo aż sensor nie zmieni swojego stanu. Jeżeli sensor zmieni swój stan z negatywnego na pozytiwyny, sensor wyzwoli jeden pozytywny impuls. Kiedy zmieni stan z pozytywnego na negatywny, wyzwoli jeden negatywny impuls.

  • Freq - parametr który ustawia opóźnienie pomiędzy impulsami. Domyślna wartość 0, oznacza brak opóźnienia
  • Level -
  • Invert - odwraca wyjściowy impuls. Jeśli ten button jest wciśnięty wysyła negatywny impuls , kiedy tak naprawdę powinien wysłać pozytywny impuls i odwrotnie

 

4. Typy Sensorów

W rozdziale tym opiszę każdy z typów sensora.

Sensor "Actuator"

Sensor Actuator wysyła pozytywny impuls w momencie aktywacji podanego actuatora, a fałszywy kiedy actuator jest zdeaktywowany.

  • Actuator - w tym polu podajemy nazwę actuatora

 

 

Sensor "Always"

Sensor Always wykorzystywany przede wszystkim do robienia rzeczy dziągłych (czyli 60 razy na sekundę). Ten sensor nie posiada dodatkowych opcji.

 

 

Sensor "Collision"

Sensor Collision działa podobnie do sensora Touch, lecz dodatkowo może wykrywać obikty z daną zmienną(Property) lub materiałem. Tylko te obiekty z podanym Property/Materiałem będą generować pozytywny impuls podczas kolizji. Puste pole będzie generować impuls z każdym obiektem.

  • Pulse -
  • M/P - przełącznik pomiędzy materiałem a właściwością (zmienną; property)

 

Sensor "Delay"

Sensor Delay został zaprojektowany do opóźnienia reakcji w "tyknięciach" zegara (60 "tyknięć"na sekundę - logic ticks). Użyteczne jeżeli inna akcja ma wykonać się pierwsza lub w określonym czasie.

  • Delay - liczba "tyknięć", którą sensor odczeka zanim wyśle pozytywny impuls
  • Duration - liczba "tyknięć", którą sensor odczeka zanim wyśle negatywny impuls
  • Repeat - restartuje sensor

 

Sensor "Joystick"

Sensor Joystick wyzwala impuls przy każdym ruchu joysticka. Wykrywa także zdarzenia innych przycisków joysticka. Może być wykorzystywane więcej joysticków niż jeden. Wygląd przycisków opcji zależy od modelu oraz marki joysticka.

  • Index - określa, który joystick jest w użyciu
  • All Events - wyzwala impuls przy każdym zdarzeniu bieżącego typu

Typy zdarzeń

  • Single Axis - wykrywa ruch joysticka wzdłuż jednej osi.
    • Axis Number - numer osi
      • 1 = oś pozioma(lewo/prawo)
      • 2 = oś pionowa(przód/tył)
      • 3 = oś góra - dół
      • 4 = skręt osi(lewo/prawo)
    • Axis Threshold - próg wyzwalania impulsu
  • Hat - wykrywa ruch hat control na joysticku
    • Hat Number - definiuje który hat ma być użyty (max 2)
    • Hat Direction - definiuje kierunek jaki został użyty (góra, dół, lewo, prawo)
  • Axis - oś
    • Axis Number - numer osi
    • Axis Threshold - próg wyzwalania impulsu
    • Axis Direction -
      • Axis Number = 1 - joystick lewo-prawo, góra-dół
      • Axis Number = 2 -
  • Button - określa numer przycisku

 

Sensor "Keyboard"

Sensor Keyboard służy do wykrywania zdarzeń klawiatury.

  • Key - pole do zdefiniowania klawisza. Po wykryciu zdarzenia podanego klawisza , sensor wysyła pozytywny impuls.
  • All Keys - wysyła pozytywny impuls kiedy zostanie wciśnięty jakikolwiek klawisz. Jest to użyteczne do zmiany mapy klawiszy za pomocą pythona
  • First Modifier
  • Second Modifier - zdefiniowanie dodatkowych klawiszy które muszą być wciśnięte wraz z głównym, aby wyzwolić pozytywny impuls. Jest to przydatne jeśli chce się skorzystać z kombinacji klawiszy
  • LogToggle - to parametr, który jest odpowiedzialny za to czy sensor będzie wysyłał informacje do Target. Trzeba utworzyć właściwość typu boolean.
  • Target - to parametr do którego wysyłane są naciśnięte klawisze, jeśli twój ustawiony klawisz to tylko W, to będzie wysyłał tylko W, jeśli wszystkie to wyśle wszystkie. Przydatne do wpisywania tekstu w realtime.

 

 

Sensor "Message"

Sensor Message może być stosowany do obierania wiadomości lub wartości własności(Property). Sensor wysyła pozytywny impuls kiedy odbierze odpowiedni komunikat wysłany przez inny obiekt w grze.

  • Subject - określanie tematu wiadomości do odbioru. Sensor wyśle pozytywny impulsy kiedy odbierze wiadomość z podanym tematem

 

 

Sensor "Mouse"

Sensor Mouse jest wykorzystywany do wykrywania zdarzeń myszki. Wysyła pozytywny impuls kiedy :

  • Mouse Over Any - kursor myszki znajdzie się nad jakimkolwiek obiektem w grze
  • Mouse Over - kursor myszki znajdzie się nad obiektem, do którego jest przypisany sensor Mouse
  • Movement - myszka wykona jakikolwiek ruch
  • Wheel Down - obrócimy kółko od myszki w dół
  • Wheel Up - obrócimy kółko od myszki w górę
  • Right Button - klikniemy prawy przycisk myszy
  • Middle Button - klikniemy środkowy przycisk myszy
  • Lewy Button - klikniemy lewy przycisk myszy

 

Sensor "Near"

Sensor Near wykrywa obiekty, które poruszają się w określonym dystansie od siebie. Można wykrywać obiekty o konkretnych właściwościach(Property), jak w przypadku sensora Collision.

  • Property - w tym polu możemy wpisać nazwę zmiennej(Property), którą sensor ma wykrywać.
  • Distance - liczba jednostek Blendera, pomiędzy którymi będą wykrywane obiekty
  • Reset Distance - odległość obiektu, aby sensor mógł być zresetowany i na nowo wykrywać określone obiekty.

 

Sensor "Property"

Sensor Property wykrywa zmiany we właściwościach (Property) w obiekcie który posiada bieżący sensor Property.

  • Changed - wysyła pozytywny impuls tak długo jak właściwość zmienia wartość
  • Interval - wysyła pozytywny impuls kiedy wartość właściwości jest pomiędzy MIN a MAX
  • Not Equal - wysyła pozytywny impuls kiedy wartość właściwości jest inna od podanej
  • Equal - wysyła pozytywny impuls kiedy wartość właściwości jest ta sama jak podana

 

Sensor "Radar"

Sensor Radar działa podobnie do sensora Near, ale tylko w określonym kącie i określonym kierunku osi.

  • Property - pole do filtrowania obiektów z podaną właściwością.
    1. Sensor radar może wykrywać obiekty poprzez inne obiekty(np. ściany)
    2. Sensor radar wykrywa tylko obiekty z włączoną opcją "Actor"
  • Axis - wybór kierunku osi, gdzie sensor ma wykrywać obiekty
  • Angle - kąt wykrywania. Przedział 0-179.9
  • Distance - liczba jednostek Blendera, pomiędzy którymi będą wykrywane obiekty

 

Sensor "Random"

Sensor Random generuje losowe impulsy

  1. 0 nie generuje losowości
  2. Jeżeli sensor uruchomi się kilka razy z tym samym Seed sekwencja odstepów będzie taka sama, choć odstępy będą losowe

 

Sensor "Ray"

Sensor Ray "wystrzeliwuje" promień wzdłuż kierunku osi i wysyła pozytywny impuls kiedy "uderzy" w obiekt. Obiekty mogą być filtrowane poprzez podanie Właściwości(Property) lub Materiał.

  • Property - pole do filtrowania obiektów z podaną właściowością lub materiał
    1. Sensor Ray może wykrywać obiekty poprzez inne obiekty(np. ściany)
    2. Sensor ray wykrywa tylko obiekty z włączoną opcją "Actor"
  • Axis - kierunek rzucania promienia
  • Range - długość rzucanego promienia
  • X-Ray Mode - opcja powoduje wykrywanie obiektu przez inny obiekt

 

Sensor "Touch"

Sensor Touch wysyła pozytywny impuls kiedy obiekt jest w kontakcie z innym obiektem.

  • Material - tylko kontakt obiektu z podanym materiałem generuje pozytywny impuls. Jeśli zostawisz puste sensor generuje impuls w kontakcie z każdym obiektem.

 

5. Zakończenie

Tak więc mamy opisane wszystkie możliwe wydarzenia do wykrycia dzięki którym będą wykonywane odpowiednie akcje obiektu. Sensory 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ę.

3 komentarze
SilverShadow napisał :
godz. 20:21, 17 września 2012
Bardzo dobry samouczek :p
Dewastacjusz napisał :
godz. 13:08, 20 stycznia 2016
Przydał by się poradnik video z praktycznym zastosowaniem każdego z sensora, controllera i actuatora, z podstawami np: jak ustawić sterowanie myszą pod obiekt lub zamiana jednego obiektów na wiele i na odwrót oraz jak podpiąć animacje pod objekt.
maniek napisał :
godz. 13:57, 20 stycznia 2016
Nie wiem czy jest aż taki sens tworzenia tutoriau do każdego typu actuatora, ponieważ niektóre są dziecinnie proste. np: Actuator Game -> restart Game.. Co tu tłumaczyć?? Może interesuje Cię bardziej rozwiązanie konkretnego problemu za pomocą kostek logiki to napisz, pomyślimy o jakimś materiale do nauki??
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj