한 걸음 두 걸음
Day3 ACI ] 지형Terran 만들기 / 지형 색칠하기(asset store 활용) / 빛(light) bake하기 / randering mode / 재질표현 / 피봇 센터 / 축 새로 만들기 / onCollisionEnter 본문
Day3 ACI ] 지형Terran 만들기 / 지형 색칠하기(asset store 활용) / 빛(light) bake하기 / randering mode / 재질표현 / 피봇 센터 / 축 새로 만들기 / onCollisionEnter
언제나 변함없이 2019. 1. 23. 13:45지형도 만들 떄, FBX파일포맷을 주로 많이 씁니당 : )
지형을 만들기위해 Terran객체를 사용하여 테스트해봅시다.
플레인보다 크기가 500배정도 크다. 이 또한 마찬가지로 3D Object로 만들어줄 수 있다.
raise를 선택해줍시다. 왼클릭으로 raise해주는걸로 대충 지형을 만들어주고
솟아오른 지형들을 색칠해주려고 material을 만들어서 그래드앤드랍을 해줬더니 안된다고함.
이럴 땐, Paint Texture해줍니다.
Edit Texture해서 새로운 레이어 만들어 사용하면 되는데 기존의 asset이 없으므로
위처럼 기존에 가지고있던 땅 모양을 추가해주거나
control + 9 = asset store 에가서 하나 얻어옵시다.
기본적으로 유니티 입문자가 사용할 수 있게끔 asset 모아놓은 것을 가져다 사용해보자.
여기서 download를 해서 import해서 사용합니다.
해제시켜주어야한다.
ㄱ
길을 만들어주었어용~~
height 50으로 주고
그러고나서 잡아당기면 봉우리가 하나 만들어집니다.
이런식으로 지형을 만들어봅니다아~
너무 뾰족한 것 같으면
이를 이용해서 smooth하게 만들어줍니다.
그리고 이제 다시 처음에 썼던 raise and lower 써서
shift + 클릭으로 분화구를 만들어주었습니당 : )
그리고 이제
speed tree나 water도 있으니 나중에 활용해보세요오
물도 넣어줘봤음.ㅎㅎ prefebs에 있는걸로다가
보상광고는 플레이도중에 중지할 수 없고 끝까지 봐야함
단순광고는 중간에 skip가능합니다
2시 수업시작했어요~
ㅇ
스포트라이트는원뿔모양이에요
intensity 빛의 밝기 / range 영역 등을 설정해줄 수 이씀
spot 원뿔
directional 원기둥~
Point 구
area ,... 등등 다양하게 잇져!
baked 구워서 보여준다(?)
realtime 실시간으로 보여줘요오
baked를 해주는 이유는 그래픽의 메모리를 많이 소모하기 때문에 시간이 많이 흘러갈 수 있는 부분을 보완해줄 수 있기 때문이다.
조명을 굽기 위해서는 static설정을 한 후 해주어야한다.
보통 빌드하기 직전에 구워서 적용시켜준다.
조명을 구웠을 때 만들어지는 파일 확장자를 exr이라고 한다.
조명을 굽고난 후 만들어진 데이터파일
이렇게 굽는 이뉴는 성능의 최적화를 하기위함이다.
원래
여기서 선택해서 구울것만 구우면 되는데 귀찮아서 다 구워버림요.
New Scenes 새로 만들었어요
간단하게 Plane 위에 공 하나 원통하나 넣어줬음!
그림자 넣는 것도 AOD에 따라 됨
쿠키 - 아까 구워놓은 조명 값(그림자)을 가져다 씀.
에서 emission
눌러준 뒤, 색상 지정해주면 색상값이 많이 달라짐
area light는 baked된 이후에야 결과가 나옵니다 : ) 주의주의!
ㅇ
렇게 되었어요 이렇게 되었어요 이일이이이일이ㅇ
이미지 첨부할 때 글씨 이상하게 깨지네...
하여튼 천천히 하고 ,,,,,
객체에다 material로 색깔 입히고, static으로 처리한 후,
나중에 window - randering- lighting setting에서 generate Lighting해줍니다.
위의 영역은 색깔 처리를 한다는 점에서 아티스트 디자인 부분이라면 아래부터는 다시 개발자영역이에용
아아아!! 정신차리자
여기서 randering Mode를 클릭해보면
위와같이 opaque 꽉 차있는 변화없는 상태(고체물체) / cutout 갑자기 사라짐 / Fade 서서히사라지다 / transparent 유리창 등을 표현할 때 등등 다양한게 나오는데
색깔 눌러서 A값 변경해주면 cutout에서는 어느 순간 딱 사라져버리지만
Pade모드에서는 서서히 옅어지는 등의 효과로 나타난다.
transparent는 보였다가 점점 투명해져요~
그러므로 rgb의 alpha (A)값만 알아가세요오
유리창의 경우 어떤 부분은 더럽고 어떤 부분은 깨끗하게 보이도록 만들어주고싶을 때
투명하게 똑은 색깔이 있게 설정해주면 되니까 transparent로 유리창 적용시킬 때 쓰임
게임에서 쓰이는 예시를 추가로 더 적어보자면
아이템 서서히 사라지게함 = fade효과
새로 하나 만들어서 교재 77페이지랑 78페이지 공부합시당
여기서 메탈릭 등 색상 재질 느낌을 줄 수 있다.
그리고
둘이 차이가 조금씩 남
specular 색상을 주면 이렇게 광택이 나게 됩니다.
예시 이렇게 나온다구여~~ 순수한 색깔을 줄 때는 allbedo지만 광택은 밑에있는 스펙큘러임.ㅎ
해를 켜줬더니 이렇게 됨 : )
아티스트는 이렇게 조명 및 재질의 색상등을 현실감있게 만들어지고 등등을 맞추는 역할이야.
프로그래머의 영역은 rgb a에서 a의 영역의 값에 따라 변하는 것을 알기만 하면 돼요
한솔 선인장되겠당 내일은 꼭 물통가져와요~
교재 25페이지~~
피봇 / 센터 차이를 봅니다.
sphere 와 capsule은 각각 피봇과 센터 사이의 차이가 없지만 이를 빈객체이 넣어 부모로 만든 GameObject에는 피봇과 센터간의 차이가 있음!!
이렇게 차이가 나는 이유
센터는 그냥 둘 사이의 변화하는 중심(평균값)이고
피봇은 생성된 위치로 두 그룹의 첫 시작 위치이다.
교재스터디중
축 추가하기
원래 디폴트값으로 18이 적혀있는데 19라 해주면 축 하나가 더 추가됨
Cancel이라는 축이 새로 만들어졌죠? 이름은 따로 지정해주면 됩니닿ㅎㅎ
그리고, 가상의 축을 만들 때 이렇게 Input Manager를 통해서 만든다는 거 아셔야해욤~
필요없으면 delete
이제 마지막...!
/*
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Box"))
{
other.gameObject.SetActive(false);
count = count + 1;
SetCountText();
}
}*/
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Box"))
{
collision.collider.gameObject.SetActive(false); //collision.gameObject하면 공도 같이 사라져버리므로, collision.collider를 해주어야함!!
count = count + 1;
SetCountText();
// Destroy(gameObject);
}
}
이것처럼 onTriggerEnter 대신에 onCollisionEnter을 사용해보는 연습을 했는데
충돌이 일어나려면 IsTrigger 제한을 풀어서 물리적인 계산 즉 충돌이 일어나도록 해주고
그리고 collision 말고 collsion.collider을 해주어서
충돌이 일어날 때 같이 들어가는 gameObject인 공과 박스 둘 다 없애버리는 것이 아니라
collider 즉 상대충돌체를 없애버리도록 해야한다!