728x90 반응형 전체 글165 윈도우API)7. 삼각함수 삼각함수 삼각함수는 게임에서 굉장히 중요한 이론이다. 삼각함수에 대해서는 예전에 포스팅한것이 있으니 그것을 참고하면 도움이 될것이라 생각된다. 게임수학) Chapter1. 삼각함수 삼각형은 꽤나 오래전부터 연구되어온것중 하나이다. 게임에서도 이러한 삼각형의 성질을 이용해서 콘텐츠를 제작하는데, 그중에서 삼각함수에 대해 알아보려고 한다. 삼각함수 모든 삼각함수 pjnull.tistory.com 그렇다면 이러한 이론을 바탕으로 현재 진행하고있는 윈도우API에 어떻게 적용할수 있을까? 구현할 목표 Fps와 같은 게임에서는 총이 캐릭터에서 나오는것이 아니라 총구에서 발사된다. 현재 구현해놓은 발사체는 y방향으로만 이동하고 있지만 삼각함수를 이용한다면 원하는 방향으로 이동이 가능하게 된다. 삼각함수를 알면 이런식.. 게임엔진/윈도우API 2022. 12. 18. 윈도우API)5. 오브젝트 설계 오브젝트설계 오브젝트 상속구조의 필요성 현재까지 진행한 내용은 Scene안에서 물체를 그리고 InputManager를 물체를 움직이게 한것이였다. 하지만 게임에서는 한 씬안에 여러가지 오브젝트들이 존재하며 오브젝트가 생성될때마다 일일이 로직을 추가하는 것은 현실적으로 불가능하다. 그렇기에 오브젝트를 관리하는 오브젝트 클래스가 필요로 하게 된다. 언리얼에서는 오브젝트->엑터->폰->캐릭터와 같은 상속구조로 오브젝트를 관리하고있으며, 이와 유사한 형태의 상속구조로 오브젝트를 관리하고자 한다. 오브젝트 생성 먼저 물체들의 최상위 클래스인 오브젝트 클래스가 필요하다. 그 안에는 오브젝트 타입과 위치, 기타 정보들 또한 넣어주는것이 좋다. //Object.h enum class ObjectType { None, .. 게임엔진/윈도우API 2022. 12. 17. 윈도우API)3. Scene과 SceneManager Scene Scene의 필요성 게임은 여러가지 오브젝트가 생성되고 렌더링 된다. 그렇다면 이것들은 어떻게 구분 짓고 관리를 해야될까?일반적으로 게임은 실행과 동시에 플레이가 시작되기 보다는 시작화면이나 로비같은 곳에서 시작하여 플레이가 시작되는 경우가 많다. 이런것으로 미루어 보아 게임안에 모든 오브젝트와 기능들을 넣어두고 관리하는것은 옳지 않다고 볼수 있을것이다. 언리얼엔진의 경우 Level이라는 Scene에서 여러가지 오브젝트와 컴포넌트를 관리한다. Scene생성 Scene의 역활은 화면을 렌더링할때 화면에 있는 오브젝트나 로직을 관리하는 역할을 수행한다. 이번 프로젝트에서는 Scene과 Scene자체를 관리하는 SceneManager을 이용하여 Scene에 대해 알아보려고 한다. SceneManag.. 게임엔진/윈도우API 2022. 12. 16. 윈도우API)2. 프레임워크 제작 프레임워크 저번 포스팅에서 GetMessage방식의 어플리케이션은 게임에 적합하지 않다는 것을 알아보았다. 이번포스팅에서는 기본 프레임워크를 제작하는 것에 대해 알아보도록하자. 메인루프 변경 while (true) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))//메시지 체크 { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } else //게임 로직 실행 { } } Win32 및 C++를 사용하는 창 메시지(시작) - Win32 apps Win32 및 C++를 사용하는 창 메시지(시작) learn.microsoft.com 미리컴파일된 헤더 설정하기 미리컴파일된 헤더(Precompiled Header) 는 자주변경되지 않는.. 게임엔진/윈도우API 2022. 12. 15. 윈도우API)1. 기본템플릿 분석 윈도우 API를 공부하는 이유 윈도우API는 운영체제에 일련의 함수들을 호출하여 필요한 기능을 수행하는 것을 의미한다. 이러한 윈도우API를 이용하여 간단한 게임을 만드는것으로써 게임엔진의 전체적인 구조를 만들고 게임엔진에 대한 이해도를 높이는것이 본 포스팅의 이유이다. 윈도우 애플리케이션 기본템플릿 기본템플릿은 꽤나 긴 코드로 이루어져 있지만 핵심적인 내용은 wWinmain 안의 3가지로 축약할수 있다. 1) 윈도우 창 정보 등록 MyRegisterClass(hInstance); 윈도우 창 정보 등록에는 위와 같은 함수를 사용한다. 위의 함수는 WindowAPI에서 제공하는 함수가 아닌 프로그램상에서 만든 함수이다. 그중에서 주요한 부분은 다음과같다. ATOM MyRegisterClass(HINSTAN.. 게임엔진/윈도우API 2022. 12. 10. 취미생활) 예전 작품들 다 삭제했다고 생각했던 옛날 결과물들이 남아있었다. 비록 세상에 나오지 못했지만 마지막으로 여기에라도 남겨보고자 한다. 취미생활/Maya 2022. 10. 15. 취미생활)7. 얼굴 다듬기 얼굴 다듬기 지난 포스팅에서 입술까지 완성하였다. 이번 포스팅에서는 전체적으로 사진과 유사하게 다듬는 작업을 하였다. 다듬기 작업은 시간도 많이 걸릴 뿐더러 시행착오와 반복이 필요하므로 결과만 올리도록 한다. 앞면 전체적으로 Edge가 모자라 엣지를 많이 추가했다. Edge가 추가되니 사진과 비슷해지기 시작하였다. 사진과 비교해보면 유사도가 더욱 명확해진다. 다만 눈위치(실제 사람은 완전한 대칭을 이루지 않기 때문에)나 얼굴 윤곽선이 다르긴 하지만 이건 원본을 미화했다라고 생각해 두자. 옆면 앞면과 마찬가지로 꽤나 3D모델로써의 모습을 갖추기 시작했다. 사진과 비교하면 더더욱 잘 유사도가 잘 나타난다. 반 측면 취미생활/Maya 2022. 10. 7. 취미생활)6. 입술 얼굴에서 눈과 코만큼이나 입또한 매우 중요한 부위이다. 이번 포스팅에서는 입술을 만들고자 한다. 입술 제작 윗 입술 윗입술의 경우 그림과 같이 한번의 돌출후 안으로 말려 들어가는 구조로 되어 있다. 사진과 동일한 구조로 Edge를 만들도록 하자. 먼저 윗 입술쪽 Edge를 Extruede한다. Extruede한 Edge는 Rotation을 통해 위치를 잡아준다. 위치를 잡았다면 다시 Extruede를 한다. Extruede한 Edge를 Rotation과 Translate로 위치를 잡아준다. 마찬가지로 한번더 Extruede하고 위치를 잡아 윗입술을 마무리한다. 아랫 입술 아랫입술도 이와 비슷한 방법으로 제작하면 된다. 먼저 아랫입술쪽 Edge를 Extruede한다. Extruede한 Egde를 Rotat.. 취미생활/Maya 2022. 10. 7. 취미생활)5. 눈꺼플 지난 포스팅에서는 안구를 제작하였다. 안구가 있다면 당연히 그것을 덮을 눈꺼플이 존재해야된다. 눈꺼플 제작 눈 꺼플이 될 Edge를 선택하고 Extrude해야된다. Extrude는 Shift버튼이나 오른쪽 Component창의 Extrude를 선택하면된다. 윗꺼플을 Extrude했다면 아랫쪽도 Extrude한다. Extrude한 윗꺼플 아랫꺼플을 얼굴쪽과 잘 연결하면 눈꺼플이 완성된다. 완성된 눈꺼플을 얼굴에 붙이고 잘 다듬으면 다음과 같이 된다. 여기서 주의해야될 점은 내안각과 외안각에 충분한 Edge가 존재하지 않으면 눈이 제대로 떠지지 않는다는 점이다. 내/외안각의 Edge를 넣어주고 필요하다면 추가 하도록 한다. 취미생활/Maya 2022. 10. 6. 취미생활)4. 안구 제작 모델에 있어서 가장 중요하다고 생각되는 세가지 부위는 얼굴전체의 윤곽, 코, 눈이라고 생각한다. 특히 애니메이션의 경우 역동적인 감정표현을 위해서 실제 사람보다 눈을 더 크게 제작하는것이 일반적이다. 인간의 눈은 이런식으로 한겹의 막과 시신경으로 이루어져있다. 하지만 우리눈에 보이는 것은 각막과 홍채/모양체이다. 눈을 제작하는데는 많은 방법이 있다. 이번 포스팅에서는 2겹의 눈을 만들고자 한다. 눈 제작 먼저 눈이 될 스피어2개를 생성한다. 하나는 ctrl+H로 Hide 시키고 하나는 홍채와 모양체를 표현하기 위해 가운데를 b를 눌러서 조절해주고 수정체자리는 제거해준다. 완전히 같은 스케일을 가지면 랜더링에 오류가 생길수 있으므로 안쪽 눈의 스케일을 0.99로 설정한다. 그 후 바깥쪽 눈은 각막이므로 투.. 취미생활/Maya 2022. 10. 6. 취미생활)3. 대략적인 코 생성 저번 얼굴에서는 각진 코로 마무리 했었다. 2D캐릭터라면 이대로 뾰족코로 마무리하면 되겠지만 3D캐릭터의 경우 코끝과 코볼이 어느정도 구현되어야 한다. 이런식으로 코끝과 코볼을 구현하였다. 취미생활/Maya 2022. 10. 5. 취미생활)2. 모델링 시작 모델 선정 모델링에 있어서 모델선정은 매우 중요하다. 특히 실사풍 모델링을 만든다면 저작권/초상권의 우려가 심하다. 그런 이유로 실사풍 모델링 연습시 자신의 얼굴을 모델로 하는 경우 또한 적지 않다. 본 포스팅에서는 본인의 사진을 이용하여 모델링하는 글을 작성하고자 한다. 촬영 모델을 선정했다면 모델링을 할 자료가 필요하다. 위에서 언급했듯이 본인을 모델링할 경우 본인의 사진이 필요한건 당연하며 나중에 텍스쳐로도 쓸수 있기 때문에 실사풍 모델링을 한다면 사진을 찍는것을 권장한다. 모델링하기 위해서는 최소한 앞과 옆사진은 반드시 필요하다. 모델링 시작 먼저 모델링을 시작하기 위해서는 마야에서 이미지 플랜을 켜두는것부터 시작한다. 이미지 플랜은 상단에 책갈피처럼 생긴것을 누르면 생성된다. 이러한 식으로 모델.. 취미생활/Maya 2022. 10. 4. 이전 1 ··· 5 6 7 8 9 10 11 ··· 14 다음 728x90 반응형