글

내일배움캠프 130일차 - 최종프로젝트 20일차: 상태효과(Buff, Debuff)을 만드는 법

이미지
상태효과(Buff, Debuff)을 만드는 법 게임을 하다보면 내 캐릭터에게 상태효과가 쌓이는 것 을 볼 수 있을 것이다. 쌓인 리스트에는 저마다의 다른효과를 가진 상태효과들이 있을 것이고, 이것들이 중첩되면서 최종적으로 캐릭터의 스탯이나 특수효과로 반영 될 것이다. 이 모든 상태효과들을 종합해 적용하기 이전에, 어떻게 각각의 버프들의 효과나 지속시간 등을 관리할 수 있을까? 액터 컴포넌트를 만들어 관리 현재 내가 작업중인 프로젝트가 RTS장르이므로, 유닛이나 건물 등이 상태효과를 받을 수 있게 만들어보자. 우선, 버프를 받을 수 있는 액터 를 구별하기 위해 전용 액터 컴포넌트 를 만들어보았다. 액터 컴포넌트에는 당연히 버프가 쌓일 것이므로 이를 배열 TArray로 관리 해준다. [추가작성중... 밀린 작업이 많음.]

내일배움캠프 129일차 - 최종프로젝트 19일차: 비스트세력 지휘관 애니메이션 완성

비스트세력 지휘관 애니메이션 완성 비스트 지휘관 에셋의 리깅 스키닝을 마치고 애니메이션 제작을 마쳤다. 추가된 애니메이션은 각각 Idle, Walk, Skill, Death 이며, 현재 Idle, Walk만 실제 인게임에 적용되고 있다. Skill Death는 이후 관련 기능을 구현한 후에 애니메이션으로 추가될 예정이다. 실제 적용 화면

내일배움캠프 128일차 - 최종프로젝트 18일차: 비스트세력 지휘관 에셋 리깅&스키닝 (마무리단계)

이미지
비스트세력 지휘관 에셋 리깅작업 몸통의 스키닝은 완료. 갑옷 쪽은 조금 더 손을 봐야함. 내일 이어서 스키닝이 끝나는대로 애니메이션을 추가해 연동 시킬 예정. 애니메이션은 Fab이나 믹사모에서 참고하면 좋을 것 같음.

내일배움캠프 127일차 - 최종프로젝트 17일차: 비스트세력 지휘관 에셋 리깅&스키닝

이미지
비스트세력 지휘관 에셋 리깅작업 팀원으로부터 전달받은 비스트세력의 지휘관 에셋의 리깅과 스키닝 작업 진행중. 목표는 내일까지 애니메이션과 함께 제출. 몸통과 몸통에 밀접한 파츠들을 먼저 웨이트를 입히고, 이후 갑옷 파츠에 웨이트를 복제해 적용할 예정. 꼬리의 경우 이후 자연스럽게 움직이도록 피직스 에셋과 연동해서 물리에 맞춰 흔들거리게 만들 예정. 망토의 경우 피직스 에셋으로 움직이게 하기에는 본을 입히고 스키닝하는 과정이 까다로울 수 있으므로 언리얼 엔진의 클로딩 툴을 활용해볼 예정임.

내일배움캠프 126일차 - 최종프로젝트 16일차

오늘 한 일 팀원들의 초상화 포트레이트 작업을 돕기 위해 내가 알고있는 렌더타겟 지식을 TIL에 작성함으로서 팀원들에게 초상화 제작방법을 알려줌. (분량이 길었던 만큼 2~3일에 걸쳐서 작성함) 내일 어느정도 이해가 되었는지 피드백을 들어볼 예정. 이번 주 내로 할 일 비스트 세력 측 지휘관 캐릭터 에셋과 관련 애니메이션 에셋 제작. [필요한 애니메이션: Idle, Walk, Skill, Death] 일부 TIL 보강 주말에 할 일 건물 건설작업을 위해 이동 중 동일명령이 주어질 경우 건설작업이 되지 않는 에러 해결 종족별로 지휘관 외형 다르게, 스킬 다르게

내일배움캠프 125일차 - 최종프로젝트 15일차: SkyBox를 제작하는 방법

이미지
SkyBox를 제작해보자 이전 TIL 에서 씬 캡쳐를 활용해 포트레이트를 제작할 때 SkyBox 를 사용한 바가 있다. 하지만 언리얼 엔진에서 제공해주는 SkyBox 는 많은 종류를 제공해주지 않고 지향하는 환경그래픽이 다를 수 있다. 대신 직접 프로젝트 환경에 맞는 SkyBox를 만들어보기에 앞서, SkyBox는 어떤 존재인지 다시 한번 짚어보도록 하자. SkyBox란? 밖에서 본 SkyBox와 안에서 본 SkyBox 언리얼 엔진에서는 SkyAtmosphere와 VolumetricCloud를 통해 하늘을 표현하고 있지만, 과거 에는 하늘을 담은 커다란 구 를 직접 배치해 하늘을 표현 하였으며, 이는 현재까지도 활용되고 있는 방법이다. 구 모양인데 왜 SkyBox? SkyBox의 6면 텍스처 (큐브맵이라고도 불린다) 월드에 배치된 것은 분명 구 모양인데 왜 SkyBox? 라고 하면, 과거 게임에서 하늘을 표현할 때 6면의 전개도 형태를 감싸 만들어진 큐브(Cube)를 사용했기 때문 인데, 현대에 들어서는 구(Sphere)모양이나 돔(Dome), 파노라마 형태로 발전했음에도 맵을 둘러싼 공간이라는 의미의 SkyBox라는 명칭이 관습적으로 사용 되어온 것이다. 물론 박스와 구분하기 위해 SkySphere, SkyDome으로 부르기도 한다. DirectX 환경에서 사용된 SkyBox. 과거 내가 제작한 DirectX 포트폴리오에서 큐브맵을 활용해 하늘을 표현하였다. 언리얼에서 SkyBox 제작법 우선 촬영하고자 하는 배경의 환경을 조성 한 후에 SceneCaptureCube를 배치 하면 카메라 형태의 액터가 배치 되는데, 순수하게 하늘만 찍고자 한다면 메시를 표시 플래그에서 제외 시킨다. (만약  도시나 마천루가 보이는 하늘을 표현하고 싶다면 플래그를 포함 시켜도 무방하다.) 그리고 캡쳐한 하늘을 담아줄 큐브 렌더 타겟 을 추가하여 SceneCaptureCube 의 텍스처 타깃 에 담아준다. SceneCaptrueCube 를 통해 큐브 렌더 타겟 에...

내일배움캠프 124일차 - 최종프로젝트 13~14일차: 초상화(Portrait)를 구현하는 방법

이미지
초상화(Portrait)를 구현하는 방법 스타크래프트의 Marine의 초상화 RTS장르를 해봤다면 유닛을 선택하면 인터페이스 내에 해당 유닛의 얼굴이 출력 되는 모습을 보았을 것이다. 이것을 초상화(포트레이트) 라고 하는데, 언리얼 엔진에서 포트레이트를 구현하기 위해서는 몇 가지 기술이 필요하다. 보다 자연스러운 포트레이트 애니메이션을 만들기 위한 과정을 소개하도록 한다. ① SceneCapture2D 캡쳐를 위한 세트장 구현 현재 위치에서 동떨어진 장소를 실시간으로 표현할 수 있는 방법 으로 포트레이트 구현에 안성맞춤이다. 이를 구현하기 위해 렌더타겟에 대해 어느정도 알아둬야 하지만 언리얼엔진에서는 렌더타겟을 구현하기 위한 과정을 간소화했으므로 방법은 한번 익혀두면 어렵지 않다. 1-1) 액터 블루프린트 구성 블루프린트 액터의 뷰포트 내부 포트레이트 영상으로 사용될 블루프린트 액터 를 생성하고 그곳에 캐릭터와 배경역할을 하는 Skybox(※) 와 바닥을 생성한다. 그리고 화면을 비쳐줄 카메라로는 SceneCaptureComponent2D 를 사용한다. 이 카메라가 화면속 모습을 찍어 렌더타겟에 저장 해줄 것이다. ※ Skybox : 월드를 감싸는 하늘을 담은 액터.  [관련 링크: SkyBox를 제작하는 방법 ] 1-2) 액터 내 컴포넌트 설정 컴포넌트들 배치한 후에는 오류를 최소화하기 위해 다음과 같은 설정을 따르도록 한다. 1 - 씬 캡쳐에서만 표시 초상화 액터는 월드 상에 표시되질 원치 않으므로 메시, Skybox(※), 장식물 등 실체가 있는 컴포넌트 들에게 bVisibleInSceneCaptureOnly = true 옵션을 붙여준다. 블루프린트에서 설정해도 된다. 2 - 콜리전 비활성화 마찬가지로 초상화 액터는 월드에 영향을 미치지 않아야 하므로 콜리전을 꺼둔다. 특히, SpringArm 을 채용하고 있다면  bDoCollisionTest = false 옵션을 붙인다. 마찬가지로 블루프린트에서도 설정할 수 있다....