본문 바로가기

분류 전체보기

(31)
[Note] 멈추지않고 튕기는 공 만들기 / Unstopping Bouncy Ball 오늘의 주인공 되시겠다. 프로젝트를 진행하는데 공의 속성을 조절하지않으니 바운스 되다가 마찰 및 공기저항 연산에 의해서 공의 속도가 감소하다가 멈추게되었다. 이는 콘텐츠에서 의도하는 핑퐁 게임 진행을 저해하기때문에 속성치를 조절하는 R&D를 진행하였다. Rigidbody Mass는 질량을 나타낸다. 가벼울수록 적은힘으로 더멀리날아간다는 뜻이 된다. Drag와 Angular Drag가 핵심. 이 둘은 공기 저항을 나타낸다. 이 두개를 0으로 설정해주어야한다. 아래 설정들은 필요에 의해서만 조작해주면된다. 보간과 충돌감지에대한부분인데, 충돌감지 부분은 연산과도 관련있기때문에 퍼포먼스를 고려해야한다. https://docs.unity3d.com/kr/2018.4/Manual/class-Rigidbody.htm..
2D Animation 패키지 사용하기 유니티 패키지를 통해 간단한 2D 애니메이션을 구현할 수 있다. Spine으로는 Timeline기능을 활용하기가 쉽지않기 때문에 차선을 찾다가 알게된 방법이다. (더 자세히 기술하자면, Spine2D 애니메이션을 Timeline에서 보이게 하기위해서는 현재 정식으로 출시되지않은 유니티 패키지를 사용해야하고 *이것도 2년전이 마지막 업데이트다, 해당 패키지는 메카님이아닌 Animation만 지원하며, 블렌딩시 오류가 발생할 수 있고 2019 버전은 지원하지 않는다.) 2D Animation 패키지를 사용하기 위해서는 Package Manager에서 2D Animation / 2D PSD Importer / 2D IK 이 세가지 패키지를 받는것을 전제하고있다. (2019.3 베타버전과 2019.2 버전에서는..
[Unity] 리소스 이미지는 4의 배수로! 유니티가 지원하는 압축 포맷 DXT5를 적용하기 위해서는 4의 배수의 해상도를 가진 그래픽 리소스를 사용해야한다. (쉽게는, 이미지 가로세로 사이즈는 무조건 2의 제곱으로 기억하자) 압축방식에 대한 예시를 들자면 256*256 사이즈의 리소스에 압축방식을 적용할때, 비압축 : 256KB DXT1 : 32KB (8배 압축) DXT3orDXT5 : 64KB (4배 압축) **위와같은 포맷들은 Nvidia Tegra플랫폼에서 실행된다. 아래는 직접 테스트한 결과이다. png24로 뽑아낸 이미지들을 기준으로 1024*1024로 2로 나누어떨어지는 이미지 크기는 1.0MB 1023*1024로 그렇지 않은 이미지 크기는 4.0MB로 4배의 차이를 보여줬다. 압축방식을 이용하기위해서는 해당 조건들을 지켜야함을 확인했..
[2019] Note - KT ICT Humancare KT ICT Humancare 프로젝트중 바운스 크러쉬 콘텐츠의 배경을 제작하기위해 여러방법을 사용했다. 첫번째로는 png시퀀스를 스파인으로 애니메이션 구분 및 압축한 후 유니티로보내기였는데 이 방법이 생각보다 효율적이지 않으며 압축을 했음에도 용량이 어마어마했다. 한마디로 가성비가 떨어졌다. 두번째로는 Stencil Shader와 Wave Shader를 이용해서 Mesh데이터의 Vertex를 움직이는 애니메이션 + 마스킹효과를 이용해봤다. 구현은 가능했지만 리소스디자이너가 원하는 방향의 배경 디자인을 구현하려면 R&D가 진행되야했고 해결될지도 미지수였다. 그러다가 마지막으로 나온방법이 Alembic을 이용한 방법이다. 내가 이해한대로만 설명하자면 Alembic은 3D 프로그램들이 상호호환을 목적으로 사..
[Note] .png 시퀀스를 Spine에 불러오기 에프터이펙트로 제작한 png시퀀스 애니메이션을 스파인으로 불러 스파인 애니메이션과 결합시켜야하는 경우나 나중에 수정과 리소스관리에 용이하도록 스파인으로 한번 더 가공한뒤 내보내야 하는 경우가있다. 이런 경우 스크립트를 사용하여 이미지파일을 json으로 압축후 스파인에 불러들여야하는데, 이 방법에 대해 적어놓으려 한다. 작업에 앞서 두가지 파일을 다운로드 해야한다. 첫번째, 깃허브에서 spine squence 파이썬 파일이있는 파일을 하나 다운로드한다. https://github.com/MattOstgard/spine_sequence MattOstgard/spine_sequence Add an image sequence to an Esoteric Spine skeleton. - MattOstgard/spi..
[Note] 이미지 경로 정규식을 이용해 한번에 바꾸기 (.*)를 이용해 모든 파일을 찾는다. Type에서 파일의 유형을 sorting할 수 있다. 스킨을 적용할때 같은이름에 다른 경로만 적용하고자한다면 위처럼 (.*)앞에 기존 경로를 기재하고 Replace에 새로운 경로를 작성한다. 출처 : https://www.youtube.com/watch?v=aLCoDGjSYu4
[2019] 성남시청홍보관 - 도시 개발노트 2D 이미지 리소스를 받아 작업할때, 전체 해상도가 큰 도시 전경의 일러스트 그림위에 Spine으로 작업하여 유니티로 보내는게 본래 의도였다. 하지만 Spine에서는 해상도가 큰 이미지는 오류가 났고 이로인해 애니메이션 작업만 따로해서 보내는 식으로 작업했는데 코드로 모든 이벤트 변수를 처리하려다보니 포괄적인 범위로 커버하는 코드를 제작해도 작업이 오래걸렸다. 이를 해결하기위해 조금 시간이 걸리지만 방법을 생각해보았다. 위처럼 해당 부분만 아트보드를 잘라서 Export하는 방법있고, 새로운 파일을 1920*1080 정도의 사이즈로 만든 후 비율을 맞춰 줄여주는 방식만 취해주어도 Spine상에서 작업이 가능했다. 애니메이션 Flow를 고려해야한다. 유니티에 Spine Skelton을 보내기전에 오브젝트가 ..
[Note] 애니메이션 전 부위별 리소스 쪼개기 성남시청 프로젝트중 리소스 자체의 부위를 나눠야하는 상황이 발생했다. 처음에는 일러스트파일에서 레이어를 쪼개려했는데, 다른방법이 있어 기록해두려한다. 일단 만들고자하는 애니메이션의 리소스의 매쉬를 부드럽게 (버텍스를 많이) 하여 쪼개줘야한다. 매쉬가 즉 피부 역할을 하기때문에 뼈는 매쉬의 구조에 따라 다른 형태를 만든다. 정리하자면 매쉬가 뼈의 움직임을 결정한다. 이런식으로 팔꿈치, 팔과 머리부분 등 애니메이션이 개별적으로 움직여야 하는부분들을 쪼개줘야한다. 뼈를심고, 모든뼈에 가중치를 준다. 가중치는 애니메이션 구분에 맞게 영역 버텍스를 누르고 해당 뼈의 가중치량을 늘이는 식으로 작업해준다.