From 7329ba8c8901ee095ad7316b8554c5e44431eebc Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Mon, 5 Oct 2026 21:46:21 +0900 Subject: bluebey-studio: 縦書きのセリフとナレーション枠、コック帽改善、小物に鉛筆とコップなど MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit セリフを縦書き可能にし、縦書きのナレーションボックスを追加。ハートでも下まぶたを閉じられるようにし、ふつうの目の瞳を少し鼻側へ。HairPlateは髪が無いとき非表示(iPhoneの色ずれ対策)。コック帽をトック帽に、鉛筆とコップを小物に追加。 --- public/bluebey-studio/src/panel.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'public/bluebey-studio/src/panel.js') diff --git a/public/bluebey-studio/src/panel.js b/public/bluebey-studio/src/panel.js index 9e7a9ac..6d8e8ba 100644 --- a/public/bluebey-studio/src/panel.js +++ b/public/bluebey-studio/src/panel.js @@ -1373,12 +1373,13 @@ export function buildPanel(app, root) { options: [ { value: 'caption', label: '①' }, { value: 'caption2', label: '②' }, + { value: 'narration', label: 'ナレーション' }, ], value: 'caption', onChange: (value) => { activeCaption = value; sync(); }, }); captionSection.add(captionBubbleSegment.el); - captionSection.add(hint('吹き出しは 2 つまで出せます。①と②を切り替えて、それぞれ別の位置・形・色にできます。')); + captionSection.add(hint('吹き出しは①と②の2つ、ナレーション枠が1つ出せます。切り替えて、それぞれ別の位置・形・色・縦書きにできます。')); const captionToggle = check({ label: 'この吹き出しを出す', @@ -1395,6 +1396,13 @@ export function buildPanel(app, root) { }); captionSection.add(captionText.el); + const verticalToggle = check({ + label: '縦書きにする', + value: false, + onChange: (v) => { cap().vertical = v; app.actions.refresh('caption'); sync(); }, + }); + captionSection.add(controlRow(null, verticalToggle.el, { wide: true })); + captionSection.add(buttons({ label: '例', items: CAPTION_PRESETS.map((preset) => ({ @@ -2998,6 +3006,7 @@ export function buildPanel(app, root) { const bubble = cap() ?? {}; captionToggle.set(bubble.enabled === true); captionText.set(bubble.text ?? ''); + verticalToggle.set(bubble.vertical === true); bubbleSegment.set(bubble.bubble ?? 'round'); tailSegment.set(bubble.tail ?? 'left'); for (const [key, widget] of Object.entries(captionSliders)) { @@ -3043,7 +3052,7 @@ export function buildPanel(app, root) { onRigChanged: syncBones, /** Which bubble the caption controls are editing (a drag on it calls this). */ selectCaption(key) { - if (key !== 'caption' && key !== 'caption2') return; + if (key !== 'caption' && key !== 'caption2' && key !== 'narration') return; activeCaption = key; sync(); }, -- cgit v1.3.1