probability について
LLM を使うロールプレイングゲーム向けの物語的な確率プロトコルです。乱数生成器を使わず、キャラクターの能力値や状況、危険度を評価して結果を決め、物語として描写します。
主な機能
- 01能力値と状況から確率を評価
- 02バフ、デバフ、装備を考慮
- 035段階の行動結果を判定
- 04危険度に応じた描写
- 05buff、character、adventure、scoring スキルとの連携
活用シーン
- 01キャラクターの行動を判定
- 02一時的な強化と環境要因を考慮
- 03危険度に応じた場面の結果を描写
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ simhacker/ moollm --skill probabilityインストール後、Claude Code で/probabilityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CARD.ymlskill-snitch-report.mdREADME.mdGLANCE.yml詳細
Probability Protocol
ステータスから成功率を算出します。サイコロは使わず、物語に基づいて確率を判断します。 「サイコロはLLMです。結果を語るのもLLMです。」
基本原則
乱数生成器は使いません
LLMは物語に基づいて確率を評価します。
- キャラクターのステータスを確認します
- 状況や強化効果を考慮します
- リスクと物語の展開を考慮します
- 適切な結果を描写します
Not: roll d20, add modifier, compare to DC
But: evaluate odds, consider context, narrate result
なぜサイコロを使わないのか?
従来のRPGでは、次のためにサイコロを使います。
- 不確実性
- 公平性
- 興奮
LLMは次の方法でこれらを実現します。
- 物語上の緊張感
- 一貫したステータス評価
- 物語にふさわしい結果
方法
CALCULATE - 確率を計算する
invoke: CALCULATE
params:
action: "What's being attempted"
actor: "Who's trying"
context: "Relevant factors"
output:
probability: "85%"
factors:
- "High DEX (+20%)"
- "Slippery surface (-15%)"
- "Practiced move (+10%)"
RESOLVE - 結果を決定する
invoke: RESOLVE
params:
probability: "85%"
stakes: "Fall into pit if failed"
output:
outcome: "success"
narrative: "Your practiced leap carries you across..."
確率に影響する要素
| 要素 | 効果 |
|---|---|
| ステータス | 基本能力 |
| 強化効果 | 一時的なボーナス |
| 弱体効果 | 一時的なペナルティ |
| 装備 | 任務に役立つ道具 |
| 状況 | 環境要因 |
| リスク | 失う可能性のあるもの |
| 物語 | 物語上の妥当性 |
結果の段階
| 結果 | 条件 | 描写のスタイル |
|---|---|---|
| クリティカル成功 | 非常に高い確率+良好な状況 | 期待を超える、並外れた成果 |
| 成功 | 成功の可能性が高い | 目標を達成する |
| 部分的成功 | 成功と失敗の可能性が拮抗 | 代償や問題を伴いながら達成する |
| 失敗 | 失敗の可能性が高い | 目標は達成できないが、大事には至らない |
| クリティカル失敗 | 非常に低い確率+悪い状況 | 忘れられない大惨事 |
計算例
action: "Pick the lock"
actor: "Thief (DEX: High, Lockpicking: Expert)"
context:
- Lock complexity: Medium
- Time pressure: Yes
- Tools: Quality picks
calculation:
base: 70% # Expert lockpicking
modifiers:
- DEX high: +15%
- Medium lock: +0%
- Time pressure: -10%
- Good tools: +5%
final: 80%
likely_outcome: "Success, but took longer than hoped"
物語への統合
LLMは確率を計算するだけではなく、結果を描写します。
Player: "I try to jump across the chasm."
CALCULATE:
- Character is wounded (-20%)
- Has jumping buff (+15%)
- Chasm is wide (-10%)
- High stakes (death)
Final: 55% success
RESOLVE at 55%:
"You gather yourself, ignoring the pain in your leg.
The jump is further than you'd like, but the
strength enchantment pulses through you. You leap—
and your fingers catch the far edge. You haul
yourself up, gasping. Made it."
リスクによる影響
リスクが高いほど、描写はより劇的になります。
| リスク | 成功時の感触 | 失敗時の感触 |
|---|---|---|
| 低 | いつもどおり | 小さな挫折 |
| 中 | 満足感がある | 問題が発生する |
| 高 | 勝ち誇るような達成感 | 深刻な事態 |
| 極端 | 伝説的 | 破滅的 |
状態
probability_state:
# Usually stateless - calculated per action
last_calculation:
action: "Pick lock"
probability: 80%
outcome: "success"
統合
| スキル | 統合方法 |
|---|---|
| buff | 強化効果が確率を変化させます |
| character | ステータスの情報源 |
| adventure | 行動の解決 |
| scoring | 難易度がスコアに影響します |
セッション例
> ATTACK the goblin with my sword
CALCULATE:
Actor: Fighter (STR: High, Sword: Trained)
Target: Goblin (Small, Quick, Distracted)
Context: Narrow corridor, dim light
Base: 65%
STR High: +15%
Trained: +10%
Goblin quick: -10%
Goblin distracted: +10%
Dim light: -5%
Final: 85%
RESOLVE at 85%: Success
"Your blade catches the goblin as it turns.
It squeals and stumbles backward, wounded."
コメント
Markdown 対応