---
id: wiki-2026-0508-핀치-포인트-pinch-point
title: 핀치 포인트(Pinch Point)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Pinch Point, Story Pinch, Tension Pinch, 핀치]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [narrative, story-structure, pacing, screenwriting, game-narrative]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: markdown
  framework: narrative-design
---

# 핀치 포인트(Pinch Point)

## 매 한 줄
> **"매 protagonist 의 antagonist 매 force 매 reminder beat"**. 매 Larry Brooks *Story Engineering* (2011), Syd Field 매 paradigm 매 elaboration. 매 3-act / 4-part structure 의 두 핀치 (Pinch 1 ~37%, Pinch 2 ~62%) 매 reader 매 stakes 의 reinforce + 매 hero 매 vulnerability 의 expose.

## 매 핵심

### 매 위치 / 매 function
- **Pinch 1 (~37% mark)**: 매 first half 매 의 antagonistic force 의 의 의 reminder. 매 protagonist 매 still 매 reactive.
- **Pinch 2 (~62% mark)**: 매 protagonist 매 proactive shift 의 직전. 매 highest 매 stakes-reveal 의 the moment.
- 매 Brooks 의 4-part 의 → Part 1 (setup), Part 2 (response), Part 3 (attack), Part 4 (resolution). 매 pinch 매 Part 2/3 의 의 anchor.

### 매 game narrative 의 매 mapping
- 매 RPG act break / boss reveal moment 매 typical pinch.
- 매 mid-game antagonist 매 "true power" 매 reveal scene.
- 매 ally betrayal / death 의 stakes 의 raise.
- 매 player 매 "of course this enemy 매 still 매 dangerous" 의 의 reminder.

### 매 응용
1. 매 *Star Wars: A New Hope* — Pinch 1: Death Star demonstrates power on Alderaan. Pinch 2: Obi-Wan 의 death.
2. 매 *Lord of the Rings: Fellowship* — Pinch 1: Nazgûl on Weathertop. Pinch 2: Balrog / Gandalf falls.
3. 매 *Hades (game)* — 매 Hades 본인 매 throne room reveal 매 mid-run pinch.
4. 매 *Final Fantasy 7* — Aerith 의 death (mid-game pinch).
5. 매 TV serials (*Breaking Bad* season midpoints) 매 동일한 beat 의 의 사용.

## 💻 패턴

### Story beat sheet (markdown template)
```markdown
## Act Structure with Pinch Points

| % | Beat | Function |
|---|------|----------|
| 1% | Hook | Open question |
| 12% | Inciting Incident | Disturb status quo |
| 25% | Plot Point 1 | Hero commits |
| **37%** | **Pinch Point 1** | Antagonist shows force |
| 50% | Midpoint | Information shift |
| **62%** | **Pinch Point 2** | Stakes raised; hero vulnerable |
| 75% | Plot Point 2 | All-is-lost / proactive shift |
| 90% | Climax | Final confrontation |
| 99% | Resolution | New equilibrium |
```

### Game pinch trigger logic
```typescript
type StoryProgress = { actPercent: number; flagsSet: string[] };

function checkPinchTriggers(p: StoryProgress): string | null {
  if (p.actPercent >= 0.37 && !p.flagsSet.includes("pinch1")) {
    return "TRIGGER_PINCH_1";  // antagonist demonstration cutscene
  }
  if (p.actPercent >= 0.62 && !p.flagsSet.includes("pinch2")) {
    return "TRIGGER_PINCH_2";  // ally death / power reveal
  }
  return null;
}
```

### Tension curve modeling
```python
import numpy as np
import matplotlib.pyplot as plt

def tension_curve(beats: dict[float, float]) -> np.ndarray:
    """beats: {percent: tension_level 0-1}. Interpolated curve."""
    xs = np.array(sorted(beats.keys()))
    ys = np.array([beats[x] for x in xs])
    grid = np.linspace(0, 1, 100)
    return np.interp(grid, xs, ys)

beats = {
    0.0: 0.1, 0.12: 0.3, 0.25: 0.5,
    0.37: 0.65,  # pinch 1
    0.50: 0.55,  # brief reprieve
    0.62: 0.80,  # pinch 2 — higher than pinch 1
    0.75: 0.95,
    0.90: 1.00,
    1.0: 0.2,
}
curve = tension_curve(beats)
```

### Pinch beat checklist (writers' tool)
```typescript
interface PinchBeat {
  position: 1 | 2;
  showsAntagonistPower: boolean;
  protagonistVulnerable: boolean;
  raisesStakes: boolean;
  thematicEcho: string;        // ties to central theme
  doesNotResolve: boolean;     // pinch ≠ midpoint resolution
}

function validatePinch(b: PinchBeat): string[] {
  const errs: string[] = [];
  if (!b.showsAntagonistPower) errs.push("Pinch must show antagonist force");
  if (!b.protagonistVulnerable) errs.push("Hero must feel threatened");
  if (!b.raisesStakes) errs.push("Stakes must escalate vs prior beat");
  if (!b.doesNotResolve) errs.push("Pinch must NOT resolve the conflict");
  return errs;
}
```

### Quest-graph pinch slot (RPG design)
```typescript
type QuestNode = { id: string; tag: "setup" | "pinch1" | "midpoint" | "pinch2" | "climax" };

const mainline: QuestNode[] = [
  { id: "intro_village",    tag: "setup" },
  { id: "first_dungeon",    tag: "setup" },
  { id: "antagonist_wipes_town", tag: "pinch1" },
  { id: "midgame_revelation", tag: "midpoint" },
  { id: "mentor_dies",      tag: "pinch2" },
  { id: "final_assault",    tag: "climax" },
];
```

## 매 결정 기준
| 상황 | 사용 |
|---|---|
| 매 3-act feature script | 2 pinches at 37% / 62% |
| 매 short story / one-act | 1 pinch around 60% |
| 매 long-form novel (60+ chapters) | multi-pinch (per act) |
| 매 RPG main quest | pinch beats anchored to act breaks |
| 매 TV episode (~22min) | 1 mini-pinch ~act break 2 |

**기본값**: 매 ~37% / ~62% 의 의 두 pinch 매 placement, 매 adapt 의 의 length 의 .

## 🔗 Graph
- 부모: [[Story Structure]] · [[3-Act Structure]] · [[Narrative Design]]
- 변형: [[Midpoint Reversal]] · [[All Is Lost]] · [[Save the Cat Beat Sheet]]
- 응용: [[RPG Main Quest Pacing]] · [[Boss Fight Narrative]] · [[위험과 보상(Risks and Rewards)]]
- Adjacent: [[Tension Curve]] · [[Stakes Escalation]]

## 🤖 LLM 활용
**언제**: 매 narrative game / screenplay / novel 의 의 outline 시, 매 mid-act 매 pacing slump 의 fix 시.
**언제 X**: 매 systemic / sandbox 매 narrative-light 매 game (Minecraft, factory sims) — 매 forced pinch 매 awkward.

## ❌ 안티패턴
- **매 pinch 매 = 매 midpoint**: 매 confused. 매 pinch 매 reminder, 매 midpoint 매 information shift.
- **매 resolved pinch**: 매 pinch 매 의 의 antagonist force 매 defeated 시 매 → 매 stakes collapse.
- **매 flat pinches**: 매 두 pinch 매 same intensity → 매 escalation 의 의 의 X.
- **매 telegraph 매 X**: 매 pinch 매 의 의 의 surprise 매 의 의 의 의 의 의 의 의, 매 setup 매 weak 시 매 cheap.

## 🧪 검증 / 중복
- Verified (Brooks *Story Engineering*, Field *Screenplay*, Snyder *Save the Cat*, Truby *The Anatomy of Story*).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — pinch positions + game-mapping + tension curve code + checklist |
