diff options
| author | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-10-05 21:46:21 +0900 |
|---|---|---|
| committer | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-10-05 21:46:21 +0900 |
| commit | 7329ba8c8901ee095ad7316b8554c5e44431eebc (patch) | |
| tree | 471d3994df66e38a3bd12b38d2899193985c9f2f /public/bluebey-studio/src/hats.js | |
| parent | 27220fe6aa19f8e63be3984be1bc3288002252f7 (diff) | |
bluebey-studio: 縦書きのセリフとナレーション枠、コック帽改善、小物に鉛筆とコップなど
セリフを縦書き可能にし、縦書きのナレーションボックスを追加。ハートでも下まぶたを閉じられるようにし、ふつうの目の瞳を少し鼻側へ。HairPlateは髪が無いとき非表示(iPhoneの色ずれ対策)。コック帽をトック帽に、鉛筆とコップを小物に追加。
Diffstat (limited to 'public/bluebey-studio/src/hats.js')
| -rw-r--r-- | public/bluebey-studio/src/hats.js | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/public/bluebey-studio/src/hats.js b/public/bluebey-studio/src/hats.js index c639548..3fb65f3 100644 --- a/public/bluebey-studio/src/hats.js +++ b/public/bluebey-studio/src/hats.js @@ -60,19 +60,25 @@ function buildCap() { return group; } -/** コック帽: a tall white band under a puffy crown. */ +/** コック帽: a tall pleated toque - a cylindrical band under a big puffy crown. */ function buildChef() { const group = new THREE.Group(); const white = material('#f7f6f2'); const shade = material('#e6e3da'); - add(group, cylinder(0.94, 0.98, 0.62, 28), white, 0, 0.31, 0); - const puff = add(group, sphere(1.22, 24, 18), white, 0, 0.86, 0); + // The band: a tall cylinder that sits on the head. + add(group, cylinder(0.86, 0.92, 0.95, 28), white, 0, 0.475, 0); + add(group, cylinder(0.90, 0.90, 0.10, 28), shade, 0, 0.90, 0); + // The crown: a big squashed sphere ringed with lobes, so the top reads as the + // classic pleated toque rather than a plain dome. + const puff = add(group, sphere(1.24, 26, 20), white, 0, 1.30, 0); puff.scale.set(1, 0.82, 1); - for (let i = 0; i < 6; i += 1) { - const a = (i / 6) * Math.PI * 2; - const lobe = add(group, sphere(0.44, 14, 12), shade, Math.cos(a) * 0.86, 1.22, Math.sin(a) * 0.86); - lobe.scale.set(1, 0.85, 1); + for (let i = 0; i < 8; i += 1) { + const a = (i / 8) * Math.PI * 2; + const lobe = add(group, sphere(0.5, 14, 12), white, Math.cos(a) * 0.92, 1.52, Math.sin(a) * 0.92); + lobe.scale.set(1, 0.9, 1); } + const top = add(group, sphere(0.62, 16, 12), white, 0, 1.92, 0); + top.scale.set(1, 0.78, 1); return group; } |
