aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bluebey-studio/src/panel.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bluebey-studio/src/panel.js')
-rw-r--r--public/bluebey-studio/src/panel.js13
1 files changed, 11 insertions, 2 deletions
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();
},