3.แบบจำลองการแทนค่า (Representation model)
3.1.กลุ่ม (Groups)
P ถูกแบ่งเป็น เจ็ดกลุ่มต่อเนื่อง รวม 71 มิติ:
| รหัส | กลุ่ม | บทบาท |
|---|---|---|
a | แขน (arm) | การเคลื่อนไหว (articulation) |
w | การหันฝ่ามือ (palm facing) | การเคลื่อนไหว |
g | นิ้วมือ (fingers) | การเคลื่อนไหว |
h | ศีรษะ (head) | การเคลื่อนไหว + การแสดงออก |
b | ลำตัว (body) | การเคลื่อนไหว + การแสดงออก |
f | ใบหน้า (face) | การเคลื่อนไหว + การแสดงออก |
m | ปาก (mouth) | การเคลื่อนไหว + การแสดงออก |
และ เงื่อนไขเสริม (hyper conditions, §3.4): ทิศการมอง (eye look-at), รูปปาก (viseme), การสัมผัส (contact), และจุดยึดแขน (anchor) — ช่องเงื่อนไขที่พกไปคู่กับเวกเตอร์ ไม่ใช่มิติของปริภูมิแฝง.

คำอธิบาย: a แขน (8: 4 × ซ้าย/ขวา) · w การหันฝ่ามือ (6: 3 × ซ้าย/ขวา) · g นิ้วมือ (32: 16 × ซ้าย/ขวา) · h ศีรษะ (3) · b ลำตัว (3) · f ใบหน้า (8) · m ปาก (11) — รวม 71 มิติ. h b f m รับเดลตาการแสดงออกได้ด้วย (§3.3). เงื่อนไขเสริม (ทิศการมอง รูปปาก contact anchor) ไม่แสดงในรูป: พกไปคู่กับ P ไม่ได้อยู่ใน P (§3.4).
กลุ่มที่เป็นท่าทางล้วน (
a w g) ต้องไม่ (MUST NOT) มีค่าเดลตาการแสดงออก — เข้ารหัสรูปแบบล้วน ๆ. กลุ่มที่ใช้ใน latent อารมณ์ได้คือh b f mเท่านั้น (§3.3).
3.2.ข้อกำหนดของค่า (Value convention)
- แต่ละมิติต่อเนื่องถูกทำให้เป็นบรรทัดฐานในช่วงปิด [−1, 1].
- ผู้บริโภคต้อง (MUST) หนีบค่าที่เกินช่วงให้อยู่ใน [−1, 1].
- ค่าหน่วยจริงของมิติถอดได้จากการดีนอร์มัลไลซ์ด้วย
maxและโหมด: bipolar (ค่าเริ่มต้น); unipolar (uni) สำหรับแกนที่ไม่มีความหมายทางลบ (เช่นa_spread); circular เก็บเป็นองศาโดยตรงและวนรอบที่max. การแมปนี้เป็นเพียงความ สะดวกในการถอดรหัส — P ที่ส่งจริงคือnที่เป็นบรรทัดฐานเสมอ. - กรอบอ้างอิงร่างกายมาตรฐานคือ ยึดคอเป็นศูนย์กลาง และเป็นระบบมือขวา: +x = ขวาของร่างกาย, +y = ขึ้น, +z = เข้าหากล้อง. ตำแหน่งแขนใช้หน่วยแกนที่คาลิเบรตแล้วตาม §4.1; P เองเป็นค่าบรรทัดฐาน ไม่ใช่ระยะดิบ.
- ความถนัดซ้าย/ขวามีนัยสำคัญ. ต้องไม่ (MUST NOT) สลับซ้าย/ขวาโดยเงียบ ๆ; การกลับด้าน (mirroring) เป็นเรื่อง
ความถูกต้อง ไม่ใช่เรื่องความสวยงาม. มิติที่มีด้านจะมีเป็นคู่
_l/_rที่ใช้นิยามเดียวกัน; ค่าบรรทัดฐาน เท่ากันทั้งสองด้าน = ท่า สมมาตร และแกนแบบ x จะถูกกลับเครื่องหมายสำหรับด้านขวาตอนถอดรหัส.

คำอธิบาย: จุดกำเนิดอยู่ที่โคนคอ บนแนวกึ่งกลางลำตัว; +x = ขวาของร่างกาย (ซ้ายของผู้ดู เพราะอวาตาร์หันหน้าเข้าหาผู้ดู), +y = ขึ้น, +z = เข้าหากล้อง. R/L คือขวาและซ้ายของอวาตาร์เอง. ค่าบรรทัดฐานเท่ากันบนคู่ _l/_r = ท่าสมมาตร; แกนแบบ x ถูกกลับเครื่องหมายสำหรับด้านขวาตอนถอดรหัส.
3.3.ท่าทาง ⊕ การแสดงออก (Pose ⊕ Expression)
IPL มีสองชั้นซ้อนกัน:
- pose — P ฐานทั้งเจ็ดกลุ่ม.
- expression — เดลตา แบบบวกเพิ่ม บนกลุ่มอารมณ์
h b f mเท่านั้น. - α — เกน (gain) ต่อการใช้งานในช่วง [0, 1] ที่ปรับขนาดชั้นการแสดงออก.
ผู้บริโภคที่ไม่สนใจการแสดงออก ต้อง (MUST) ยังเรนเดอร์ pose ได้ถูกต้อง. การแสดงออกไม่เพิ่มมิติ
ใหม่ในลำดับทะเบียน; เป็นเดลตาคู่ขนานเหนือกลุ่มอารมณ์.
3.4.เงื่อนไขเสริมและการปรับปรุงผลลัพธ์ (Hyper conditions & post-processing)
นอกเหนือจากเวกเตอร์ต่อเนื่อง IPL พก เงื่อนไขเสริม (hyper conditions) — ช่องเงื่อนไข/ ไม่ต่อเนื่องที่มีชื่อ ซึ่งกำกับวิธีถอดรหัส P โดยไม่เป็นมิติของปริภูมิแฝง. เงื่อนไขเหล่านี้ ถูกออกแบบ (ไม่ได้เรียนรู้) ไม่กินตำแหน่งในทะเบียน ไม่ประมาณค่าเป็นสเกลาร์ และเมื่อถอดออก ต้อง (MUST) ได้การถอดรหัสบริสุทธิ์ของ P กลับคืน. ค่าอื่นทั้งหมดยังเป็นปริภูมิแฝงเช่นเดิม.
ลำดับการถอดรหัสเต็มคือ:
P(pose) ⊕ α·P(expression) ──ถอดรหัส──▶ ท่าริก ──ปรับปรุงผลลัพธ์──▶ ร่างที่เรนเดอร์
(ปริภูมิแฝง, §3.3) (ตา/รูปปากถูกใช้) (contact/anchor ถูกแก้)
เงื่อนไขเสริมมีสี่ช่อง (ทะเบียน §4.8):
eye_lookat,viseme— เงื่อนไขตอนถอดรหัส: ใช้ระหว่างถอด P เป็นใบหน้า/ปาก ที่เรนเดอร์ (เป้าการมอง, มอร์ฟการขยับปาก). (จัดหมวดใหม่จาก "ช่องเชิงหมวดหมู่" ในร่างก่อนเผยแพร่ — ความหมายเดิม เพียงจัดกลุ่มใหม่.)contact— เงื่อนไขของการปรับปรุงผลลัพธ์:{mover, target}บนจุดอ้างอิงร่างกาย หมายถึง "จุด mover ไปสัมผัสจุด target". ถูกแก้บนร่างที่ถอดรหัสสมบูรณ์แล้ว — หลัง pose ⊕ expression และการถอดรหัสริกครบ — โดยขยับเฉพาะสายแขนฝั่ง mover ให้จุดทั้งสอง ทับกัน; ฝั่ง target และลำตัวต้องไม่ (MUST NOT) ขยับ. ปริภูมิแฝงพามือเข้าใกล้อยู่แล้ว; contact ปิดช่องว่างเล็ก ๆ ที่เหลือ (สัดส่วนต่างกันต่อริก) ให้การสัมผัสแม่นยำบนทุกริก. เป้าที่เอื้อมไม่ถึงให้หนีบไปยังจุดใกล้สุดที่เอื้อมได้.anchor— เงื่อนไขของการปรับปรุงผลลัพธ์ แยกต่อข้างแขน:{l?: {site}, r?: {site}}บนจุดอ้างอิงร่างกาย หมายถึง "ตำแหน่งแขนข้างนี้ (a_hand_*) วัดจากจุดนี้แทนคอ". แต่ละรายการอยู่บนคีย์เฟรมของแขนข้างตัวเอง — แขนที่คีย์เฟรมไม่มี anchor จะไม่ถูกขยับ (แขนที่พักอยู่คงวัดจากคอเช่นเดิม). ถูกแก้บนร่างที่ถอดรหัสสมบูรณ์แล้ว โดยเลื่อนเป้าแขนข้างที่ anchor ด้วยเดลตาโลก site − จุด neck บนริกที่โพสแล้ว (ดังนั้นanchor: neck= ไม่มีผล โดยโครงสร้าง) แล้วแก้ IK ใหม่; ลำตัวต้องไม่ (MUST NOT) ขยับ. P เดียวกัน → ตำแหน่งถูกต้องบนทุกริก (คาลิเบรตจุดต่อริกเป็นตัวถอดเดลตา). จุดที่ใช้ได้:forehead,mouth,navel,shoulder_l,shoulder_r(และneck= ค่าเริ่มต้น/ไม่มีผล) — จุดบนมือใช้ไม่ได้ (วนซ้ำ). ลำดับความสำคัญ:contact>anchor— ฝั่งที่ contact ทำงาน anchor ถูกละเลย (contact กำหนดมือนั้นทั้งหมด); อีกฝั่งยัง anchor ตามปกติ. ริกที่ไม่มีจุดให้ถอดได้ให้ถอยกลับไปวัดจากคอ (นุ่มนวล ไม่เป็นข้อผิดพลาด).
จุดอ้างอิงร่างกาย (body sites). โดเมนของ contact คือชุดจุดอ้างอิงที่มีชื่อ 32 จุดบนร่างที่
ถอดรหัสแล้ว: neck, navel, forehead, mouth และต่อข้าง (_l/_r) shoulder,
elbow, wrist, palm บวก {thumb,index,middle,ring,pinky}_{base,tip}.
จุดหนึ่งถอดเป็นจุดโลกด้วย กระดูกหลัก + ออฟเซ็ตเชิงกระดูก (+ กระดูกรองเสริมได้);
ออฟเซ็ตคาลิเบรตต่อริกและเป็นสถานะของตัวเรนเดอร์ ไม่ใช่ส่วนของ P.
ข้อจำกัด: mover ต้อง (MUST) เป็นจุดบนมือ; target ต้องไม่ (MUST NOT) อยู่บนมือเดียวกับ mover
และไม่ใช่ศอกข้างเดียวกับ mover. คีย์เฟรมหนึ่งมี contact ได้ไม่เกิน หนึ่งช่อง.