2020220

개발팀 블로그: Y5S1에서의 폭발 및 파편

Rainbow Six® Siege에서 폭발이 터지면 어떤 일이 일어날까요? 폭발 피해량을 계산할 때는 어떤 요인이 관여할까요? 이 모든 게 다 어떻게 이뤄질까요?

폭발은 Rainbow Six® Siege 게임에서 주요한 역할을 맡고 있습니다. 단순히 터지는 게 다가 아닙니다. 방어를 뚫기도 하고, 경로를 만들며, 정보와 효용성을 제공하기도 하고, 때로는 승리에 일조하기도 합니다. 이번 개발팀 블로그에서는 폭발의 방식과 바람직한 진화 방향에 대해 다뤄 보겠습니다.

폭발의 해부학

Rainbow Six® Siege에서 파괴란 독특한 요인으로, 폭탄이 터질 때마다 매번 그 결과가 다릅니다.

일단 폭발하면 그 피해량과 파괴가 몇 밀리초 안에 계산됩니다. 플레이어에게는 폭발의 시각/청각적 신호가 전달되며, 폭발 반경 내에 있는 경우 피해를 받게 됩니다. 이 모든 걸 구현하려면 폭발 엔진이 몇 단계를 거쳐야 합니다.

폭발 반경 및 폭발 모양

각 폭발의 유형은 여러 개의 데이터 포인트에 의해 정의되며, 이는 폭발의 모양과 효과의 반경을 결정짓습니다. 폭발 모양은 폭발물의 유형에 따라 달라집니다. 가령, 수류탄은 방사형이며 대인 지뢰는 직사각형 모양입니다.

폭발이 일어날 때 게임은 폭발 모양을 계산 후 물리 엔진으로 쿼리를 전송합니다. 그러면 이 쿼리는 폭발의 시작점과 모양을 사용하여 폭발 반경 안에 있는 엔터티(대원 및 개체) 목록과 함께 반환됩니다. 이는 폭발에 영향을 받을 수 있는 엔터티의 목록입니다.

[R6S] 폭발: R6 AOE 애니메이션 효과

*해당 구체 안에 있는 바리케이드와 대원은 폭발의 영향을 받습니다.*

피해를 입을 대원 또는 개체를 결정하는 레이캐스트

물리 엔진은 폭발 광역 범위에서 영향을 받을 가능성이 있는 엔터티의 목록을 가지고 레이캐스트를 실행합니다. 레이캐스트는 폭발 반경 내에 있는 엔터티와 그들의 쿼리 포인트를 향해 중심점으로부터 밖으로 퍼져나가는 탐사 선입니다.

각각의 엔터티는 피해 여부를 결정하는 데 사용되는 다수의 개별 쿼리 포인트를 가지고 있습니다. 쿼리 포인트를 이런 식으로 정하면, 스켈레톤의 뼈를 목표로 하거나 대원에게 하나의 임의 포인트를 지정할 필요 없이, 대원이 폭발 피해를 받을지 여부를 더 잘 결정하면서도 성능을 최적화하고 지연을 최소화시켜 줍니다.

레이캐스트는 특정 파라미터에 기반해 이러한 쿼리 포인트들을 대상으로 데이터 포인트를 생성한 후 나중에 피해량을 계산합니다. 예를 들어, 레이캐스트는 대원의 물리 캡슐에서 폭발 시작점으로부터 가장 가까운 포인트뿐만 아니라, 바운딩 볼륨(대원의 몸을 둘러싼 모양)의 네 포인트도 목표로 합니다. 반면에 벽의 쿼리 포인트를 목표로 할 때는 다른 규칙을 사용합니다.

[R6S] 폭발: R6 레이캐스트 애니메이션 효과

*레이캐스트 결과는 엔터티에게 폭발의 영향이 있는지 여부를 결정합니다.*

피해량이 계산되기 전에 플레이상의 한 가지 변수를 더 고려하게 됩니다. 환경 개체는 폭발 모양의 요소를 바꾸고 피해로부터 구해주는 역할도 합니다.

당신을 구한 것은 메타데이터

레이캐스트가 폭발의 영향을 받을 엔터티를 모두 확인한 후에는, 데이터를 반환하여 폭발의 결과를 결정합니다. Siege에는 폭발 피해를 막는 개체가 존재합니다. 모든 개체에는 해당 개체를 정의하고 다른 게임 요소와 상호작용하는 방법을 정의하는 메타데이터가 포함됩니다. 특정 개체에는 폭발 피해를 막는 메타데이터가 포함되는데, 금속 바리케이드, 성벽, 이동식 방패 등이 그 예입니다.

레이캐스트 경로가 폭발 반경 안에 있는 대원의 쿼리 포인트에 닿기 전에, 폭발 피해를 막는 메타데이터를 가진 물체와 충돌한다면 그 대원은 아무런 피해를 입지 않습니다. 레이캐스트가 중간에 아무것도 건드리지 않거나 피해를 막는 메타데이터가 없는 개체를 건드린 경우 그 대원은 피해를 입습니다. 이는 Thatcher의 EMP와 같은 광역 폭발 효과를 가진 도구에도 적용됩니다.

[R6S] 폭발: R6 결과 애니메이션 효과

*Realblast 범위 내에서 폭발 피해를 막는 메타데이터를 가진 개체와 그렇지 못한 개체를 비교합니다.*

마지막으로 이 모든 데이터 포인트를 고려해 폭발 피해가 계산되고 실행됩니다.

입은 피해량 결정

피해량 계산 시 폭발의 중심점으로부터 멀수록 피해량이 감소합니다. 폭발마다 각각 다른 피해량 곡선을 가지지만 폭발 시작점에서의 피해량이 가장 크다는 점은 동일합니다. 레이캐스트의 결과를 이용한 최종 피해량은 폭발로부터의 거리를 감안해 피해량 곡선을 보간함으로써 결정됩니다.

파괴 대 피해

Siege는 파괴 엔진 Realblast로 폭발을 구현합니다. Realblast는 절차적으로 생성된 파괴 시스템으로, Siege에서 여러분이 익히 알며 좋아하는 독특하며 역동적인 게임플레이 요소를 유지하는 데 핵심적인 역할을 합니다. Realblast에 대한 Julien L’Heureux의 GDC 패널을 여기에서 관전할 수 있습니다.

폭발은 공통적으로 파괴와 피해라는 두 가지 효과를 갖고 있습니다. 피해는 플레이어에게 주는 피해를 의미하고 파괴는 환경을 부수는 파괴를 의미합니다. 피해와 파괴의 범위와 모양은 폭발마다 다양하게 달라집니다.

[R6S] 폭발: R6 피해 대 파괴 애니메이션 효과

*파괴 범위(Realblast) 대 피해 범위를 비교합니다.*

현재 Siege에서는 초기 레이캐스트가 탐사를 마치고 쿼리가 반환된 후에 피해 범위와 파괴 효과를 계산합니다. 레이캐스트가 어떤 물체에 의해 막히면 피해 범위는 Realblast 반경으로 한정됩니다.

그러나 현재 폭발 효과와 범위를 구현하는 솔루션은 폭발 결과가 비현실적일 때도 있기 때문에 아직 완벽하지 않습니다. 예를 들어 현재 폭발 시스템에서는 C4가 개방된 장소에서 폭발하는 경우, 피해 반경을 차단하는 벽이 있는 빌딩 안에서 터졌을 때보다 훨씬 더 치명적입니다.

Y5S1의 파편 변경 사항

Y5S1에서는 폭발 시스템의 미묘하지만 중요한 부분을 개선할 것이며, 이로써 폭발 피해가 더 현실적이고 명백하게 묘사될 것입니다. 또한 Rainbow Six® Siege의 폭발에 파편 개념을 도입합니다. 이는 파괴 가능한 개체가 더이상 폭발의 피해 범위를 제한하지 않는다는 것을 의미하며, 위에서 언급한 파괴 대 피해 범위 문제를 해결합니다.

레이캐스트가 범위 내에서 부딪히는 파괴 가능한 개체의 수가 많아지면 플레이어에 가해지는 피해가 줄어들기 때문에, 파편은 폭발 피해를 더욱 현실적으로 만들어 줍니다. 또한, 파편 구멍을 보면 폭발 피해가 발생한 방향을 시각적으로 더 확실히 파악할 수 있으므로 폭발 상황이 더욱 명백해집니다.

[R6S] 폭발: 파편 애니메이션 효과

*파편 변경 사항입니다.*

간단 요약

Rainbow Six® Siege의 예술적인 파괴 묘사는 현실적 결과와 반응을 자아내는 귀중한 경험이 될 것입니다. 개선 사항으로 파편 피해를 추가함으로써 더욱 사실적인 폭발 효과와 피해를 기대할 수 있을 뿐만 아니라, 폭발 상황을 더 시각적이고 명백하게 파악할 수 있습니다.

폭발과 파편에 대한 자세한 정보를 보려면 에서 Logic Bomb 팟캐스트의 최초 독점 공개 및 토론을 확인하십시오.