게임 개발165 팁) 유니티 애니메이션 1인 개발자는 모델링조차 못하는게 정상인데 애니메이션까지는 만들 수 없는 경우가 많다. 그래서 우리는 Mixamo(믹사모) 라는 사이트를 이용하게 된다. https://www.mixamo.com/#/?page=1&type=Motion%2CMotionPack Mixamo www.mixamo.com 여기서 다양한 애니메이션을 얻을 수 있다. 총쏘는 애니메이션, 죽은 애니메이션, 앞이동, 뒤이동, 양옆이동 보편적인 애니메이션부터 강남스타일, 전화같은 춤과 모션까지 있다. 여기서 애니메이션을 다운받아서 유니티로 가져온다음 애니메이션 컨트롤러 하나 만들고 연결하고, 코드짜서 만들면 된다. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 8. 16. 유니티) C# 기초 자료형 정리 오늘은 기초로 돌아가서 자료형들을 정리해보겠다. + 원리 일단 제일 많이 쓰이는것부터 인간 친화적으로 소개해보겠다. float : 소수, 정수 모두 포함하는 수(소수점자리 7개 까지) int : 정수. string : 문자열 bool : 참과 거짓(if문을 만들때 필요) 이게 제일 주로 쓰인다. 이것만 알아도 게임을 만드는데에는 딱히 지장이 없다. 타입을 바꾸는 것도 궁금할것 같은데, 일단 왠만한건 int num = (int)5.5f; 처럼 괄호를 이용해서 바꿀수 있는데, 안되는것들도 많으니 하나하나 소개하자면 float.parse(문자열); int.parse(문자열); 등등 parse가 기본적으로 쓰인다. 왜 안에 문자열이 들어가나면 무슨 자료형이던지 문자열로 바꿀수 있기 때문이다 .ToString().. 게임 개발/C# 2022. 8. 16. 유니티 Data 만드는법. 유니티에는 다양한 속성을 받을수있는 Data라는 에셋이 있다. 우리가 public으로 저장한 변수마냥 인스펙터창에서 저장해줄수있는 Data를 만들기 위해서는 새로운 스크립트를 만들어서 이런식으로 만들어주면 된다. MonoBehaviour 스크립트를 참조하지 않아도 된다. 대신 ScriptableObject라는 클래스를 받아온다. 이 기능의 이름이 ScriptableObject이다. 그리고 그 위에 [CreateAssetMenu(menuName = "Scriptable/GunData", fileName = "Gun Data")] 라는 코드를 써준다. 그러고 유니티 에디터에서 우클릭을 누르게 되면 와우 원래 있던것마냥 폴더 위에 무엇인가 새로운 "메뉴"가 생겼다. 그렇다 [CreateAssetMenu(men.. 게임 개발/유니티C# 2022. 8. 16. 유니티 C# rigidbody를 이용한 캐릭터 이동 유니티에서 초보들은 이동을 구현할때 transform.position = transform.position + distance; 이런식으로 현재위치 = 현재위치 + 갈 위치; 로 표현한다. 하지만 트랜스폼으로 이동했을때의 단점은 순간이동을 하는 거랑 비슷하기때문에 rigidbody를 넣어 놓았다고 해도 벽을 통과할수있다. 그렇기에 중급자인 우리는 Rigidbody.MovePosition(Rigidbody.position + distance); 를 써서 순간이동 현상을 예방해 주어야 한다. 솔직히 Rigidbody.position 이 있다는것은 처음 알았다... 살짝 충격이다 그럼 도움이 되었길 바라며, 끝. 게임 개발/C# 2022. 8. 16. 유니티 C# get, set(프로퍼티) 오늘은 중요하다. 프로퍼티라고 불리는 get과 set에 대하여 알아보자. 나는 이 개념에 대해 많이 헤맸는데 이글을 본사람은 이글에서 한번에 이해하고 가길 바란다. 보통 우리는 변수를 선언할때 Type Name = value; 로 선언한다. 하지만 get과 set이 등장하는 변수에는 Type Name{ get { xxx... } set { xxxx.. }} 이라는 처음볼때는 미쳐버린 이상한 코드가 나온다. get과 set의 기능을 알려주겠다. set부터 설명하겠다. set은 다른 코드에서 이 변수를 정의 할때 실행되며, 함수처럼 이 변수를 정의한 값을 value라는 키워드로 받는다. 그래서 만약 다각형의 내각을 구해주는 계산기가 있다면 음수각형, 0각형, 1각형, 2각형은 있을 수 없기에 set { if.. 게임 개발/C# 2022. 8. 15. 유니티 아바타 마스크 오늘은 아바타 마스크에 대해 알아보겠다. 아바타 마스크의 정의(기능)은 애니메이션을 부분적으로 표현하는 것이다. 예를 들어 총을 조준하며 앞으로 가는 애니메이션이 있다고 하면 팔만 움직이게 하여 조준하는 애니메이션으로 쓸 수 있다. 설명은 이정도만 하고 만드는법, 설정하는법을 알아보겠다. 일단 만드는건 Create -> Avatar Mask로 만들어준다. 그럼 이런 귀여미가 생긴다. 이걸 클릭하고 인스펙터를 보면 이렇게 떠서 솔직히 처음에는 아무것도 조정할수 없는 에셋인가보다 했지만 Humanoid와 Transform의 날개(화살표)를 펴서 보면 나름 전문적이게 생긴 모델이 나온다. 이제 여기서 애니메이션을 적용할 부위만 초록색으로 만들어준다. 터치하면 빨간색으로 바뀜 -> 적용 X 나는 상체만 쓰도록 .. 게임 개발/유니티 2022. 8. 15. 유니티 블렌드 트리(애니메이션) 블렌드 트리란 유니티에서 값에 따른 애니메이션을 실행할수 있게 해주는 기능이다. 유니티의 애니매이터 탭에서 우클릭, Create State -> From New Blend Tree를 클릭해서 생성한다. 그러면 저런 조각이 생긴다. Blend Tree를 더블클릭해서 들어가보면 개인적으로 언리얼엔진에서 머티리얼을 넣을때 보았던 저런 이상한 게 있다. 저걸 한번 클릭해서 인스펙터를 보면 이런식으로 되어있는데, 예시를 들기 위해 +버튼 , Add Motion Feild를 사용해서 5개정도 추가한다. 그럼 이런 상태가 된다. 가즈고 있던 애니메이션을 넣어보겠다. 이런 모양새가 된다. 되게 외계인처럼 생겼는데, 맨 왼쪽, 세로기준 중간쯤에서 살짝 아래쪽으로 가서 보면 Move를 드래그로 움직일 수 있게 되어있다. .. 게임 개발/유니티 2022. 8. 15. 유니티 반사광 표현(일루미네이션) 유니티에서 조금 더 퀄리티 좋은 게임을 위해 반사광을 넣어주려고 한다면, 이글이 도움이 되...길바란다. 물체 사이의 반사광, 간접광을 표현하는 기능을 Global Illumination 이라고 한다. (줄여서 GI) 물체 사이의 반사광을 실시간으로 계속 처리한다는것은 현재 기술력의 PC에서도 불가능하다. 그렇기에 우리는 움직이지 않는 물체(스테이지)에 미리 반사, 간접광과 그림자를 표현해주고 물체를 움직이지 않게 한다. 물론 유니티에서는 실시간으로 처리하는 기능을 지원한다. 설정할게 엄청많아서 이렇게 설정해주면 된다. Realtime Global illumination 체크, Baked Global Illumination 체크, Direct Samples -> 16, Indirect Samples ->.. 게임 개발/유니티 2022. 8. 15. 유니티 게임 분위기(전체조명)을 바꾸는 방법. 유니티에서 게임을 제작하다보면 다양한 장르가 있을텐데 예를 들어 공포, 힐링 두가지 게임이 있다면 공포게임의 분위기는 어둡고, 무서워야 할것이고 힐링게임은 밝고 편안해야 할 것이다. 이런걸 조정하는것은 조명(빛) 인데 유니티 세계의 기본적인 빛을 주는 조명을 조정하면 된다. 유니티 세계의 태양이라고생각하면 된다. (하지만 그림자는 생성하지 않는...) 이제 본격적으로 이걸 조정하려면, Window -> Rendering -> Lighting을 클릭해준다. 그럼 이런 창이 열릴건데, Environment탭으로 가준다. 거기서 Source를 Skybox 에서 Color로 바꿔주고 이런식으로 조정해주면 된다. 만약에 공포게임이라면 저 색을 검정색과 빨간색등 무섭고 어두운 색에 가깝게 해주면 되고, 힐링게임이라.. 게임 개발/유니티 2022. 8. 15. 유니티 C# Static(정적) 사용법, 기능 유니티를 나름 오랫동안 해본 나에게도 static이란 기능은 써보지 않았었다. 왜냐하면 일단 보이는것만으로도 어려워보이고 무슨기능일지는 모르지만 그렇게 엄청난 도움이 되는 기능이 아닐것같았기 때문이다. 하지만 저 지식 하나의 기능은 생각보다 놀랍다. 우리는 보통 변수를 만들때 한 스크립트 안에서 작성하게 되는데, 여러, 아니 모든 스크립트에서 필요할만한 중요한 변수는 어디다가 만들어야 할지 고민하게 되고, 만들었다고 하더라도 저 변수를 쓰는 스크립트마다 클래스를 가져와서 사용해야하니 대단히 불편했다. 하지만 static을 사용하면 쉽게 말해 모든 스크립트에서 쉽게 가져올수 있게된다. 그리고 스크립트가 여러개여도 저 변수는 하나만 적용된다. 왕 같은 자리에 있다고 할 수 있다. 예를 들면 bool isGa.. 게임 개발/C# 2022. 8. 14. 유니티 게임이 시작한 후 흐른 시간 구하기 제목만 봐서는 Time.delta 을 이용해 Update 함수에 넣어서 1초씩 증가 시킨다 이런거 일것같지만 생각보다 유니티의 Time 클래스에는 좋은기능이 있다. Time.time이라는 것이 있는데 이것은 게임이 시작한 후 흐른 시간(초) 를 세준다. 현재시간으로도 간주할수있겠다. 스피드런 같은 게임에서 이걸로 타이머를 만들어줘도 되겠다. 도움이 되었길 바라며 본론은 Time.time 이였으며 끝. 게임 개발/C# 2022. 8. 14. 유니티 화면 렌더링 순서 포토샵 유니티 언리얼 피그마 등등 2d작업 또는 UI설정을 할때는 항상 무엇이 먼저(앞에) 그려지냐에 대한 문제가 따라온다. 유니티에서는 스프라이트 렌더러 라는 컴포넌트로 이 현상을 해결할수 있다. Sprite Renderer에서 Order in Layer을 바꿔주면된다. 기본값은 0이고 -1 이면 0보다 뒤로오고 1 이면 0보다 앞으로 그려진다. 이런건 많은 블로그에 나온다. 하지만 더욱 체계적으로 정리하고 싶은, 플레이스토어에 올릴 게임 같은 걸 제작하고 계신 분들은 Sorting Layer을 클릭해서 Add Sorting Layer을 클릭해준다. 여기서 Layer 1이 가장 뒤에 그려지고 2,3 등 앞으로 갈수록 더 빨리 그려지는 형태이다. 이런 목록을 만들어놓고 배경은 Background로 바꾸고.. 게임 개발/유니티 2022. 8. 11. 이전 1 ··· 8 9 10 11 12 13 14 다음 💲 추천 글