6 · キャラクターと表情
身体
recipe/engine/character.mjs の makeCharacter(spec) はリグを構築します。頭部半径 0.42、胴体 0.8、脚 0.52、腕 0.30 + 0.28。プロポーションはスタイルそのものです:大きなボールヘッド、上下2色に分割されたビーンボディ、細いアンスラサイト色のスティック四肢、肌色のミトン手、丸いコニャック色の靴。
const host = makeCharacter({
name: 'host', skin: SKIN.tan,
top: BRAND.blueCoral, bottom: BRAND.anthracite, split: 0.32, width: 1.0,
hair: 'curly', hairColor: '#2a1d18',
hat: null, glasses: true, beard: false,
face: { browColor: BRAND.anthracite, browThick: 3.4, mustache: null },
extras: torso => { /* クラバット、ボタン、バッジ、ツールベルトなどを追加 */ },
});
host.root.position.set(x, 0, z); place.scene.add(host.root);
| オプション | 値 |
|---|---|
skin | SKIN.light / fair / medium / tan / brown / deep、または任意の16進数。キャスト内で混在可能。 |
top, bottom, split, width | ビーンの2色、それらが交わる位置(高さの0~1)、幅係数(1.06でよりがっしりとした体型)。 |
hair | short(または cap)、bob、bun、ponytail、curly、spiky、bald、および2つの時代カツラ:newton(長いカール)、einstein(セルフグロー付きの乱れた白髪)。 |
hat / hatColor | cap、tophat(hatBand 付き)、helmet(丸いシェル)、hardhat、beret、crown。 |
glasses | true またはフレームの色。ペイントされた目の上に丸フレーム。 |
beard | true(髪の色)または任意の色。 |
face | { browColor, browThick, mustache }:眉の色と太さ、オプションのペイントされた口ひげの色。 |
extras(torso) | part(geometry, color) でコスチュームパーツを追加:クラバット、襟、ボタン、バッジ、ツール。 |
新しいトピックのためのキャラクターデザイン: まずシルエットを選びます(電話サイズでは髪型や帽子の形状が最も強い手がかりになります)。次にトップ用のブランドカラー1色、次に肌のトーンを選びます。歴史上の人物は私たちのトゥーンとして描かれます:時代の髪型と服装で十分です(ニュートンのカールしたカツラとRouge Noirのコート、アインシュタインの乱れた白髪、口ひげ、Blue Coralのセーター)。著作権で保護されたキャラクターを決してコピーしないでください。
顔を持つオブジェクト(リンゴ、惑星、分子、機械):faces.mjs の faceDecal(radius, { skin: <body colour> }) を与え、まぶたの色をボディカラーに設定し、オブジェクトのグループをプレイスの faceCamera リストに追加して、カメラの方を向くようにします。
表情
頭部前面のフラットなペイントデカール(faceDecal):眉、瞳孔とハイライトのある目、口、鼻はなし。すべて同じ形状ファミリーから。リップシンクはなし。顔が演技を行います。
表情(faces.mjs の EXPRESSIONS):neutral, content, sleepy, surprised, shocked, curious, thinking, eureka, delighted, smug, knowing, confused, worried(汗の雫付き)、proud(赤面)、no, wheee, dizzy(渦巻き目)、lookDown。新しい表情を追加するには、エントリをコピーし、眉 [inner, outer](度)、lid(0 開…1 閉)、look(瞳孔オフセット)、eye と pupil のスケール、mouth(flat, smile, smirk, side, wavy, o, grin, shout)を変更します。
表情の切り替え(リファレンスのルール、計測済み)
- まばたきを通してのみ切り替える:半閉じのフレーム1つ、全閉じのフレーム1つ、その後新しい表情。
- 新しい表情は強調する単語の2フレーム前(
W(i) - FACE)に表示されます。 - 表情間のモーフィングは禁止。
- 主人公は約1.2秒ごとに新しい表情を取得。オブジェクトはストーリービートで切り替え(リンゴは「違う」で
smug → shocked)。 - 長いホールド中の自然なまばたき:
blinksリストに時間を渡します。
rig.faceAt(t, [[0, 'curious'], [W(17) - FACE, 'smug']], [0.75, 6.2]); // 切り替え、その後自然なまばたき
objectFace.set('shocked'); // オブジェクト用インスタントセット
手と保持小道具
rig.handPos('L' | 'R' | 'both') は現在のポーズ後の手のワールド位置を返します。保持する小道具を毎フレームその位置に配置します(ニュートンの手にある本、アインシュタインが落とす前に持っているボウリング球)。rig.headPos() はフレーミング用の頭部中心を返します。
チェック項目
- 電話サイズで、すべてのキャラクターをシルエットだけで見分けられますか?
- まぶたの色は肌色またはボディカラーに合わせていますか?(透過まばたきを防ぐ)
- 顔は、演技をするすべてのショットでカメラの方を向いていますか?