Unity 3D alapok + gyakorlás.

Slides:



Advertisements
Hasonló előadás
A Föld helye a Világegyetemben. A Naprendszer
Advertisements

Egyenletes körmozgás.
A FÖLD, ÉLETÜNK SZÍNTERE
A NAPPALOK ÉS ÉJSZAKÁK váltakozása
7. Az idő mérésére használt csillagászati jelenségek
A Vocatude program telepítése
A Föld, mint égitest.
A Föld keringése a Nap körül. Az évszakok váltakozása.
A Föld helye és mozgása a Naprendszerben
Manapság a Földről így vizsgáljuk a csillagokat…
Analitikus (koordináta) geometriai gyorstalpaló
Geometriai modellezés
Geometriai modellezés
Virtuális világ tárolása Szirmay-Kalos László. Belső világ tárolása l Geometria: pontok koordinátái l Topológia: élek-pontok; lapok-pontok;... l hierarchia:
Mozgások Emlékeztető Ha a mozgás egyenes vonalú egyenletes, akkor a  F = 0 v = állandó a = 0 A mozgó test megtartja mozgásállapotát,
Transzformációk kucg.korea.ac.kr.
A Föld helye a világegyetemben
Web-grafika (VRML) 6. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
3. Vetületi ábrázolások számítási eljárásai
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Egyéni animáció készítése
MACROMEDIA FLASH Mire használható? példák. MACROMEDIA FLASH vektor – bitmap.
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs.
MATEMATIKA GEOMETRIAI TRANSZFORMÁCIÓK: Egybevágósági transzformáció
Tájékozódás az égen Az éggömb: Forgása:
A Nap mozgása az égbolton nappal. A Föld forgása saját tengelye körül.
 : a forgásszög az x tengelytől pozitív forgásirányában felmért szög
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1.Labor : Modellezés. Blender D:\GameDev\Blender3D\blender.exe D:\GameDev\Blender3D\blender.exe Ismerkedjünk az interface-el!!!
Analitikus geometria gyorstalpaló
3D képszintézis fizikai alapmodellje Szirmay-Kalos László Science is either physics or stamp collecting. Rutherford.
3.3 Forgatónyomaték.
Digitális képanalízis Pontoperátorok, matching. Nézzünk egy példát!
2. Koordináta-rendszerek és transzformációk
EGYÉNI ANIMÁCIÓ.
Számítógépes Grafika 6. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
A FÖLD, A KÉK BOLYGÓ A FÖLD FORGÁSA ÉS KÖVETKEZMÉNYEI
Hogyan mozognak a bolygók és más égi objektumok?
Készítette: Kiss István
Pontszerű test – kiterjedt test
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor.
Hasonlóság modul Ismétlés.
Multimédia Hangok, videók. Hangok Unityben A hangot hangforrás (Audio Source) játssza le és hallgatók (Audio Listener) segítségével hallhatjuk A Listener.
Hálózati többjátékos mód Multiplayer játékok. UNet HLAPI Hálózati játékot magunknak megírni hosszadalmas és bonyolult Kommunikáció, szinkronizáció, távoli.
Unity alapjai. Új projekt Asset Import Másoljuk be a boltív modellünket az asset könyvtárba.
Karakter animáció. Animáció alapok (ismétlés) Új 3D project (CharacterAnimation) Adjunk a jelenethez egy gömböt Hozzunk létre egy AnimatorControllert.
A Föld keletkezése, felépítése, szerkezete A litoszféra és a talaj, mint erőforrás és kockázat 1.
Realtime 3D rendszerek, Unity 3D Témalabor, 2016.
Karakter Animáció és Kontroller Unity. Kezdeti lépések Alap projekt letöltése Egy statikus geometriát láthatunk Meg vannak a fizikai befoglalók is.
Együtt a Naprendszerben
Platformer játék Pálya generálás. Új projekt Csináljunk új 2D projektet Neve legyen Platformer Kép asseteket töltsük le, és importáljuk a projektbe Majd.
Unity programozási gyakorlatok
Sprite animáció, kamera követés, háttér mozgás
Global Illumination.
Unity alapjai.
3d alakzatok, fizikai anyagok, kényszerek
JátékLogika.
EGYSZERŰ MOZGÁSOK Motorok vezérlése.
„Designer-barát” játéklogika
Hogyan mozog a föld közelében, nem túl nagy magasságban elejtett test?
GUI.
Fodor Edina, óra feladata Fodor Edina,
Vizualizáció és képszintézis
3D szerkesztőprogram alapok, szkriptelési alapok, procedurális modellezési alapok Blender Python.
Unity.
Ghost Hunter Game logic/HUD.
Ültetési rend létrehozása
A HOLD Átmérője 3476 km Távolsága a Földtől km
A Föld, mint égitest.
Előadás másolata:

Unity 3D alapok + gyakorlás

Transzformációk Megnéztük a 2D projektek alapjait Ami fontos a 3D-re áttérésnél: 3D transzformációk Fényelés Anyagjellemzők 3D animációk ….

Új 3D projekt Chandelier

Ismerkedjünk a felülettel Gyakoroljuk kicsit 3D navigálás a térben Adjunk hozzá egy objektumot Pl gameObject menu-3Dobject-Sphere Járjuk körül (néha fokuszáljunk rá : F gomb) Használjuk a transzformációs eszközöket (figyelhetjük közben az inspectort)

Transzformációk tengelyei, középpontja

Transzformációk Inspector nézetben legfelső komponens A transzformációk a következő sorrendben futnak le: Scale Rotate Translate A sorrend fontos

Transzformáció gyakorlás Bontsuk fel a transzformációkat transzformáció hierarchiával Legyen külön gameobject az eltoláshoz és a forgatáshoz (scale-t egyenlőre hagyjuk) Rakjuk őket hierarchiába, és helyezzünk el egy objektumot az alsó szintre (pl. teapot asset) Legyen a forgatás x:10,y:20,z:30 Legyen az eltolás: x:5,y:0,z:0 Csináljunk két különböző sorrendű váltpzatot (Köv. dia)

Különböző sorrendű transzformációk

Különböző sorrendű transzformációk Ugyanezt megcsinálhatjuk skálázással és eltolással Forgatással és skálázással …

Feladat: Naprendszer Assetek letölthetők Cél: Minden égitest függetlenül méretezhető legyen Adjunk hozzá Föld bolygót, aki Kering a nap körül (körpályán) Forog a saját tengelye körül Adjunk a Föld-höz holdat, aki Kering a föld körül, de a föld saját tengely körüli forgásától független sebességgel

Forgató szkript Jól jön még egy egyszerű szkript: using UnityEngine; using System.Collections; public class RotateY : MonoBehaviour { public float speed; void Update () { float dt = Time.deltaTime; transform.Rotate(new Vector3(0,dt*speed,0)); }

Próbálgassunk futtatgassunk …

Kamera mozgatása Egyszerű target kamera mozgatás Van egy target, mindig ra nézünk A kamera a target körül forog Egérmozgásra forog a kamera Egér görgőre közelebb/távolabb megy (zoom) A kameraához adjunk új szkriptet:TargetCamera.cs

TargetCamera.cs public class TargetCamera : MonoBehaviour { public float rotateSpeed = 10.0f; public float zoomSpeed; public GameObject target; Transform targetTransform; Transform cameraTransform; float polar = 0; float azimuth = 0; float r = 10; void Start () { targetTransform = target.transform; cameraTransform = gameObject.transform; } …

TargetCamera.cs void Update () { float dt = Time.deltaTime; if(Input.GetMouseButton(0)) { azimuth += Input.GetAxis("Mouse X") * rotateSpeed; polar -= Input.GetAxis("Mouse Y") * rotateSpeed; } r -= Input.GetAxis ("Mouse ScrollWheel") * dt * zoomSpeed; Vector3 camPos = targetTransform.position; camPos += Quaternion.Euler(0,azimuth,0) * Quaternion.Euler(0,0,polar) * (Vector3.right * r); cameraTransform.position = camPos; cameraTransform.LookAt(targetTransform, new Vector3(0,1,0)); } }

Próba …

Föld döntése Nem pontos a föld saját tengelye szerinti forgása A föld tengelye döntött, de ez az irány a naprendszer koordinátatengelyihez képes állandó Ilyet nem tudunk egyszerű hierarchiával megalkotni A föld nap körüli forgását végző transzformáció ezt a bedöntést is forgatná (nem lenne nyár az egyik féltekén ) Ki kellene ütnünk ezt az automatikus forgatást Szkriptet írunk, a föld objektumon kapcsoljuk ki az eddigi forgató szkriptet és adjunk hozzá egy újat:

using System.Collections; public class EarthTilt : MonoBehaviour { using UnityEngine; using System.Collections; public class EarthTilt : MonoBehaviour { public GameObject Sun; public float rotateSpeed; void Update () { Transform sunT = Sun.transform; Transform earthT = gameObject.transform; earthT.rotation = sunT.rotation * Quaternion.Euler(0, 0, 23); transform.Rotate(new Vector3(0, Time.time * rotateSpeed, 0), Space.Self); }

Futtatás Be kell kötni a SolarSys nevű objektumot a script bemenetére, és beállítani a forgási sebességet (365)

Free kamera Nincs target Iránybillentyűkkel előre/hátra mozog Egérrel forog, saját tengelye körül

Kamera mozgatás szkript using UnityEngine; using System.Collections; public class FreeCamera : MonoBehaviour { void Update () { float moveSpeed = 10; float dt = Time.deltaTime; Vector3 move = new Vector3(0,0,0); if (Input.GetAxis ("Horizontal") < 0) { move = move + new Vector3(-1,0,0); } else if(Input.GetAxis ("Horizontal") > 0) { move = move + new Vector3(1,0,0); } if (Input.GetAxis ("Vertical") > 0) { move = move + new Vector3(0,0,1); } else if (Input.GetAxis ("Vertical") < 0) { move = move + new Vector3(0,0,-1); } move.Normalize(); transform.Translate(move * dt * moveSpeed); }

Kamera forgás void Update() { … float rotateSpeed = 2.0f; transform.RotateAround(Vector3.up, dt *Input.GetAxis ("Mouse X") * rotateSpeed); Vector3 rightVector = transform.rotation * Vector3.right; transform.RotateAround(rightVector,-dt * Input.GetAxis ("Mouse Y") * rotateSpeed); //ez nem jó! //transform.Rotate(new Vector3(0,dt *Input.GetAxis ("Mouse X") * rotateSpeed,0)); //transform.Rotate(new Vector3(-dt *Input.GetAxis ("Mouse Y") * rotateSpeed,0,0)); }

Vége