Lobsters

Explaining the Magelight XP glitch in Skyrim

스카이림 Magelight 경험치 버그의 작동 원리

Solitude 근처 산에 Magelight를 던지면 Alteration 경험치가 반복해서 오르는 이유를 게임 데이터와 충돌 처리 코드로 분석합니다. 주문이 특정 충돌 레이어의 보이지 않는 벽과 여러 번 충돌해 시전 한 번에 경험치를 거듭 지급하며, 조준 위치를 최적화하면 Alteration 15레벨에서 100레벨까지 17번의 시전으로 올립니다.

AI 요약

Skyrim에서 Solitude 근처 산을 향해 Magelight를 시전하면 Alteration 경험치가 비정상적으로 많이 오릅니다. 흔히 주문이 멀리 날아갈수록 경험치를 더 받는다고 설명하지만, 다른 먼 곳에서는 같은 현상이 나타나지 않습니다. 이 글은 Skyrim 데이터 파일과 실행 중 메모리, 충돌 처리 코드를 조사해 원인을 밝히고, 경험치 획득량을 늘리는 조준 방법까지 정리합니다.

Magelight의 기본 경험치

Magelight는 Apprentice 단계 주문입니다. TES5Edit에서 확인한 값은 Magnitude 5, Duration 60, 기본 효과 LightFFAimed(0001EA6D)입니다. 효과의 Base Cost는 2, Skill Usage Multiplier는 0.15입니다. Area 값이 없는 주문이라 Skill Usage 계산식은 2 × 1 × (5 × 60/10)^1.1로 단순해지고, 결과는 약 84.307입니다. 여기에 Magelight의 계수 0.15와 Alteration의 Skill Use Mult 3을 곱하면 시전 한 번당 약 37.938 XP를 얻습니다.

게임 안에서는 정확한 남은 경험치를 확인하기 어려워 Cheat Engine과 Lua 스크립트로 메모리 값을 읽습니다. 플레이어 Alteration 레벨을 15로 맞춘 뒤 누적 XP 값을 0으로 초기화하고, 주문을 시전하기 전후 값을 비교하는 방식입니다. 계산식만 보면 시전당 약 38 XP여야 하지만, 특정 장소에서는 이 값이 반복해서 지급됩니다.

충돌 검사와 경험치 지급

Magelight 투사체는 LightSpellProjectile로 생성됩니다. 매 틱마다 다음 이동 경로를 계산하고, 충돌 모양이 있는 물체 가운데 충돌 레이어 조건에 맞는 대상을 검사합니다. 투사체 속도는 초당 512 단위이고, 60fps에서는 한 틱에 약 8.53 단위 이동합니다. 사거리는 10,000 단위라 충돌하지 않으면 약 19.5초 동안 이동한 뒤 사라집니다. 프레임률이 달라지면 충돌 검사 빈도도 달라집니다.

충돌 검사에서는 투사체와 물체 표면 사이의 가장 가까운 지점을 찾고, 그 지점의 법선 벡터와 투사체 진행 방향을 비교합니다. 법선이 진행 방향을 향하면 이미 표면에서 멀어지는 것으로 보고 충돌로 처리하지 않습니다. 반대 방향이면 투사체가 물체와 겹쳤거나 다음 틱에 부딪힐 때 충돌이 성립합니다.

충돌이 발생하면 OnHit 처리가 실행됩니다. Magelight는 사람이나 마법 대상이 아닌 표면에 맞아도 경험치를 지급하는 예외 경로를 탑니다. 문제는 충돌 뒤 투사체를 멈출지 판단하는 HandleHit 처리입니다. 보통은 투사체가 멈추지만, 비물질 충돌 대상과 collision layer 26 또는 28에는 예외가 있습니다. 두 레이어는 각각 L_TRANSPARENT_SMALL, L_TRANSPARENT_SMALL_ANIM에 해당하며, 주문과 충돌을 일으키면서도 투사체를 멈추지 않습니다.

Solitude 산에서 경험치가 반복 지급되는 이유

Solitude 근처 산에는 L_TRANSPARENT_SMALL 레이어를 가진 보이지 않는 구조물이 있습니다. Magelight가 이 구조물 안에 들어가면 매 틱마다 충돌로 판정되고, 매번 약 38 XP를 지급합니다. 충돌 뒤에도 투사체가 계속 이동하므로 다음 틱에 같은 과정이 반복됩니다. 투사체가 구조물의 절반 이상을 지나 법선이 진행 방향과 같아질 때까지 경험치가 쌓입니다. 다른 구름 낀 산이 아니라 Solitude 인근에서 버그가 발생하는 이유도 이 구조물의 위치에 있습니다.

이 레이어는 High Hrothgar 측면, Irkngthand의 조각상 주변, Thalmor Embassy 주변에도 있지만, 가장 큰 구조물은 Solitude 옆에 있습니다. 글쓴이는 Skyrim Creation Kit로 보이지 않는 벽을 표시하는 모드를 만들고, SKSE 모드로 조준 방향에 따른 예상 충돌 횟수도 계산했습니다.

경험치를 가장 많이 얻는 조준법

산 정상에 조준하면 약 280회 충돌하지만, 최적 위치에서는 약 850회 충돌합니다. Alteration 15레벨에서 100레벨까지 필요한 경험치는 약 528,804 XP입니다. 충돌 한 번당 약 37.938 XP이므로, 한 번 시전할 때 250회 충돌하는 조준과 850회 충돌하는 조준은 필요한 시전 횟수에서 큰 차이를 만듭니다. 글쓴이는 최적 조준 위치가 지하에 있어 접근할 수 없다는 점도 확인했습니다.

재현 절차는 Solitude 정문 밖에서 시작합니다. 왼쪽 바위로 올라가 성벽 모퉁이와 보이지 않는 벽에 몸을 붙인 뒤, 앞에 있는 성벽의 왼쪽 위 벽돌 모서리 줄눈에 조준점을 맞춥니다. 웅크린 상태에서 조준점을 맞추고, 각도를 유지하며 앞쪽과 왼쪽으로 이동해 보이지 않는 벽에 붙습니다. 성벽을 이루는 두 선 가운데 뒤쪽 선이 막 사라질 때까지 뒤로 움직인 뒤 Magelight를 시전합니다. 글쓴이는 이 방법으로 17회 시전, 1분 15초 만에 Alteration 100레벨에 도달했다고 보고합니다.

원문: Alex Beals / 번역·요약: Trawling