Unity Manual User Guide Building Scenes Cameras

Kamery

Kamery w Unity są powykorzystywane do projekcji świata gry. Zawsze będziesz miał conajmniej jedną kamerę na scenie, można mieć więcej niż jedną. Wiele kamer można wykorzystać dla 2 graczy (splitscreen) lub tworzenia zaawansowanych niestandardowych efektów. Możesz animować kamerę lub sterować nią z fizyki. Możesz używać typowych lub wyjątkowych kamer dopasowanych do stylu gry.

Kamera

Kamery to urządzenia które nagrywają i wyświetlają świat gry w odtwarzaczu. Po przez dostosowywanie i manipulowanie kamerami można dokonać prezentacji swojej gry naprawdę wyjątkowej. Można mieć nieograniczoną liczbę kamer na scenie, można je ustawiać tak aby wyświetlać je w dowolnej kolejności w dowolnym miejscu na ekranie, lub tylko niektóre części ekranu.

cameras-0.jpg

Obiekt Kamera w Unity

Właściwości

  • Clear Flags - określa które części ekranu zostaną wyczyszczone. Jest to przydatne podczas korzystania z wielu kamer do tworzenia różnych elementów gry
  • Background - Kolor zastosowany do pozostałości na ekranie w celu gdy wszystkie elementy zostały ustalone ale nie SkyBox.
  • Culling Mask - Włącza lub wyłącza warstwy obiektów renderowane przez kamery. Przypisywanie warstw do obiektów jest w oknie Inspektora.
  • Projection - przełaczanie kamery umozliwiające symulowanie perspektywy
    • Perspective - kamera będzie renderować obiekty nienaruszone z perspektywy
    • Orthographic - kamera będzie renderować obiekty jednolicie, bez poczuci perspektywy
  • Size - (po wybraniu Orthographic) Rozmiar rzutni z aparatu, gdy ustawiono Orthographic
  • Field of view - Szerokość kąta widzenia aparatu, mierzona w stopniach wzdłuż lokalnej osi Y
  • Clipping Planes - Odległości od kamery do uruchamiania i zatrzymywania renderowania
    • Near - najbliższy punkt w stosunku do kamery wyświtlanego obrazu
    • Far - najdalszy punkt w stosunku do kamery wyświetlanego obrazu
  • Normalized View Port Rect - cztery wartości, które wskazują gdzie na ekranie widok kamery zostanie sporządzony w układzie współrzędnych ekranu (wartości 0-1)
    • X - początek w pozycji poziomej w której wodok obraz zostanie spożądzony
    • Y - poczatek w pozycji pionowej w której wodok obraz zostanie spożądzony
    • W - (szerokość) szerokość wyjścia kamery na ekranie
    • H - (wysokość) wysokość wyjścia aparatu na ekranie
  • Depth - pozycji aparatu w kolejności losowej. Kamery z większą wartość będzie wyświetlona na pierwszym miejscu niż kamera z miejszą wartością
  • Rendering Path - opcja określająca jaka metoda renderingu zostanie użyta przez kamerę
    • Use Player Settings - Ten aparat będzie używać dowolnych ścieżek renderingu jakie są ustawione w ustawieniach odtwarzacza
    • Vertex Lit - Wszystkie obiekty renderowane przez ten aparat będzie renderowane jako obiekty Vertex-Lit.
    • Forward - Wszystkie obiekty będą renderowane w jednym przejściu na materiale, tak jak to było standardem w Unity 2.X
    • Deferred Lighting - (tylko Unity Pro)
  • Target Texture - (tylko Unity Pro/Advanced)
  • HDR - umożliwia aktywowanie dla kamery renderingu High Dynamic Range

Szczegóły

Kamery są niezbędne do wyświetlania otoczenia gry. Mogą one zostać dostosowywane, oskryptowane lub nadrzędne w celu osiągnięcia wszelkiego rodzaju efektów jakie tylko można sobie wyobrazić. Do gry puzzle można można zachować kamerę statyczną dla pełnego widoku układanki. Dla first-person shooter (FPS) może być przypisaną do postaci gracza, a następnie ustawiona na poziomie oczu bochatera. Dla gry wyścigowej chcesz mień prawdopodobnie kamerę podążającą za pojazdem gracza.

Można ustawić wiele kamer i przydzielić każdą do innego Depth. Kamery przechodzą z małego Depth do dużego Depth. Innymi słowy kamera z Depth 2 będzie nagrywać na górze aparatu z Depth 1. Można regulować wartości Normalized View Port Rectangle do zmiany rozmiaru i ustawić kamerę w widoku na ekranie. Można ustawić wiele mini-widoków jako pociski, widok mapy, lusterek wstecznych, itp.

Ścieżki renderingu

Unity obsługuje różne ścieżek renderingu. Należy wybrać z których z nich korzystać w zależności od treści i celu gry, platformy/sprzętu. Różne ścieżki renderingu mają różne cechy i właściwości użytkowe, które w większości mają wpływ na światło i cienie. Ścieżki renderingu używanych przez projektor zostały wybrane w ustawieniach odtwarzacza (Player Settings).

Aby uzyskać więcej informacji na temat ścieżek renderowania, sprawdź stronę ścieżki renderingu.

Clear Flags

Każda kamera przechowuje informacje i głębią kolorów, gdy renderuje swój podgląd. Partie ekranu które nie zostały sporządzone i są puste to wyświerli domyślny Skybox. Podczas korzystania z wielu kamer każda z nich przechowuje własny kolor i informacje o głębiach w buforach, gromadząc więcej danych, jako każda renderowana kamera. Jak jakaś kamera renderuje ze swojego stanowiska można wyczyścić jej zbiory informacji z bufora używając Clear Flags. Odbywa się to po przez wybranie jednej z czterech opcji:

Skybox

Jest to ustawione domyślnie. We wszystkich pustych częsciach ekranu zostanie wyświetlony bieżący Skybox kamery. Jeśli aparat nie ma zestawu Skybox, domyślnie będzie wybrany Skybox w Render Settings (Edit→Render Settings). Wtedy powróci do Background Color. Alternatywnie element Skybox można dodać do kamery. Jeśli chcesz utworzyć nowy SkyBox możesz użyć tego przewodnika

Solid Color

Wszelkie puste części ekranu zostaną wypełnione bieżącym kolorem tła kamery.

Depth Only

Jeśli chcesz zwrócić uwagę gracza na broń i nie pozwolić jej się obciąć wewnątrz środowiska, należy ustawić jednej kamerze Depth 0 w tworzonym środowisku i innej kameże nadać Depth 1 aby nakreślić samą broni. Kamery broni powinny mieć Clear Flags ustawione na depth only. To pomoże utrzymać wyświetlacz graficzny środowiska na ekranie, ale odrzucać wszelkie informacje na temat, gdzie każdy obiekt istnieje w przestrzeni 3D. Kiedy pistolet jest wyświetlany, nieprzezroczyste części będą całkowicie pokryć wszystko, niezależnie od tego jak blisko pistolet jest od ściany.

cameras-1.jpg

Pistolet jest rysowany ostatni, po usunięciu bufora z kamer przed nim

Don't Clear

Tryb ten nie jest wyczyszczeniem koloru lub głębi bufora. Powoduje że każda klatka jest tworzona na następnej, w wyniku czego otrzymujemy efekt rozmycia. Nie jest to zazwyczaj stosowane w grach, najlepiej stosować z niestandardowymi shaderami.

Clip Planes

Near i Far Clip Plane właściwości te określają w którym miejscu podgląd kamery zaczyna się i kończy. Płaszczyzny są ułożone prostopadle do kierunku aparatu i są mierzone od jego pozycji. płaszczyzna Near znajduje się najbliżej miejsca które będą renderowane i płaszczyzna Far jest najdalej.

Płaszczyzny clipping również określa jak głębokość precyzja bufor jest rozłożona na scenie. Generalnie, aby uzyskać lepszą dokładność należy przesunąć plan Near w jak największym stopniu.

Należy pamiętać, że przycięcie płaszczyzny near i fear wraz z płaszczyzną określającej pole widzenia kamery opisać można to, co jest powszechnie znane jako kamery ścięte. Unity zapewnia, że podczas renderowania obiektów, które są zupełnie poza tym ścięciem nie są wyświetlane. To się nazywa Frustum Culling. Frustum Culling dzieje się to niezależnie od tego, czy używasz Occlusion Culling w swojej grze.

Ze względu na wydajność warto zerwać małe obiekty wcześniej. Na przykład, małe kamienie i pozostałości mogą być niewidoczna w znacznie mniejszej odległość niż duże budynki. Aby to zrobić, umieścić małe obiekty w osobnej warstwie i konfiguracji za-warstwowe odległości wycofane z wykorzystaniem funkcji skryptu Camera.layerCullDistances.

Culling Mask

Culling Mask służy do selektywnego renderowania grupy obiektów używanej warstwy. Więcej informacji na temat korzystania z warstw można znaleźć tutaj.

Zwykle jest to dobra praktyka, aby umieścić swój interfejs użytkownika na innej warstwie, a następnie uczynić ją samą z oddzielną kamerą ustawioną na renderowania samej warstwy UI.

Aby UI wyświetlany był na wierzchu innych widoków kamery, musisz również ustawić Clear Flags na Depth only i upewnić się że Depth kamery UI jest większa niż w innych kamerach.

Normalized Viewport Rectangle

Normalized Viewport Rectangle są specjalnie określenia dla pewnej części ekranu, że obecna kamera będzie wykorzystywana. Można umieścić widok mapy w prawym dolnym rogu ekranu, lub wskazówkę kierunku w lewym górnym rogu. Przy odrobinie pracy projektowe, można użyć Viewport Rectangle do stworzenia unikatowych zachowań.

Jest to łatwe do stworzenia efekt podziału ekranu dla dwóch graczy przy użyciu Normalized Viewport Rectangle. Po utworzeniu dwóch kamer należy zmienić wartości kamery H na 0,5 a następnie ustawić wartość odtwarzacza Y na 0,5, a drugi odtwarzacz wartość Y na 0. Spowoduje to, że jeden z graczy na obrazie z kamery od połowy wysokości ekranu do góry, a drugi gracz na kameże rozpocznie się na dole i zatrzyma w połowie ekranu.

cameras-2.jpg

Dwóch graczy na stworzonym ekranie Normalized Viewport Rectangle

Orthographic

Oznaczenie kamery jako Orthographic usówa wszystkie perspektywy z widzenia kamery. Jest to bardzo skuteczne do tworzenia gier izometrycznych lub 2D.

Należy zauważyć że mgła jest renderowana równomiernie w trybie kamery orthographic. Przeczytaj więcej o tym komponent ustawień renderowania.

cameras-3.jpg

Kamera Perspective.

cameras-4.jpg

Kamera Orthographic. Przedmioty moga wydać się mniejsze tutaj z odległości!

Render Texture

Ta funkcja jest dostępna tylko dla Unity z licencją Advanced. Będzie to widok z kamery na na Textury, które mogą być stosowane następnie na innym obiekcie. To sprawia że można łatwo stworzyć monitory wideo, sportowe areny, itp.

cameras-5.jpg

Render Texture służy do tworzenia na żywo arena-cam

Wskazówki

  • Kamery mogą być instancją, nadrzędne/dziedziczone i skryptowane jak każdy inny GameObiekt
  • Aby zwiększyć poczucie prędkości w grze wyścigowej pomoże tobie w tym użycie dużego pola widzenia
  • Kamery mogą być używane do symulacji fizyki jeśli doda się komponent Rigidbody
  • Nie ma ograniczeń co do ilości umieszczonych kamer w scenach
  • Kamery typu Orthographic idealne do tworzenia interfejsu 3D użytkownika
  • Unity wyposażone jest w preinstalowany skrypt kamery który znaleźć można w Components→Camera Control. Eksperymentuj z nim aby posmakować jakie ma możliwości.

Poprzedni Następny

unity_manual/cameras.txt · ostatnio zmienione: 2012/11/18 18:45 przez valaantha
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki