diff options
| author | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-10-06 13:28:04 +0900 |
|---|---|---|
| committer | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-10-06 13:28:04 +0900 |
| commit | 18a12a5c94fc25c429e595a50e9201ecc31fb499 (patch) | |
| tree | f4f06fbc153f6dcde846c7ba61fbb5aa5931c1ee /public/bluebey-studio/src | |
| parent | 8f39a174d6c4415c7a4df418187090fb5e061983 (diff) | |
bluebey-studio: 口の「長さ」と「幅」を「幅」に統合
ふつうの口の「長さ」と「幅」は同じ倍率として掛け合わされていたため、「幅」1本にまとめた。既定値・プリセット・ランダムには影響なし。
Diffstat (limited to 'public/bluebey-studio/src')
| -rw-r--r-- | public/bluebey-studio/src/faceArt.js | 2 | ||||
| -rw-r--r-- | public/bluebey-studio/src/panel.js | 5 | ||||
| -rw-r--r-- | public/bluebey-studio/src/presets.js | 3 |
3 files changed, 4 insertions, 6 deletions
diff --git a/public/bluebey-studio/src/faceArt.js b/public/bluebey-studio/src/faceArt.js index 716fcab..8537fd8 100644 --- a/public/bluebey-studio/src/faceArt.js +++ b/public/bluebey-studio/src/faceArt.js @@ -1654,7 +1654,7 @@ export function drawMouth(ctx, p) { // use the whole canvas: a very wide mouth used to smear sideways off the plate. const cornerReach = L.corner.toX * cornerAmount; const halfChord = Math.min( - L.halfChord * clamp(p.width ?? 1, 0.2, 1.6) * clamp(p.length ?? 1, 0.2, 2.5), + L.halfChord * clamp(p.width ?? 1, 0.2, 1.6), Math.min(L.centreX - (edgeLeft + cornerReach), (edgeRight - cornerReach) - L.centreX), ); diff --git a/public/bluebey-studio/src/panel.js b/public/bluebey-studio/src/panel.js index bb409ef..871c896 100644 --- a/public/bluebey-studio/src/panel.js +++ b/public/bluebey-studio/src/panel.js @@ -1349,7 +1349,6 @@ export function buildPanel(app, root) { open: slider({ label: '開き', min: 0, max: 1, step: 0.01, value: 0, format: (v) => v.toFixed(2), onInput: (v) => { state.face.mouth.open = v; app.actions.refresh('face'); } }), round: slider({ label: 'Oの大きさ', min: 0, max: 1, step: 0.01, value: 0, format: (v) => v.toFixed(2), onInput: (v) => { state.face.mouth.round = v; app.actions.refresh('face'); } }), width: slider({ label: '幅', min: 0.2, max: 1.6, step: 0.01, value: 1, format: (v) => v.toFixed(2), onInput: (v) => { state.face.mouth.width = v; app.actions.refresh('face'); } }), - length: slider({ label: '長さ', min: 0.2, max: 2.5, step: 0.01, value: 1, format: (v) => v.toFixed(2), onInput: (v) => { state.face.mouth.length = v; app.actions.refresh('face'); } }), thickness: slider({ label: '太さ', min: 0.2, max: 3, step: 0.01, value: 1, format: (v) => v.toFixed(2), onInput: (v) => { state.face.mouth.thickness = v; app.actions.refresh('face'); } }), tilt: slider({ label: '傾き', min: -30, max: 30, step: 1, value: 0, format: (v) => `${Math.round(v)}°`, onInput: (v) => { state.face.mouth.tilt = v; app.actions.refresh('face'); } }), offsetY: slider({ label: '高さ', min: -140, max: 140, step: 1, value: 0, format: (v) => `${Math.round(v)}`, onInput: (v) => { state.face.mouth.offsetY = v; app.actions.refresh('face'); } }), @@ -1362,11 +1361,11 @@ export function buildPanel(app, root) { // まったく違う。形を切り替えると、その形で使うものだけを出す。 const mouthModeOf = (mouth) => (mouth.round > 0.004 ? 'round' : 'curve'); const mouthRowKeys = { - curve: ['smile', 'length', 'width', 'thickness', 'open', 'tongue', 'tonguePos', 'corners', 'cornerAngle', 'tilt', 'offsetY'], + curve: ['smile', 'width', 'thickness', 'open', 'tongue', 'tonguePos', 'corners', 'cornerAngle', 'tilt', 'offsetY'], round: ['round', 'width', 'thickness', 'tongue', 'tilt', 'offsetY'], }; // DOM order is fixed here; the mode only shows or hides rows. - const mouthRowOrder = ['round', 'smile', 'length', 'width', 'thickness', 'open', 'tilt', 'offsetY', 'tongue', 'tonguePos', 'corners', 'cornerAngle']; + const mouthRowOrder = ['round', 'smile', 'width', 'thickness', 'open', 'tilt', 'offsetY', 'tongue', 'tonguePos', 'corners', 'cornerAngle']; const mouthMode = segmented({ label: '口の形', options: [ diff --git a/public/bluebey-studio/src/presets.js b/public/bluebey-studio/src/presets.js index 64480a9..e4fe49f 100644 --- a/public/bluebey-studio/src/presets.js +++ b/public/bluebey-studio/src/presets.js @@ -354,8 +354,7 @@ export function defaultState() { source: 'parametric', // parametric | original visible: true, smile: 1, // 0 = straight line, 1 = the original smile, <0 = frown - width: 1, - length: 1, // extra multiplier on the smile line's length + width: 1, // the smile line's length (the chord); also the O's width thickness: 1, open: 0, // 0 = closed lips, 1 = wide open tilt: 0, // degrees |
