※ 이 글은 원신 채널에 올렸던 글과 내용이 완전히 동일합니다.

※ 백업용 글머리는 이렇게 쓰는 것 같아서 그냥 옮겼는데, 아니면 알려 주세요.

[수정 사항]

5. 결론 → 6. 결론


원본 글

원신 채널 글


1. 서론

원신에서 캐릭터 육성 중 가장 비중이 큰 것은 성유물일 것입니다.

이는 재료만 모으면 확정적으로 올릴 수 있는 레벨, 무기, 특성과 달리, 무작위로 스탯이 붙고, 강화된다는 점 때문에 캐릭터 육성을 위해 반복적인 성유물 습득이 강제되기 때문입니다.

성유물이 캐릭터의 성능에 차지하는 비중도 매우 큰 편인 점 또한 성유물의 중요도를 올리는 요인이 됩니다.

이런 점 때문에 성유물에 대한 판단은 성유물뿐만이 아니라 캐릭터에 대한 판단에까지 영향을 줄 정도로 중요한 사항 중 하나입니다.

두 성유물 중 어떤 것을 강화해야 할지 판단하는 것은 흔한 일이며, 어떤 두 캐릭터를 비교하기 위해 비슷한 정도의 세팅을 맞출 때도 성유물 사이의 비교가 필요할 것입니다.


하지만 한 캐릭터의 같은 부위의 성유물을 비교하는 것은 쉬워도, 다른 부위의 성유물을 비교하는 것, 다른 캐릭터의 성유물을 비교하는 것은 매우 어려운 일입니다.

예를 들어 아야카의 성유물을 비교할 때, 꽃과 왕관을 비교하는 것은 어렵습니다.

꽃은 주 옵션이 HP로 고정돼 부가 스탯만을 바꿀 수 있지만, 왕관은 주 옵션을 맞추는 것부터 어렵기 때문입니다.

다른 주 옵션 성유물에 붙을 수 있는 부가 스탯이 다르다는 점도 정확한 측정을 방해하는 요소입니다.

다른 예시로, 라이덴과 야란의 성유물을 비교하는 것을 들 수 있습니다.

두 캐릭터 모두 일반적으로 절연의 기치를 사용하지만, 필요한 스탯은 서로 다릅니다.

따라서 두 캐릭터가 사용하는 성유물을 비교할 때는 단순히 주 스탯이 무엇인지, 부가 스탯으로 무엇이 얼마나 붙었는지를 보는 것만으로 쉽게 비교하기 어렵습니다.

만약 두 캐릭터가 포지션이 다르거나 쓰는 성유물이 다르다면 더욱 비교하기 어려울 것입니다.


이런 상황을 해결하기 위해, 성유물의 가치를 비교하는 합리적인 방법이 필요로함을 알 수 있습니다.

저는 이 글에서 성유물의 가치를 판단하기 위해 제가 고안한 한 방법에 대해 소개하고자 합니다.

이하 이 글에서 그냥 성유물이라 하는 것은 20강 성유물을 뜻합니다.



2. 이론

2.1. 확률

기본적으로 성유물의 모든 것은 무작위으로 부여됩니다.

예를 들어 비경을 1번(20레진) 돌았을 때 얻는 성유물의 개수, 성유물의 부위, 성유물의 주 옵션, 성유물에 붙는 부가 옵션의 개수, 부가 옵션의 종류와 양 모두 무작위로 결정됩니다.

해당 성유물을 20강까지 강화할 때 붙는 부가 옵션의 종류와 양 또한 무작위로 결정됩니다.

이는 다시 말해, 성유물 자료를 모아 통계를 내 확률 정보를 구해낸다면, 역으로 특정한 성유물이 나올 확률을 구할 수 있다는 말입니다.

저는 이 확률 정보를 얻기 위해 인터넷에서 찾아보고, 성유물을 습득했을 때 직접 어떤 성유물을 얻었는지 기록하고 통계를 내 일단 다음과 같이 결론을 냈습니다.

글 아래에서 점수를 계살할 때 실제로 이 확률표를 사용했습니다.

가장 높은 레벨의 성유물 비경에서 5성 성유물만을 대상으로 한 확률이며, 0.01% 단위로 반올림해 나타냈습니다.

[그림 1: 확률표]


2.2. 가치함수

원래 성유물은 그 자체로 의미를 가지지 않습니다.

성유물의 가치는 해당 성유물을 사용하는 목적에서 생겨납니다.

예를 들어, 같은 절연 깃털이라도 라이덴에게 줬을 때의 가치와 야란에게 줬을 때의 가치는 다릅니다.

이런 목적이 성유물의 가치를 만드는 근원이기 때문에 성유물을 판단하기 위해서는 이를 엄밀히 정의해야 합니다.


여기서 저는 ‘가치함수’라는 개념을 만들겠습니다.

가치함수란, 성유물을 매개변수로 받아 전순서(total order)를 가진 결괏값을 내는 함수를 뜻합니다.

같은 성유물에는 항상 같은 결괏값이 나오며, 임의의 두 결괏값은 서로 비교가 가능합니다.

이 가치함수는 사용자가 직접 정하며, 사용자의 목적을 나타냅니다.

가치함수 f와 성유물 a, b에 대해, f(a)가 f(b)보다 크다는 것은 a가 b보다 사용자의 목적에 더 맞는 성유물임을 나타냅니다.

실제 예시는 밑에서 제가 점수를 적용하는 과정에서 보여드리겠습니다.


2.3. 성유물 점수

위에서 정의한 가치함수의 결괏값을 통해 이제는 같은 부위의 성유물을 일렬로 나열할 수 있습니다.

또, 각 성유물은 위의 확률표를 통해 나올 확률을 구할 수 있으므로, 이를 통해 ‘획득률’이라는 것을 구할 수 있게 됩니다.

획득률이란, 가치함수 결괏값을 해당 성유물을 넣었을 때의 결괏값 이상으로 만드는 모든 성유물의 확률의 합을 뜻합니다.

획득률은 가치함수의 결괏값을 크게 만드는 성유물일수록 더 작아진다는 특성을 가지게 됩니다.


이제 성유물 점수를 획득률의 역수에 상용로그를 취한 값으로 정의하겠습니다.

획득률은 0 초과 1 이하의 값을 가지기 때문에 점수는 0 이상의 값을 가지게 됩니다.

또, 획득률이 낮을수록 점수는 높아지므로, 목적에 더 맞는, 더 좋은 성유물의 점수가 더 커지게 됩니다.


로그를 취하는 이유를 간단하게 설명하겠습니다.

기본적으로 확률은 곱하는 양입니다.

동전을 1개 던져서 모두 앞면이 나올 확률은 0.5이고, 2개 던져서 모두 앞면이 나올 확률은 0.25인 것처럼 말이죠.

성유물에서도 비슷한데, 강화할 때마다 원하는 부가 옵션이 최대한 붙을 확률은 0.0625이며, 강화할 때마다 이 값이 곱해집니다.

이렇게 되면 확률의 역수가 기하급수적으로 커지게 되며, 나중에 이의 산술평균을 구한다던가 하는 게 의미가 없어집니다.

그래서 산술평균의 의미를 챙기고 값이 너무 커지는 것을 막을 수 있기 때문에 로그를 취하는 것입니다.

상용로그를 쓰는 이유는, 점수 자체의 의미를 일반인이 더 알기 쉽게 하기 위해서입니다.



3. 성유물 점수의 특징

3.1. 성유물 점수의 의미

이제는 이 성유물 점수가 합리적인지를 알아보고자 합니다.

기본적으로 어떤 물건의 가치를 판단할 때는 해당 물건을 얻기 위해 지불해야 하는 비용을 사용할 수 있습니다.

해당 물건을 얻음으로써 그 비용으로 할 수 있는 다른 것을 포기하게 되기 때문입니다.

성유물을 얻기 위해서는 레진이 필요로 하니 레진을 가치의 기준으로 볼 수 있을 것입니다.

즉, 얻기 위해 같은 양의 레진이 필요한 모든 성유물은 서로 같은 가치를 가지고 있다고 생각할 수 있다는 뜻입니다.

이러한 생각은 합리적입니다.


이제 성유물의 점수와 레진이 어떤 관계가 있는지를 알아보겠습니다.

성유물의 점수는 성유물의 획득률을 가지고 계산하게 됩니다.

성유물의 획득률은 해당 성유물과 동급이거나 해당 성유물보다 더 좋은 성유물의 확률을 합한 것으로, 쉽게 말해 해당 성유물 이상의 성유물을 얻을 확률을 나타냅니다.

이 확률이 낮으면 이러한 성유물을 얻기 위해 더 많이 비경을 돌아야 할 것이고, 따라서 평균적으로 더 많은 레진을 필요로 할 것입니다.

여기서 성유물의 점수가 크면 해당 성유물을 얻기 위해 필요한 평균 레진도 커짐을 알 수 있습니다.


이제 실제로 예시를 들기 위해, 점수가 1.000000점인 꽃을 얻기 위해 필요한 레진을 구해 보겠습니다.

점수가 1.000000점이라는 것은 해당 꽃의 획득률이 10 %임을 나타냅니다.

이는 이 꽃 이상의 꽃이 평균적으로 같은 꽃을 10개 정도 모아야 하나 나온다는 뜻입니다.

성유물의 부위는 5개이고 확률표에서 각 부위가 나올 확률은 같으니, 해당 성유물을 50개 모아야 이 꽃 이상의 꽃이 하나 나옵니다.

근데 한 비경에는 성유물이 2종류가 있으니, 결국 성유물을 100개 모아야 이 꽃 이상의 꽃이 하나 나온다고 해석할 수 있습니다.

비경 1회(20레진)당 성유물은 1.06667개가 나오므로 총 93.75회 돌면 이런 꽃이 나오며, 레진으로 환산하면 1875레진이 됩니다.

즉, 점수가 1.00000점인 꽃의 가치는 1875레진이라는 뜻입니다.

참고로 점수가 2.00000점인 성유물의 가치는 18750레진이 됩니다.


3.2. 성유물 점수의 특성

성유물 점수는 계산식에서 다음과 같은 이론적인 확률분포를 가지게 됩니다.

[그림 2: 점수분포]

위 그림을 보시면 성유물의 90 %가 0점 이상 1점 미만, 9 %가 1점 이상 2점 미만, 0.9 %가 2점 이상 3점 미만, ...과 같이 분포돼 있음을 아실 수 있습니다.

이런 성유물의 이론적인 평균 점수는 0.434294점으로, 이는 상용로그 10의 역수에 해당합니다.


3.3. 성유물 점수의 확장

지금까지는 성유물을 20강까지 강화한 상태에서 비교를 해 왔습니다.

이제는 같은 것을 20강 미만 성유물에도 적용할 수 있을 것입니다.

각 성유물은 이미 주어진 스탯(주 옵션과 부 옵션)에 의해 가능한 20강 성유물의 종류와 확률이 정해집니다.

이 미래의 20강 성유물의 점수는 구할 수 있으며, 따라서 주어진 성유물의 점수는 가능한 20강 성유물 점수의 확률분포의 형태로 구할 수 있습니다.

확률분포 전체를 보는 것은 어려우니 여기서 몇 가지 대푯값을 뽑아서 주어진 성유물의 가치를 판단할 때 쓸 수 있습니다.

저는 일단 가능한 점수의 최댓값과 최솟값, 25 %, 50 %, 75 % 확률로 가능한 점수와 전체 점수 분포의 평균을 사용하고 있습니다.


3.4. 성유물 점수의 단점

이 성유물 점수의 가장 큰 단점은 계산이 오래 걸린다는 점입니다.

기본적으로 모든 가능한 성유물을 확인하고, 해당 성유물의 가치를 가치함수로 판단한 후, 성유물을 일렬로 세워 획득률을 계산해야 점수를 구할 수 있습니다.

이 과정에서 시간도 많이 소비되고, 메모리도 많이 사용하기 때문에 실제로 계산을 하는 데 어려움이 생깁니다.


저는 현재 한 번 모든 성유물의 점수를 계산해 파일로 저장한 뒤, 필요할 때 파일에서 정보를 찾아 추가적으로 계산하는 방식을 채택했습니다.

이렇게 하면 한 번 파일로 저장한 성유물은 계산 시간이 거의 백 배는 빨라지지만, 이런 파일을 만드는 과정이 어렵다는 사실을 변하지 않습니다.

지금 상황을 설명하자면, 성유물 파일은 꽃(510 MiB), 깃털(510 MiB), 시계(2.49 GiB), 왕관(3.82 MiB)을 만들었고, 실제 점수가 저장되는 파일은 꽃(78.4 MiB), 깃털(78.4 MiB), 시계(392 MiB)만 만들었습니다.

왕관은 점수까지 계산하기에는 메모리(12 GiB)가 부족했고, 성배는 성유물 파일을 현재 만들어 보고 있습니다.

현재 컴퓨터를 더 좋은 것으로 바꿀 생각이라 이후 더 큰 메모리에서 성배와 왕관 파일을 만드는 것을 시도할 생각입니다.



4. 성유물 점수의 활용

4.1. 비교

성유물 점수는 기본적으로 성유물의 스탯을 직접적으로 반영하지 않고 성유물을 얻을 확률, 레진, 시간에 관계한 값이기 때문에, 이전에는 하기 힘든 비교를 가능하게 만듭니다.

먼저, 같은 성유물의 다른 부위 간 비교가 가능해집니다.

꽃과 깃털은 주 옵션이 정해져 있지만, 시계와 성배, 왕관은 그렇지 않기 때문에 이를 직접 비교하기는 어려웠습니다.

시계보다 꽃에 부 옵션이 잘 뜨는 게 일반적임은 쉽게 알 수 있지만, 얼마나 잘 뜨는 게 일반적인지를 그냥 비교할 수는 없었습니다.

하지만, 이 점수를 사용한다면 꽃과 시계를 동일한 가치(레진)로 보고 비교하게 되기 때문에 둘의 비교가 가능해집니다.


다른 캐릭터 간의 성유물 비교도 가능해집니다.

서론에서처럼 필요한 스탯이 다른 두 캐릭터에 대해 성유물을 비교하는 것은 일반적으로 어려운 일이었습니다.

하지만, 이 점수를 사용한다면 각 캐릭터의 성유물과 같은 수준의 성유물을 얻기 위해 필요한 레진을 계산할 수 있으며, 이를 가지고 캐릭터의 성유물 상태를 비교할 수 있게 됩니다.

레진이 더 많이 필요한 성유물을 가진 캐릭터가 더 세팅이 잘 돼 있다고 할 수 있겠죠?


4.2. 분석

캐릭터를 분석하기 위해 다른 캐릭터와 비교할 때 중요한 것은 ‘두 캐릭터의 성유물 세팅이 비슷한 수준인가?’일 것입니다.

예를 들어, 한 쪽은 필요한 스탯이 하나도 없는 성유물을 주고 다른 쪽은 종결에 가까운 성유물을 준다면, 둘을 비교한 실험은 아무 의미가 없을 것입니다.

다시 말해 캐릭터를 분석할 때 성유물이라는 변인을 통제해야 한다는 뜻인데, 이때 성유물 점수를 사용할 수 있습니다.

두 캐릭터의 성유물 점수가 같다면, 이는 두 캐릭터가 장착한 성유물을 얻기 위해 동일한 레진이 필요로 하다는 뜻이므로 성유물 세팅이 같다고 할 수 있을 것입니다.


성유물 점수에 따른 캐릭터의 성능을 보고 캐릭터의 특성을 분석할 수도 있습니다.

예를 들어, 딜러 포지션의 캐릭터 A, B가 있다고 하고, 가치함수로 각 캐릭터의 DPS를 사용하겠습니다.

이러면 점수가 커질수록 캐릭터의 DPS 또한 커질 것입니다.

하지만, 이 점수와 DPS는 기본적으로 비례관계가 아니기 때문에 다음과 같이 나올 수 있습니다.

[그림 3: DPS 비교]

이 경우 A는 적은 시간을 써도 DPS가 많이 오르는 대신 이후에는 시간을 많이 쏟아도 DPS가 많이 안 오르는, 소위 뉴비용 캐릭터라 분석할 수 있습니다.

반대로 B는 시간을 많이 써야 DPS가 오르는 대신 DPS의 한계가 높은, 소위 고인물용 캐릭터라 분석할 수 있습니다.


4.3. 계획

원래는 성유물에 이 정도의 레진을 사용했을 때 캐릭터의 성능이 어떻게 될지는 알기 어려운 것이었습니다.

많은 사람들의 경험을 통해 몇 달 동안 비경을 돌면 이 정도는 된다더라 하는 정도로만 알 수 있었습니다.

이 성유물 점수를 사용하면 이를 직접적으로 계산할 수 있게 됩니다.

위에서 성유물의 점수로 평균적으로 필요한 레진을 구하는 것을 보셨을 겁니다.

역으로 사용할 레진으로 얻을 성유물의 평균 스탯을 구할 수도 있습니다.

이를 통해 성유물 비경에 대한 계획을 더 자세하게 세울 수 있을 것입니다.



5. 성유물 점수의 적용

실제로 제가 이 성유물 점수를 적용한 과정을 보여 드리겠습니다.

저는 코코미의 성유물을 계산할 건데, 점수를 구하고자 하는 코코미의 상태는 다음과 같습니다.


캐릭터: 산고노미야 코코미(Lv.90)

무기: 맹세의 눈동자(Lv.90, 5재련)

별자리: 0돌파

성유물: 바다에 물든 거대 조개 4세트

특성: 일반 공격 Lv.10, 원소전투 스킬 Lv.10, 원소폭발 Lv.10


여기서 저는 다음과 같은 성유물을 얻고 싶다고 합시다.


1순위: 원소폭발을 쓴 상태의 평타 3타 평균 대미지

2순위: 원소 충전 효율

3순위: 원소 마스터리

4순위: 방어력


저는 Python으로 가치함수를 구현했으며, Python 내의 자료형인 tuple형 자료의 비교는 기본적으로 맨 앞의 값부터 이뤄집니다.

따라서 가치함수가 (1순위, 2순위, 3순위, 4순위)의 형태로 값을 출력하면 위에서 설명한 가치함수의 조건을 모두 만족하게 됩니다.

실제로 구현할 때는 코코미의 기본 스탯을 통해, 해당 성유물을 장착했을 때의 스탯을 구한 뒤 위의 값을 구하는 방식으로 구현했습니다.

점수를 구할 때 성유물의 다른 부위에는 가능한 최고의 성유물을 장착했다고 간주하고 계산을 했습니다.


이제 실제 성유물의 점수를 구해 보겠습니다.

[그림 4: 꽃]

위 꽃의 점수를 구하면 결과는 다음과 같습니다.

[그림 5: 꽃 결과]

20강이기 때문에 모든 값이 동일하게 나온 것을 알 수 있습니다.

계산해 보면 약 39687레진의 가치를 가진 성유물입니다.

농축 레진으로 약 992번 돌아야 얻을 만한 성유물이라는 것이죠.


[그림 6: 깃털]

위 깃털의 점수는 다음과 같습니다.

[그림 7: 깃털 결과]

이 깃털은 12강이기 때문에 점수가 확률분포의 형태로 나타납니다.

위를 해석하자면, 거의 불가능하지만 최고로 잘 붙으면 1.560255점(6812레진) 깃털이 되고, 최고로 못 붙으면 0.431965점(507레진) 깃털이 된다는 뜻입니다.

또, 25 %의 확률로 0.773514점(1113레진) 이상의 성유물이, 50 %의 확률로 0.433324점(509레진) 이상의 성유물이, 75 %의 확률로 0.432790점(508레진) 이상의 성유물이 된다고 합니다.

마지막으로 평균적으로는 0.606470점(758레진) 깃털이 될 것이라고 돼 있습니다.



6. 결론

지금까지 제가 생각한 성유물 점수 계산법과 활용법, 그리고 실제로 적용한 예시를 보여 드렸습니다.

이 성유물 점수는 필요한 레진이 커질수록 커지는 특성을 가지고 있어 여러 상황에 합리적인 지표로 사용할 수 있음을 확인할 수 있었습니다.

계산이 오래 걸린다는 단점도 있지만, 그래도 어디에 사용할 수 있는지, 어떻게 적용되는지까지 살펴봤습니다.

이 글을 통해 이런 방식으로 성유물의 가치를 판단할 수 있다는 점을 아실 수 있었으면 좋겠습니다.

더 나아가 다른 능력 있는 분들이 개선할 만한 방법을 떠올릴 만한 계기가 된다면 좋겠습니다.

긴 글 읽어 주셔서 감사합니다.