
오늘은 파티클 시스템에 대한 강좌를 청강하였다.파티클 시스템을 힘 줘서 배운다기 보다는 사용법을 익히는 수준의 강의였긴 하지만, 전체적으로 알아두면 추후 이러저러한 부분에서 잘 사용할 수 있을 것 같았다.그렇다면, 이것을 잊기 전에 빨리 정리하도록 하자.Particle이란?파티클은 '입자'를 의미하는 영어단어로, 게임이나 기타 영상 매체들에서 다종다양한 특수효과를 위해서 사용하는 아주 간단한 개체들을 말하는 용어다.일반적으로 매우 단순한 움직임을 보이기 때문에 한 묶음으로 편성되는 경우가 많으며, 그 대신 다른 요소들과는 차원을 달리하는 개체량을 자랑한다.그렇기 때문에 알음알음 아는 사람들 사이에서 파티클 작업은 '시간과의 싸움'이라는 인식이 강하다.Particle System?파티클 시스템은 유니티에서..
일전에 '움직이는 플랫폼을 따라서 움직이는 탑승자'에 대해서 다뤄본 적이 있었다.결과적으로는 'Raycast를 이용해서 따라서 움직인다'는 결론을 내렸었지만, 실제로 쓸 수 있는 수단은 매우 다양하다. 자, 이제 그렇가면 물체가 어딘가에 '매달려 있어야 한다'라고 한다면 어떻게 해야할까.[물론, 물리 법칙은 정상적으로 작동 되어야 한다는 전제조건도 만족해야 한다.]스크립트를 이용해서 구현하는 방법도 있겠지만, 유니티 상에서 기본적으로 제공하는 '조인트'라는 기능이 존재한다. 그럼 조인트에 대해서 간략하게 알아보자.조인트는 지정한 물체들 간의 연결적인 고정관계를 형성할 때 사용하는 컴포넌트다.당연하지만, 유니티 상의 물리 법칙을 적용하기 때문에 Rigidbody가 필수로 적용되어 있어야 한다. 본문에서는 ..
MeshCollider는 이래저래 자주 쓰게 되는 Collider 형태다.해당 오브젝트가 가지고 있는 메쉬의 형태로 Collider가 생성되는 기능으로 꽤 자주 사용되는데, 남용하는 것은 좋지 않다.어째서인지 살펴보자. 1. 최악의 처리 속도MeshCollider가 Mesh의 형태를 따라서 충돌을 감지하기 때문에 처리 부하가 어마어마하게 높다.다른 콜라이더들도 이런저런 성능 차가 있는 편이지만 MeshCollider는 특히 더하다.그렇기 때문에 사용하는 기능이 Convex인데, 이에 대해서는 아래에서 살펴보자. 2. Convex의 부정확함Convex는 MeshCollider의 처리 부하를 보완하기 위해서 추가 처리를 해서 Collider의 Vertex(점)의 수를 줄이는 기능이다.[이전에는 면이라고 적었..

Unity 3D 작업물을 작업하다 보면 사물의 위치를 맞추는 것이 참 그렇게 까다로웠다.가로세로 폭을 확인하면서 일정한 간격이 되고록 계산하면서 transform을 조작하고, 그런 와중에 배치를 바꾸려면 또 저 노가다(?)를 다시 해야한다.솔직히 말해서 못해먹을 일이다. 배치 변경이 한 두번 하고 말 거면 모르겠는데, 그것도 아니다 보니 더더욱 힘들었다. 그래서, 2D 프로젝트에서 쓰였던 Layout Group 같은 기능이 없는지 알아보았다.없지는 않을 거 같기도 했고, 없으면 내가 스크립트로 만들어서라도 제작해야 할 것만 같았다.[물론, 이런 경우 테스트 도중이 아니면 볼 수가 없다는 점도 있어서 최후의 수단으로 생각 중이었다.] 그렇게 찾아낸 것이, TilePalette였다.2D 환경에서만 쓸 수 있..
어제는 C#에서의 Json 파일 연동 방법을 알아봤다면, 오늘은 엑셀에서 연동하는 방법을 알아보자. 다만, 언급하기에 앞서, 엑셀에서 Json으로 변환하는 경우에는 보통 외부 프로그램으로 변환시키는 경우가 많다.엑셀 내부에서 처리하려면 Excel Macro로 만들어야 해서인지, 아니면 괜찮은 변환 프로그램이 많아서인지는 잘 모르지만, 인터넷에 검색 해 보면 외부 프로그램으로 변환시킨다는 내용이 매우 많다. 다만, 그렇게 구성하면 본 게시글을 작성하는 이유가 없을 터다.연동을 할 때 마다 외부 프로그램을 실행해야 한다는 점도 있다. [사실 이건 큰 문제는 아니긴 하다.]무엇보다 본인이 궁금한 내용이다.그러니 Excel Macro를 이용해서 변환하는 방법을 알아보자.Excel Macro란?엑셀은 셀 간의 함..
금일, Json파일으로 데이터를 변환하는 방식에 대한 강의를 들었다.그 강의를 보고 나서, 개인적인 호기심이 들어서 더욱 공부해 보았다.다만, 이게 엑셀과 관계된 것이다 보니, 글 하나로 정리하지는 못할 거 같다.그러니, 2개의 글으로 정리해 보려고 한다.유니티 인스펙터는 다양한 기물의 데이터를 에디터 상으로 변경할 수 있는 아주 유용한 기능이다.하지만, 기본적으로 '인스턴스 별로 별개 구성'이라는 점과, 일단은 에디터를 건드려야 한다는 점 때문에 실제로 이를 통해서 데이터를 편집하는 것은 다소 껄끄러운 것이 사실이다.이를 대처하기 위한 기술 중 하나가 '엑셀 연동'으로, 엑셀 문서로 편집된 데이터를 불러들이는 기능이다. 다만, 실제로 엑셀파일을 읽어들이기에는 다소 수고가 많이 든다.그렇기 때문에 사용하..
Git을 다루다 보면 자주 맞닥뜨리게 되는 거이 바로 Readme 이다.Readme는 Git hub에서 프로젝트의 첫 페이지에 해당하는 요소로, 다르게 말하면 이것 부터 잘 적어야지 안그러면 Git을 보는 사람들이 해당 프로젝트에 대해서 이해하기가 힘들어진다. 그나저나, Readme의 내용에 대해서는 프로젝트의 성격에 따라서 크게 달라지기 때문에, 이에 대해서 서술하는 것은 일단 넘겨두고, 금일은 Readme의 문법에 대해서 정리 해 볼까 한다.마크다운 문법마크다운은 마크업 언어의 일종으로, 읽기 쉽고 쓰기 쉬운 방식을 지향하는 문서 작성용 언어다.마크 다운 자체가 다양한 곳에서 쓰이다 보니, 알아두면 이래저래 쓰일 가능성이 높다.확장자로는 .md나 .markdown 를 사용한다. 문단 제목# 1단계 제..
뭔가 점점 1주 1회에서 벗어나고 있는 것 같긴 하지만이번주의 개인 프로젝트가 종료되었습니다.다소 아쉬운 점도 있었고, 전체적으로 헤맸던 느낌도 컸었지만, 어떻게 마무리는 되었네요. ※ 해당 git에 유료 Asset이 포함되어 있어서, URL을 지웠습니다. 조만간 유료 Asset을 기본 Asset으로 대체하여 새로운 git을 제작, 업로드 하겠습니다. 플레이 영상 [BGM, 효과음은 게임 안에도 없습니다.] 목차구현된 기능 일람필수 구현 과제선택 구현 과제개인 구현 항목트러블 슈팅딪고 있는 물체와 함께 이동하기날라감! 처리하기.3인칭 시점과 그에 따른 이동 처리회고 구현된 기능 일람필수 기능기본 이동 및 점프더보기Input System을 이용하여 플레이어의 입력을 지원하였습니다.현재 적용 된 기..
Rigidbody는 유니티엔진에서 지원하는 물리 법칙을 시행하는 주체가 되는 컴포넌트다.그렇다 보니 2D에서도 3D에서도 매우 중요한 요소로 손꼽히는 요소다.그렇다면, 이제 Rigidbody에서 가장 중요한, body type에 대해서 알아보자.Rigidbody의 물리법칙 종류는 다음과 같다.DynamicKinematicStatic [Rigidbody 2D 한정]이제, 각 요소에 대해서 정리해 보자. Dynamic [동적]이름에서 알 수 있듯이, 물리법칙이 온전히 적용되는 물체방식이다. 때문에 무게 차이에 의한 밀려남이나 속도, 속력 등이 온전히 적용된다. 반대로, 그렇기 때문에 고정된 이동이나 회전을 그려내기에는 난점이 많다. Dynamic 관련 속성들mass: 오브젝트의 질량. 이에 따라서 해당 물체..
금일은 '어떤 물체과 같이 이동시키는 방법'에 대해서 정리해 볼까 한다. 이런 요소에 대해서 알아보기에 앞서, '왜 이런 방법이 따로 필요한가'에 대해서 설명하자면, 기본적으로 모든 객체는 독립적인 구성이라서 그렇다. 이에 대해서 알기가 힘들 수도 있다. 그래도 일단 중요한 건 '독립적이라서'인 것이다.독립적으로 구성되기 때문에 한 쪽에 힘이 가해져도 닿아있는 물체에는 영향이 하나도 없다. 마찰력을 넣을 수는 있겠지만, 그것으로 조절하는 것에도 한계가 있을 뿐 아니라, 조절을 잘못하면 어색하기 짝이 없는 무언가가 만들어진다.[물론, 실제로는 이동할 때 따라가게 하는 것은 마찰력이 맞다.]그렇기 때문에 '닿아있는 물체의 이동에 따라가는 로직'이 따로 필요하게 되는 것이다. 그렇다면, 이제 세부 로직으로 알..