사과·경보·잡담이 동시에 조건을 충족하면 무엇부터 보여 줄까? 콘텐츠 우선순위 충돌 점검표
차단된 콘텐츠를 제외한 뒤 남은 후보의 우선순위를 비교하세요. 동순위, 지연, 선택할 후보가 없는 경우는 따로 규칙을 정합니다. 검토표와 회차별 검토로 경보 처리와 해제를 구분하고 대기 문장을 기록합니다. 잡담에는 사과 완료와 오해 해소가 필요하며, 사과 수용은 추가 조건이 아닙니다.

표시할 수 있는지 먼저 확인하고, 표시 순서를 정한다
사과, 경보, 잡담이 동시에 조건을 충족할 때 단순히 “경보, 사과, 잡담 순으로 우선한다”라고만 적어서는 안 됩니다. 설명은 이미 표시됐을 수 있고, 사과를 받을 사람은 자리를 떠났을 수 있습니다. 먼저 후보를 확인하고 차단된 후보를 제외한 뒤 우선순위를 비교하고, 마지막으로 동순위나 표시할 콘텐츠가 없는 경우를 처리해야 합니다.
Yarn Spinner 문서는 현저성 전략이 조건을 충족하는 대사나 노드 그룹에서 내용을 선택한다고 설명합니다. 문서 보기. 아래 검토표는 독자적으로 제안하는 설계 방법입니다. DramaFork가 이 알고리즘을 사용한다는 뜻도, 구현된 제품 기능을 설명하는 것도 아닙니다.
먼저 같은 장면, 같은 선택 시점, 하나의 표시 슬롯을 기준으로 고정합니다. 서로 다른 슬롯에 동시에 표시할 수 있는 내용은 경쟁할 필요가 없습니다. 이미 시작한 대화를 중단할 수 있는지는 별도 규칙으로 정해야 합니다.
후보·차단 조건·대체 처리를 한 표에 적는다
다음은 교육용 가상 사례로, 실제 사용자 사례가 아니며 실제 플레이로 검증하지 않았습니다. 궤도 정거장 당직실에서 린야오는 저우란에게 사과하려 하고, 제어반에는 경보가 켜집니다. 두 사람은 오래된 사진 이야기도 이미 시작한 상태입니다. 이 예시에서 린야오는 계속 당직실에 있으며, 사과와 사진 잡담 모두 저우란이 자리에 있어야 합니다. 한 회차에 콘텐츠 하나만 표시하고, 끝나면 다시 확인합니다.
이 예시에서 ‘처리됨’은 비상 조작이 완료되어 대화를 재개해도 된다는 뜻입니다. ‘해제됨’은 재확인이 끝나 이번 경보가 종료됐다는 뜻입니다. 두 상태는 따로 기록하므로, 처리됐지만 해제되지는 않은 상태가 가능합니다. 아직 표시하지 않은 경보 설명을 뒤늦게 표시하는 것은 경보가 해제되지 않았을 때만 가능합니다.
우선순위는 세 단계이며 1순위가 가장 먼저입니다. 사진 잡담은 사과가 끝나고 오해도 풀려야 가능합니다. 다른 사건으로 오해가 먼저 풀려도 사과를 건너뛸 수는 없습니다. ‘사과가 받아들여짐’은 추가 조건이 아닙니다. 사과 수용 여부가 오해 해소 여부에 대한 판단을 대신할 수는 없습니다.
| 후보 콘텐츠 | 후보 포함 조건 | 차단 조건 | 우선순위 | 표시 후 기록 |
|---|---|---|---|---|
| 경보 설명 | 이번 경보가 발생함 | 이번 설명을 이미 표시했거나 이번 경보가 해제됨 | 1순위 | 이번 경보 설명을 표시했다고 기록 |
| 대면 사과 | 이번 장면에서 오해가 발생한 적이 있고 아직 사과하지 않음 | 저우란이 자리에 없거나 경보가 처리되지 않음 | 2순위 | 끝까지 말한 경우에만 사과했다고 기록 |
| 사진 잡담 | 사진 이야기를 시작함 | 저우란이 자리에 없음, 경보 미처리, 사과 미완료, 오해 미해소, 또는 이번 장면의 잡담을 이미 표시함 | 3순위 | 이번 장면의 잡담을 표시했다고 기록 |
| 반응 기다리기 | 일반 후보가 모두 선택 불가로 확정됐고, 저우란이 자리에 있으며 경보가 처리되지 않음 | 현재 이야기 상태 버전에서 대기 문장을 이미 표시함 | 대체 처리 | 대기 문장을 표시했다는 사실과 표시 당시의 이야기 상태 버전을 기록 |
후보에 포함됐다고 표시할 수 있는 것은 아닙니다. 차단 조건에는 거부권이 있습니다. 사과의 우선순위를 높여도 자리를 떠난 사람에게 들려줄 수는 없습니다. 대체 처리는 순위 비교에 참여하지 않으며, 일반 후보가 모두 선택 불가로 확정됐을 때만 자체 조건을 확인합니다.
표 상단에는 장면, 확인 시점, 상태 버전, 작가의 의도를 적어야 합니다. 인물의 퇴장, 경보 처리 완료, 일반 콘텐츠의 표시 완료처럼 관련 사실이 바뀔 때만 버전을 갱신합니다. 회차가 늘어나거나 대기 문장의 표시 기록을 남기는 것으로는 버전을 갱신하지 않습니다. 대기 문장을 확인할 때는 기록된 버전과 대조해, 기록 행위 자체가 재표시를 유발하지 않도록 합니다.
같은 상태 기록으로 회차별 결과를 계산한다
첫 회차: 저우란은 자리에 있고, 오해가 발생했으며 아직 풀리지 않았습니다. 사과는 미완료이고, 사진 이야기는 시작했지만 잡담 콘텐츠는 아직 표시하지 않았습니다. 이번 경보는 발생했으나 처리도 해제도 되지 않았고, 설명도 표시하지 않았습니다. 현재 버전에서 대기 문장 역시 표시하지 않았습니다. 일반 콘텐츠 세 개가 모두 후보 포함 조건을 충족하지만 사과와 잡담은 차단되므로 경보 설명을 표시합니다. 이 경우에는 차단만 점검한 셈입니다. 우선순위 숫자를 지워도 결과는 같습니다.
순위를 비교할 대조 상태는 따로 만듭니다. 첫 회차의 다른 상태는 그대로 두고, 경보만 처리 완료·미해제로 바꿉니다. 즉, 조작은 끝났지만 재확인은 아직 끝나지 않았고 설명도 표시 전입니다. 설명과 사과는 모두 선택할 수 있지만 잡담은 여전히 차단됩니다. 여기서 1순위인 설명이 선택되어야 비로소 순위를 점검한 것입니다.
원래 사례로 돌아갑니다. 설명이 끝나면 설명 표시 기록과 상태 버전만 갱신해야 합니다. 이때 경보까지 처리됐다고 기록해서는 안 됩니다. 다음 회차에는 설명이 제외되고 사과와 잡담은 여전히 차단되므로, “린야오는 제어반을 바라보며 저우란이 조작을 마치기를 기다린다”를 표시하고 표시했다는 사실과 해당 버전을 기록합니다. 같은 버전에서 다시 확인하면 대기 문장도 제외합니다. 새 콘텐츠를 표시하지 않고 이야기를 진행시킬 사건을 기다립니다.
이야기에서 처리를 완료하는 행동이 명확히 일어난 뒤 경보 상태와 버전을 갱신해야 사과를 표시할 수 있습니다. 사과를 끝까지 말해도 사과 완료만 기록하며, 오해가 풀렸다고 자동으로 기록해서는 안 됩니다. 오해가 남아 있다면 잡담은 계속 차단됩니다. 다른 사건으로 이미 오해가 풀렸다면, 사과를 끝까지 한 뒤에는 사과가 받아들여지지 않았더라도 표의 나머지 조건을 충족하는 한 잡담을 표시할 수 있습니다. 오해가 먼저 풀렸지만 사과가 끝나지 않았다면 잡담은 여전히 기다려야 합니다. 이는 ‘오해가 발생한 적이 있음’이라는 사과의 후보 포함 조건과도 일치합니다.
다음처럼 기록할 수 있습니다. “두 번째 회차. 설명 표시 완료, 경보 미처리. 일반 후보 모두 차단. 버전 2에서 대기 문장을 처음 표시하고 기록. 같은 버전에서 다시 확인하면 표시 없음. 진행하려면 처리 행동이 필요함.” 회차마다 후보, 제외 이유, 결과, 보충할 정보를 남깁니다.
네 가지 실패를 의도적으로 만들어 규칙의 빈틈을 점검한다
먼저 동순위를 만듭니다. 같은 1순위인 ‘해치 안내’를 추가해 경보 설명과 동시에 선택 가능하게 합니다. 고정 순서를 정하거나, 콘텐츠를 합치거나, 구분 조건을 추가해야 합니다. 결정 규칙이 없다면 ‘선택 결과가 하나로 정해지지 않음’이라고 표시해야 합니다. 명시적인 규칙 없이 표의 행 순서를 결정 기준으로 삼아서는 안 됩니다.
다음으로 반복을 만듭니다. 설명을 표시한 뒤에도 경보 상태를 그대로 유지합니다. 설명이 다시 나타나면 표시 완료에 따른 차단 조건이나 기록이 잘못 지워졌는지 확인합니다. 이전 기록이 새 경보를 막는다면 설명 기록의 범위를 개별 경보 사건으로 한정해야 합니다. 대기 문장은 같은 버전에서 다시 표시되는지, 회차 변화를 상태 변화로 잘못 간주하지 않았는지도 확인합니다.
세 번째는 낮은 순위의 내용이 장기간 미뤄지는 경우입니다. 새로운 1순위 콘텐츠가 계속 생기면 사과는 계속 차례를 얻지 못할 수 있습니다. 퇴장 시점까지 전개를 따라가며 재개할 기회를 확인해야 합니다. 경보 처리 후 대화만을 위한 표시 슬롯을 따로 배정할 수 있습니다. 사과할 기회를 놓치도록 정했다면 그 결과를 써야 하며, 표시하지 않은 콘텐츠를 완료된 것으로 취급해서는 안 됩니다. 이 예시에서는 잡담도 차단되므로 함께 추적해야 합니다.
마지막으로 표시할 콘텐츠가 없는 경우와 상태를 알 수 없는 경우를 확인합니다. 저우란이 떠나면 사과와 사진 잡담이 모두 차단됩니다. 경보까지 해제됐다면 조작을 기다리는 문장도 조건을 충족하지 않으므로, 조건이 명확한 퇴장 전환 내용을 따로 써야 합니다. 저우란이 자리에 있는지 모른다면 상태 정보 누락으로 표시해야 합니다. 이를 ‘자리에 없음’으로 간주해서는 안 되며, 그 정보만으로 일반 후보가 모두 선택 불가라고 단정해서도 안 됩니다. 규칙상 허용되는 경우에는 새 콘텐츠를 표시하지 않아도 됩니다. 대체 처리로 알 수 없는 사실을 채울 수는 없습니다.
극적 목적에 맞게 규칙을 바꾸되, 점검 근거는 남긴다
사과의 감정 흐름을 지키고 싶다면 경보를 사과 시작 전으로 옮길 수 있습니다. 중단의 아쉬움을 보여 주려면 짧고 급하게 끼어드는 대사를 따로 쓰고 사과 미완료 기록을 유지할 수 있습니다. 두 정보를 함께 이해해야 한다면 하나의 콘텐츠로 묶을 수 있습니다. 이는 각각 사건의 순서, 중단 방식, 내용 구성을 바꾸는 일이며 숫자를 높이는 것만으로는 구현할 수 없습니다.
이 표는 명확한 시점에 개별 콘텐츠 단위들이 선택을 놓고 경쟁하는 경우에 적합합니다. 연출이 끊김 없이 이어지거나, 여러 인물이 동시에 말하거나, 플레이어가 먼저 들을 상대를 정하는 경우에는 표시 방식과 상호작용 방식을 먼저 정해야 합니다. 플레이어에게 선택을 맡긴다면 선택하지 않은 콘텐츠가 미뤄지는지, 무효가 되는지, 나중에 다시 볼 수 있는지도 밝혀야 합니다.
원고를 제출하기 전, 다른 검토자에게 상태 기록과 표만으로 회차별 후보, 차단, 결과, 상태 변화를 다시 계산해 달라고 요청하세요. 답이 다르면 빠진 조건이나 결정 규칙을 찾아야 합니다. 기록은 왜 경보가 먼저 나오는지, 사과가 언제 다시 가능해지는지, 잡담이 사과 완료와 오해 해소 등의 조건을 충족하는지, 언제 새 콘텐츠를 표시하지 않아도 되는지를 설명할 수 있어야 합니다.


