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.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/public/bluebey-studio/src/panel.js b/public/bluebey-studio/src/panel.js
index babeb59..bad4059 100644
--- a/public/bluebey-studio/src/panel.js
+++ b/public/bluebey-studio/src/panel.js
@@ -927,6 +927,41 @@ export function buildPanel(app, root) {
+ '「ツートン」は頭を左右2色に分けます(2色目を使います)。'
+ '決まったキャラクターの髪ではなく、よくあるマンガの記号として用意しました。'));
+ // --- 鼻ちょうちん: the snot bubble of a sleeping face.
+ faceSection = section(tabFace, '鼻ちょうちん');
+ const snotToggle = check({
+ label: '鼻ちょうちんを出す',
+ value: false,
+ onChange: (value) => { state.face.eyes.snot.enabled = value; app.actions.refresh('face'); },
+ });
+ faceSection.add(controlRow(null, snotToggle.el, { wide: true }));
+ const snotSize = slider({
+ label: '大きさ', min: 0.4, max: 2.2, step: 0.01, value: 1, format: (v) => v.toFixed(2),
+ onInput: (v) => { state.face.eyes.snot.size = v; app.actions.refresh('face'); },
+ });
+ faceSection.add(snotSize.el);
+ const snotBox = details(faceSection.body, 'こまかい設定(位置・色)');
+ const snotSliders = {
+ offsetX: slider({
+ label: 'よこの位置', min: -160, max: 160, step: 1, value: 0, format: (v) => `${Math.round(v)}`,
+ onInput: (v) => { state.face.eyes.snot.offsetX = v; app.actions.refresh('face'); },
+ }),
+ offsetY: slider({
+ label: 'たかさ', min: -160, max: 160, step: 1, value: 0, format: (v) => `${Math.round(v)}`,
+ onInput: (v) => { state.face.eyes.snot.offsetY = v; app.actions.refresh('face'); },
+ }),
+ };
+ for (const widget of Object.values(snotSliders)) snotBox.add(widget.el);
+ const snotColor = colorField({
+ label: '泡の色', value: '#e3ecff',
+ swatches: ['#e3ecff', '#ffffff', '#cfe0ff', '#bfe8d0'],
+ onChange: (v) => { state.face.eyes.snot.color = v; app.actions.refresh('face'); },
+ });
+ snotBox.add(snotColor.el);
+ snotBox.add(hint('寝ている顔の横に、鼻から出る泡を描きます。'
+ + '「ねている」ポーズと組み合わせると、いねむりしているように見えます。'
+ + '泡は鼻の横に出るので、位置は「よこの位置」「たかさ」で調整できます。'));
+
// --- mouth
faceSection = section(tabFace, '口');
@@ -2355,6 +2390,10 @@ export function buildPanel(app, root) {
for (const [key, widget] of Object.entries(headMarkSliders)) widget.set(state.face.eyes.headMark[key]);
headMarkColor.set(state.face.eyes.headMark.color);
headMarkColor2.set(state.face.eyes.headMark.color2 ?? '#ffffff');
+ snotToggle.set(state.face.eyes.snot.enabled === true);
+ snotSize.set(state.face.eyes.snot.size);
+ for (const [key, widget] of Object.entries(snotSliders)) widget.set(state.face.eyes.snot[key]);
+ snotColor.set(state.face.eyes.snot.color);
});
syncers.push(() => {