name: ビキニ水着
slug: swimsuit
category: 水着
adult_guard: false
material: ナイロン
color_default: 白・水色系
# ★★2026-08-11(段1): 手書きの6段から「共通の脱げ方(札)」へ切り替えた。
#   ・脱げ方は衣装ごとに書かず pipeline/undress.py の表を全衣装で共有する
#   ・同じ段でも1枚ごとに変わる(手書きは同じ段が一字一句同じだった)
#   ★この切り替えで手書き時代の実画像検証は無効。verified は false へ戻し、
#     6枚テストで見てから付け直す。手書きの states は消していない(札が組めない時の受け皿)。
undress_mode: wildcard
# ★水着は下着を持たない(空のままにする)
# ★★2026-08-16 ユーザー決定: **衣装パックの下着の基準**
#   ・下着を着ける衣装は **必ず白**(`white bra` / `white panties` / 和装は `white juban`)
#   ・下着を着けない衣装(水着・レオタードなど肌に直接着るもの)は
#     `no_underwear: true` と**書いて意図を残す**
#   なぜ: 空欄だけだと「着けない衣装」なのか「書き忘れ」なのか区別できない。
#   実害(2026-08-16 実画像100枚): 部屋着で下着を渡し忘れた候補があり、
#   モデルが毎回決め直して**青いブラ**や**ブラ無し**になった。
#   ★色を変えたい人は衣装エディターで選ぶ(パックは白で固定)。
no_underwear: true   # 水着の下に下着は着けない
parts:
  # ★★2026-08-16(実画像で発覚): 中盤で**水着が下着(レース付きの白いブラ)に描かれていた**。
  #   原因は「これは水着だ」と言う語が弱いこと。実測すると `bikini top` `bikini bottom` は
  #   **語としては 0枚**で、中に埋まっている `bikini`(689,772) だけが効いていた。
  #   めくった・ずらした状態になると、その弱い手がかりでは下着に寄る。
  #   → `swimsuit`(903,508) を足して「水着である」ことを毎回はっきり言う。
  #   ★打ち消し(`bra` を消す等)は使わない。ビキニトップと語がぶつかって
  #     水着そのものを消しかねない(同じ失敗を制服のブレザーでやった。§下)。
  top: light blue bikini top, swimsuit
  bottom: light blue bikini bottom, swimsuit
  underwear_top: ''
  underwear_bottom: ''
  underwear: ''
  # ★★2026-08-16 ユーザー決定: **サロンを外した。衣装パックは水着だけにする。**
  #   「パックはシンプルに、こだわりたい人は衣装エディター」という2軸の考え方に合わせる。
  #   ★2026-08-12 に `pareo`(0枚) → `sarong`(20,268枚) へ直した経緯があるが、
  #     語の問題ではなく「パックに羽織りものを持たせるか」という設計の判断で外した。
  #     腰布を足したい人はエディターの「アウター」で選ぶ。
  outer: ''
  # ★2026-08-16 ユーザー指摘「帽子が勝手にかぶらされている・必要ない」→ 外した。
  #   (小物が絵に出るようになったのは 2026-08-16 の直しから。それまでは書いてあっても出ていなかった)
  accessory: ''
# ★色は全状態に書く。書かない状態はモデルが色を決め直すので、作品の途中で色が変わる
#   (2026-08-03 実測: 制服パックで着衣=赤ネクタイ / 着崩れ=青ネクタイ になった)。
states:
  intro: light blue bikini top, light blue nylon bikini bottom, white pareo, sun hat,
    fully dressed
  approach: light blue bikini top strap undone, one shoulder bare, white pareo slipping
  foreplay: light blue bikini top pulled aside, breasts exposed, light blue nylon bikini
    bottom, still on
  main: light blue bikini top pulled aside, breasts exposed, light blue nylon bikini
    bottom pulled aside
  climax: light blue bikini top strings undone, falling off, breasts exposed, light blue
    nylon bikini bottom untied and slipping off
  afterglow: completely nude, light blue bikini untied and lying loose on her body, strings
    undone
states_ja:
  intro: パレオを羽織ったビキニ姿。
  approach: ビキニトップのヒモがほどけ、肩がむき出しに。
  foreplay: ビキニトップをずらして胸露出。ボトムはまだ着けたまま。
  main: ビキニトップをずらして胸露出、ボトムもずらして露出。
  climax: ビキニの紐が解けて落ちかけ、ボトムもずり落ちる。
  afterglow: ビキニの紐がほどけ、体に乗っているだけ。ほぼ全裸の事後姿。
# ★2026-08-16: **0枚の語を取り除いた**(書いてあっても絵に効かない)。
#   `partially dressed` `fully dressed` `clothed` `neatly worn` `wearing ◯◯`
#   `see-through` `transparent clothes` などは全部 0枚で、この仕組みは
#   ほぼ丸ごと効いていなかった(実測 65語中56語が0枚)。
#   いまは共通の札(outfits/_undress_wildcards.yaml の stage_negative)と、
#   「全裸の文のときだけ服の名前を打ち消す」仕組み(pipeline/recipe.py)が受け持つ。
state_negative: {}
# ★2026-08-11: 札へ切り替えたので手書き時代の検証は無効。6枚テストで付け直す。
verified:
  intro: false
  approach: false
  foreplay: false
  main: false
  climax: false
  afterglow: false
