개발일지공부아이디어
  • 아이디어
  • 우매함의 반지

    26. 4. 7.

  • [언리얼 페스트 2024 서울] 《스텔라블레이드》 발표 요약

    26. 3. 27.

  • 소울라이크와 세키로의 차이점

    26. 3. 24.

  • P의 거짓 보스디자인 유튭

    26. 3. 22.

  • 저항정신

    26. 3. 19.

  • 보드게임 인디개발자와의 커피챗

    26. 3. 16.

  • 입출력장치의 미래

    26. 3. 4.

  • 크로노소드 벤치마킹

    26. 3. 3.

  • 메카닉이 먼저냐 스토리가 먼저냐

    26. 3. 3.

  • 칠흑 속 번개 전투

    26. 3. 2.

  • 방패는 없는 게임

    방패는 플레이를 너무 소극적으로 만듦

    26. 3. 1.

  • 드라마와 게임 차이

    게임에선 내 맘대로 다닐 수도, 처벌받을 수도 있음

    26. 2. 28.

  • 다크소울3 메모

    로스릭성 맵 디자인 GOAT

    26. 2. 26.

  • 횡스크롤 갓오브워

    은근히 플랫폼 장르가 게임하기 편하다는 느낌을 줌

    26. 2. 14.

  • 아이디어: 현실소울

    서울배경

    26. 2. 3.

  • 숏폼이 게임의 적?

    숏폼에서 게임을 착안하는건 어떨까

    26. 1. 19.

  • 현재에 충실한 배경?

    현재(21세기)에 밀착된 배경으로 만들 순 없을까?

    26. 1. 19.

  • 죽음과 관련된 주제

    죽음은 모든 생명체가 두려워하는 것

    26. 1. 19.

  • 꿈 내용

    엣지 오브 투머로우?

    26. 1. 14.

  • 요즘IT같은 게임개발 관련 매거진 웹서비스는 왜 없을까?

    너무 마이너해서?

    26. 1. 8.

  • 지옥탈출 아이디어

    놀이터에 매달려서 술래를 피하는 코옵게임

    25. 11. 27.

  • 꿈 아이디어

    마을 맵에서 군대가 반복적으로 쳐들어오는 게임

    25. 11. 17.

  • 꿈 아이디어

    갑자기 눈뜨고 나니까 납치됐다

    25. 10. 6.

  • 아케인 미장센

    좋은 각본의 요소: 선악관계의 반전

    25. 9. 13.

  • P의 거짓: 서곡

    끝내고 나니 꿈을 꾸고 온 기분

    25. 6. 29.

  • 인생

    엄마아빠 나이대의 이모네, 삼촌네도 다 이혼이니 뭐니 각자의 고충이 있고

    24. 11. 2.

  • 죽음이란 얼마나 허망한 것인가

    죽음 이후에 비로소 알 수 있는 고인의 이야기가 있다

    24. 10. 6.

로딩 중...

[언리얼 페스트 2024 서울] 《스텔라블레이드》 발표 요약

2026. 3. 27.

《스텔라블레이드 개발 노하우》

전투 시스템

  • ShowMaker Interface 툴을 써서 기획 사운드 아트 작업자들의 작업 효율성을 증대시켜줌
  • 장점:
    • 특정 항목에 의존적이지 않음
    • 블루프린트 없이도 연출을 재생할 수 있음(툴 내부에서 자동생성해주나?)
    • 리소스 관리 용이
  • 단점: 툴 러닝커브가 생김

타격 판정

스텔라 블레이드에서 타격 판정은 2가지로 이루어졌다함

  • 소켓을 연결한 Triangle-Hitbox Intersection
  • ShapeComponent 활용한 Hitbox Sweep Trace 첫번째 방식은 플레이어의 얇은 무기에 적용한 것 같고, 두번째 방식은 둔기 등 넓은 범위를 요하는 무기나 덩치 큰 적들의 타격 판정에 사용한 것으로 보임.

프롬소프트웨어의 게임들도 대부분 캡슐 콜리전을 활용한 타격 판정을 하는 것 같아서 익숙했음

Triangle-Hitbox Intersection

  • 프레임 기반 타격 판정이라, 프레임이 낮아지거나 공격 모션이 빠를 경우 트레이싱 중간이 비게 되는 문제가 있었다고 함
  • 시프트업은 이 문제를 애니메이션 시퀀스의 RawAnimationData를 가져다가 소켓의 부모 뼈 Transform 사이 보간처리를 해 속도 관계 없이 더 자세한 트레이싱 처리가 되도록 개선했다 함

경사면에서의 공격

아무런 추가 처리 없이 그대로 두면 경사면에서의 공격이 땅, 혹은 허공을 향하게 됨.

  • 시프트업은 이 문제를 LookAt IK 노드를 만들어서 지정된 뼈들이 특정 위치를 바라보게 처리하여 어색함을 줄였고,
  • 실제 공격 트레이싱도 Transform 높이 차이를 구해 보간처리하여 해결했다고 함

공격 궤적 프레임 문제

마찬가지로 검 궤적 이펙트도 위에서 살펴본 것처럼 속도 기반 트레일링을 하다보니 부드러운 원이 아니라 뚝뚝 끊기는 다각형으로 표현됐다고 함

시프트업은 완성도를 위해 트레일링에도 보간처리를 해 자연스러운 궤적 이펙트를 만들었다 함

적 AI

역시나 Behavior Tree를 사용한 모습(뎁스보소 ㄷㄷ)

타겟 감지는 소리-시야 영역을 두고 그 밖에 탐색 가능 영역을 뒀다고 함

AI의 이동은 다음과 같이 플레이어 중심의 55 단위 크기의 셀 맵을 만들고

  • 이동 가능 여부 판단을
    • NavMesh 검사
    • 오브젝트 정보, 캐릭터 정보 판별로 판단함
  • 이동 경로는 Theta*(AStar의 개선 알고리즘 중 하나인가봄)로 생성
  • AI 캐릭터의 위치 선점 위 로직을 통해 이동시키게 했다 함

캐릭터 충돌

캡슐 컴포넌트를 사용했고, 캐릭터간 충돌은 Overlap으로 검출했다 함.

만약 충돌을 Block으로 설정하면 움짤 좌측 상단처럼 공격못하고 겉도는 아이들이 생기는데

Overlap으로 설정하고 공격 상태의 우선순위를 높게 설정하면 누구 하나 소외되지 않고 골고루 공격하며 우선순위가 낮은 아이들이 뒤로 자연스럽게 밀린다고 함

기타

이 글에 담은 내용 말고도 최적화 관련해서 좋은 인사이트가 많이 남아있으니 영상을 통해 확인해보자

  • 비용 비싼 처리들 구별해서 스레드 분산 처리로 성능 향상
    • 캐릭터의 Rigid body에서 무기를 제외한 부분은 캡슐 컴포넌트로 대체해 비용을 절약했고
  • 루트모션이 멀티스레드로 동작하지 못한다는 점을
    • 애니메이션에서 직접 이동, 회전 값 추출해 루트모션 데이터로 저장해놓고
    • 애니메이션과 루트모션데이터를 동시에 재생해 현재 재생시간에 맞는 이동값을 사용하도록 처리해 GameThread를 효율화함
  • 다수의 몬스터 캐릭터가 등장하면 CharacterMovement가 여러번 호출되는데, Movement Tick이 순차적으로 직렬 처리되기 때문에 CPU를 많이 잡아먹는 문제가 있었음
    • 이를 MovementTick을 분해해서 움직임 처리만 병렬로 먼저 처리하고, Overlap과 Physics연산은 미리 처리된 Move 값을 활용해 기존처럼 순차 처리되도록 개선했다 함
    • 이렇게 하려고 Movement Manager Class도 만들었다 함
  • 근데 이렇게 하니까 플레이어가 트램같은 곳에 Attached되면 카메라가 흔들리는 현상이 발생했다고 함
    • 이유는 Move 로직을 병렬처리할 때 기존의 우선순위를 고려하지 않고 처리했기 때문이라고 함
    • 그래서 이 경우만 예외를 두어 순차처리하도록 한 듯
  • 스텔라블레이드에선 현실감을 위해 공격에 따라 몬스터들이 절단되는 효과를 구현했는데, 전통적인 모델링 교체방식은 딱봐도 별로기 때문에 실시간 절단 방식을 구현하기로 했다 함
    • 장점으로는
      • 추가 모델링 작업 없음
      • 절단 Mesh와 RagDoll 상태 스켈레탈 Mesh의 자연스러운 표현
      • 안정적인 성능이 있고
    • 단점으로는
      • 당연히 비용이 증가함(Vertex Skinning)
      • 절단 면도 표현하고 절단된 Mesh의 형상도 표현해줘야하는데 이게 까다로웠다고 함
    • 처음엔 언리얼 기본 함수인 SliceProceduralMesh를 써서 만들려고 했는데, 이러면 RagDoll을 활용 못해서 석상 잘리듯이 잘렸고,
    • 기본 함수가 스켈레탈 Mesh를 복제한 Procedural Mesh를 또 생성해서 모든 Vertex를 복사해 비용이 증가하는 문제가 있었다고 함
    • 그래서 개선 아이디어를 다음과 같이 냈다고 함
      • 절단 부위 정해주기
      • 스켈레탈 + Procedural 혼용
      • Vertex Skinning

노하우 야미미

왼쪽 화살표소울라이크와 세키로의 차이점우매함의 반지오른쪽 화살표