Tải bản đầy đủ (.pdf) (92 trang)

Ứng dụng mô hình chuyển động hình nhân 3D vào tương tác người máy và E-learning

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 92 trang )




ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




ĐÀO MINH THƯ




Ứng dụng mô hình chuyển động hình nhân 3D
vào tương tác người máy và E-learning




luËn v¨n th¹c sÜ CÔNG NGHỆ THÔNG TIN









Hµ néi - 2005







ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




ĐÀO MINH THƯ




Ứng dụng mô hình chuyển động hình nhân 3D
vào tương tác người máy và E-learning


Mã số : 1.01.10


luËn v¨n th¹c sÜ CÔNG NGHỆ THÔNG TIN



Người hướng dẫn khoa học: TS. Bùi Thế Duy






Hµ néi - 2005


 – 1


Mở ñầu
Năm 1955, khi mở cửa lần ñầu công viên Disney ở California (Mỹ), công ty
Disney ñã thiết kế một mô hình công viên 3 chiều dùng cho chiến dịch quảng cáo và
ñiều này ñã ñem lại một hiệu quả không ngờ. Chiến dịch quảng cáo ñã thành công rực
rỡ và kết quả là du khách ñổ ñến Disney Land ngày càng nhiều (theo New York Times,
2001).
Năm 2000, trò chơi Final Fantasy ñã gây nên một cơn sốt trong giới chơi game
ở Việt Nam và thế giới. Những mô hình nhân vật 3 chiều ñược trau chuốt tới từng sợi
tóc, nếp áo, làn da; sự chân thực trong mỗi chuyển ñộng, màu sắc ñã hoàn toàn hút hồn
các game thủ. Ngoài sự hấp dẫn về ý tưởng của trò chơi, yếu tố "ñẹp và sống ñộng"
trong các mô hình 3D của Final Fantasy là một trong những nguyên nhân khiến trò
chơi này trở thành một trong những game hấp dẫn nhất [44].
Hai ví dụ trên ñã cho thấy sự thu hút của các mô hình 3 chiều. Các ứng dụng
máy tính sử dụng mô hình 3 chiều xuất hiện ngày càng nhiều và tỏ rõ lợi thế: sinh
ñộng, chân thực và hiệu quả. Xu hướng nghiên cứu xây dựng các hệ thống tương tác
người máy tại nhiều trường ñại học và phòng thí nghiệm bắt ñầu từ những thập kỷ 90.
Một số công trình nghiên cứu phục vụ cho hệ thống tương tác người máy ñã ñược nêu
trong phần phụ lục 1.
Ở Việt Nam, công nghệ 3D chủ yếu ñược dùng trong quảng cáo và kiến trúc,
việc ñưa 3D vào sâu hơn trong các lĩnh vực khác như giáo dục, y tế… còn rất hiếm. Cụ
thể trong luận văn này tôi muốn ñề cập ñến việc nghiên cứu và ứng dụng các hình nhân

3D vào thực tế mà một trong những ứng dụng có thể kể ñến là việc biểu diễn ngôn ngữ
ký hiệu phục vụ người khiếm thính.
Hiện nay, những chương trình, dự án nhằm cải thiện và nâng cao chất lượng
Giáo dục hòa nhập trẻ khiếm thính và các dịch vụ phục vụ cho người khiếm thính
người khiếm thính ở Việt Nam ñang phát triển khá mạnh [47].
 – 2


Với ñề tài “Ứng dụng mô hình chuyển ñộng hình nhân 3D vào tương tác
người máy và E-learning”, tôi mong muốn xây dựng nên một chương trình mô phỏng
việc biểu diễn ngôn ngữ ký hiệu phục vụ cho người khiếm thính trong lĩnh vực giao
tiếp truyền thông, thêm vào ñó hoàn toàn có thể sử dụng chương trình trong các ứng
dụng E-learning khác dành cho người bình thường. Chương trình ñược xây dựng theo
phương pháp ñánh vần: một từ gồm nhiều chữ cái, mỗi chữ cái ñược mô tả bởi một ký
hiệu do tay thực hiện, như vậy mỗi từ sẽ là một tập hợp các ký hiệu thể hiện bằng tay.
Người khiếm thính sẽ ñánh vần theo ký hiệu ñể biết ñược từ gì ñược “nói” lên. Ví dụ
khi muốn nói “Xin chào”, người nói sẽ biểu diễn 7 ký hiệu theo thứ tự tương ứng với
các chữ cái “x” “i” “n” “c” “h” “a” “o”. Phương pháp này tuy có nhược ñiểm là tốc ñộ
chuyển ñổi chậm nhưng lại có lợi thế là tham số ñầu vào không nhiều, có thể tạo ra các
từ tùy ý mà không cần dùng bộ từ ñiển.
Kết cấu của luận văn gồm 4 chương:
Chương 1 : Giới thiệu về H-anim bao gồm: khái niệm, các thành phần cần có theo
quy ñịnh của một hình nhân theo chuẩn H-anim, phân cấp trong khung xương của một
hình nhân và cách ñặt tên cho từng khớp theo chuẩn, các ñiểm ñặc biệt trên cơ thể
người và cách thức xây dựng mô hình 3D.
Chương 2 : Giới thiệu về một số ngôn ngữ lập trình 3D hiện nay
Chương 3 : Trình bày về ngôn ngữ lập trình ñồ họa 3D (VRML và Java3D) sử dụng
ñể xây dựng chương trình.
Chương 4 : Thực hiện bài toán. Giới thiệu về ngôn ngữ dấu hiệu và các chuẩn hiện
thời. Xây dựng chương trình FamiliarHand biểu diễn ngôn ngữ ký hiệu theo ñiều khiển

bằng ngôn ngữ lập trình Java3D.
Phần Kết luận ñánh giá các công việc ñã làm và hướng phát triển tiếp theo.
 – 3


Chương 1 - H-ANIM
1.1. Khái nim H-anim
Cùng với sự tăng trưởng của lĩnh vực ñồ họa 3D trong những thập kỷ vừa qua,
nhiều phần mềm làm nhiệm vụ thiết kế mô hình 3D và kiến tạo các hoạt ñộng phỏng
sinh học của các mô hình ñó ñã và ñang nổi lên hết sức ñáng chú ý. Một số hệ thống ñã
ñược xây dựng nhằm mục ñích tự hiệu chỉnh những cử ñộng của mô hình người trong
thế giới ảo. Vấn ñề khó khăn nẩy sinh trong quá trình sử dụng nhiều gói phần mềm và
hệ thống dạng này là việc trao ñổi thông tin. Thiếu một hệ thống khung chuẩn trong
truyền thông thường bó buộc các nhà xây dựng animation và các studio hiệu chỉnh cử
ñộng phải phát triển những giải pháp riêng mang tính ñộc quyền nhằm làm mịn các
bước chuyển tiếp giữa hệ thống và phần mềm mà họ ñang dùng.
ISO (International Standard Organization) ñịnh rõ khái niệm H-Anim, là một
hình dung mang tính khái quát về việc mô hình hóa các hình nhân 3D. ISO cũng mô tả
một cách thức chuẩn ñể biểu diễn các hình nhân này, theo ñó, cho phép dùng một công
cụ (có thể của nhà cung cấp A) ñể xây dựng nên mô hình hình nhân 3 chiều, sau ñó lại
dùng công cụ khác (có thể của nhà cung cấp B) ñể ñiểu khiển các cử ñộng của hình
nhân này.
Mục tiêu mà H-Anim hướng tới là:
• Khả năng tương thích: Các ñặc tính của một hình nhân H-Anim sẽ phải ñược
diễn ñạt thành công ở bất cứ bộ duyệt cơ bản nào.
• Tính mềm dẻo linh hoạt: Không có giới hạn trong vấn ñề quy ñịnh xem kiểu
ứng dụng nào sẽ ñược phép dùng các hình nhân H-Anim.
• Tính ñơn giản: Loại bỏ các hình nhân ra khỏi ứng dụng một cách dễ dàng khi
không cần thiết hoặc bổ sung thêm hình nhân mới khi cần.
Với 3 mục tiêu trên, cần phải ñịnh rõ các chi tiết kỹ thuật ñể có thể truy nhập vào biểu

ñồ phân cấp các khớp trực tiếp của hình nhân cũng như các ñỉnh của khối hình học có
 – 4


nhiệm vụ cấu thành nên các ñoạn cơ thể một mô hình người theo một cách thức cho
phép nhằm tạo nên các hình nhân có khả năng thực hiện các cử ñộng [15].
1.2. Các thành phn ca mt H-Anim
ðối tượng H-Anim bao gồm 5 thành phần [29]:
• Humanoid
• Joint
• Segment
• Site
• Displacer
 – 5



Hình 1: Các thành phần của một H-Anim
 – 6


1.2.1. Humanoid
Là gốc của mô hình H-Anim, ñối tượng này cho biết cơ chế gắn kết tất cả các
thành phần của hình nhân. Cụ thể hơn, Humanoid là một container chứa ñựng các
thành phần ñịnh nghĩa nên hệ khung xương, hình khối và các giới hạn của mô hình
hình nhân H-Anim. Các thành phần này bao gồm các ñối tượng Joint, Segment,
Site và Displacer, chúng ñịnh rõ phần lớn các chi tiết của mô hình hình nhân H-
Anim. Ngoài ra nó còn mang thông tin về tác giả, bản quyền và những hạn chế thường
gặp của mô hình. Sau ñây là ví dụ mô tả lớp ñối tượng Humanoid dùng cú pháp của
VRML V2.0 utf8.

PROTO Humanoid [
exposedField SFVec3f center 0 0 0
exposedField MFNode humanoidBody [ ]
exposedField MFString info [ ]
exposedField MFNode joints [ ]
exposedField SFString name ""
exposedField SFRotation rotation 0 0 1 0
exposedField SFVec3f scale 1 1 1
exposedField SFRotation scaleOrientation 0 0 1 0
exposedField MFNode segments [ ]
exposedField MFNode sites [ ]
exposedField SFVec3f translation 0 0 0
exposedField SFString version "1.1"
exposedField MFNode viewpoints [ ]
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize -1 -1 -1
]
 – 7


Lưu ý rằng “exposedField” là các trường mà scrip có thể truy nhập ñược ñể ñọc
dữ liệu, còn “field” thì không.
1.2.2. Joint
Là ñối tượng mô tả khớp nối của mô hình H-Anim. Các ñối tượng Joint ñược
tổ chức thành cấu trúc phân cấp mô tả mối liên hệ cha-con mang tính thừa kế của các
khớp trong hệ khung xương. Joint cũng chính là các container mang thông tin xác
ñịnh tên và thuộc tính của mỗi khớp trong hệ khung xương. Ví dụ mô tả lớp ñối tượng
Joint dùng cú pháp của VRML V2.0 utf8 như sau:
PROTO Joint [
exposedField SFVec3f center 0 0 0

exposedField MFNode children []
exposedField SFRotation limitOrientation 0 0 1 0
exposedField MFFloat llimit []
exposedField SFString name ""
exposedField SFRotation rotation 0 0 1 0
exposedField SFVec3f scale 1 1 1
exposedField SFRotation scaleOrientation 0 0 1 0
exposedField MFFloat stiffness [1 1 1]
exposedField SFVec3f translation 0 0 0
exposedField MFFloat ulimit []
]
1.2.3. Segment
Là ñối tượng mô tả các ñoạn chi của mô hình H-Anim. Về mặt vật lý, chúng là
vật thể trung gian giữa các khớp xương. Ví dụ cẳng tay nối giữa khớp cùi chỏ và khớp
cổ tay, cẳng chân nối giữa khớp ñầu gối và khớp cổ chân Ví dụ mô tả lớp ñối tượng
Segment dùng cú pháp của VRML V2.0 utf8 như sau:
 – 8


PROTO Segment [
eventIn MFNode addChildren
eventIn MFNode removeChildren
exposedField SFVec3f centerOfMass 0 0 0
exposedField MFNode children []
exposedField SFNode coord NULL
exposedField MFNode displacers []
exposedField SFString name ""
exposedField SFFloat mass 0
exposedField SFVec3f momentsOfInertia 1 1 1
field SFVec3f bboxCenter 0 0 0

field SFVec3f bboxSize -1 -1 -1
]
1.2.4. Site
Mỗi Segment có thể có một số nút Site. ðối tượng này ñịnh nghĩa một số vị
trí ñặc biệt có liên quan ñến Segment.
ðối tượng Site ñược sử dụng nhằm 3 mục ñích:
• ðịnh nghĩa ñiểm kết nối cho các ñối tượng phụ như quần áo và trang sức.
• ðịnh nghĩa vị trí cho camera ảo trong khung tham chiếu của một ñối tượng
Segment.
• ðịnh nghĩa vị trí “end-effector” dùng trong các hệ thống IK (inverse kinematic).
[xem giải thích trong phụ lục 2]
Ví dụ mô tả lớp ñối tượng Site dùng cú pháp của VRML V2.0 utf8 như sau:
PROTO Site [
eventIn MFNode addChildren
eventIn MFNode removeChildren
 – 9


exposedField SFVec3f center 0 0 0
exposedField MFNode children []
exposedField SFString name ""
exposedField SFRotation rotation 0 0 1 0
exposedField SFVec3f scale 1 1 1
exposedField SFRotation scaleOrientation 0 0 1 0
exposedField SFVec3f translation 0 0 0
]
1.2.5. Displacer
Hình dạng của từng ñối tượng mạng lưới có thể biến ñổi tùy theo yêu cầu của
ứng dụng. Ở mức cơ bản nhất, sự biến ñổi này chính là thao tác sửa ñổi dữ liệu lưu
trong trường field của ñối tượng mạng lưới. Trong trường hợp các mô hình khớp nối

(articulated avatar) thì ñối tượng mạng lưới thuộc ñối tượng Segment. Trong
trường hợp các mô hình lưới không phẳng (deformable mesh avatar) thì ñối tượng
mạng lưới ñược xác ñịnh trong trường skin của ñối tượng Humanoid. Chi tiết này
rất ñáng chú ý vì nó xác ñịnh các nhóm ñỉnh trong một mạng lưới. Ví dụ: trình ứng
dụng có thể cần nhận biết những ñỉnh nào thuộc phần ñầu bao gồm cả lông mày bên
trái. Các thông tin này ñược lưu trong nút Displacer.
Dữ liệu lưu trong Displacer ñược coi như một “gợi ý chỉ dẫn” trong trường
hợp ta cần dịch chuyển mỗi ñỉnh trong mạng lưới. Với mô hình khớp nối thì ñối tượng
Displacer ñược lưu trong trường displacer của ñối tượng Segment. Còn ñối với
mô hình lưới không phẳng thì ñối tượng Displacer ñược lưu trong trường displacer
của ñối tượng Joint. Các thông tin gọi là ñộ dịch chuyển (displacements) này, ñược
xác ñịnh trong phạm vi của ñối tượng Joint và biến ñổi theo phạm vi của
Humanoid. Sau ñó bộ render sẽ căn cứ vào chúng ñể áp vào mạng lưới khi render
mô hình lưới thành mô hình 3 chiều thực sự.
 – 10


ðối tượng Displacer có 3 mức. Ở mức ñộ cơ bản nhất, nó ñơn giản chỉ dùng
ñể nhận biết các ñỉnh tương ứng với một ñặc trưng ñặc biệt nào ñó trên mạng lưới. Ở
mức hai, nó biểu thị một hoạt ñộng cơ bắp ñặc biệt nào ñó mà hoạt ñộng này lại biến
ñổi các ñỉnh theo các hướng khác nhau. Ở mức ñộ thứ ba, Displacer biểu thị cấu hình
hoàn chỉnh của các ñỉnh trong mạng lưới. Ví dụ, trường hợp một mô hình 3 chiểu biểu
thị khuôn mặt thì mỗi ñối tượng Displacer sẽ biểu thị gương mặt với một sắc thái nào
ñó (vui, rất vui, buồn, rất buồn, cười mỉm, cười to, bất hạnh, giận dữ…).
Mỗi ñối tượng Displacer xác ñịnh một sơ ñồ các vị trí gọi là “ñích hình vị”
(morph target), nó ñược dùng ñể biến ñổi thuộc tính ñộ dịch chuyển của mô hình. Mức
ñộ co dãn của ñộ dịch chuyển trong mỗi ñối tượng Displacer có thể ñược truyền như
là một tham số từ bên ngoài.
Các ñối tượng Displacer ñược sử dụng với mục ñích chủ yếu là ñiều khiển các
hình thái của khuôn mặt, tuy nhiên ta cũng có thể sử dụng chúng cho các phần cơ thể

khác nhau của hình nhân. Ví dụ, dùng ñiều khiển việc cánh tay sẽ thay ñổi hình dáng
như thế nào khi cánh tay gập lại, mô phỏng việc các bắp thịt sẽ căng lên ra sao…
Ví dụ mô tả lớp ñối tượng Site dùng cú pháp của VRML V2.0 utf8 như sau:
Displacer {
coordIndex [ 7, 12, 24, 18 ]
displacements [ 0 0.0025 0, 0 0.005 0, 0 0.0025 0, 0 0.001 0 ]
name “l_eyebrow_raiser_action”
}
1.3. Cây phân cp khung xng
Cũng giống như một cơ thể người, hình nhân 3D cũng có bộ khung xương. ðây
là cơ sở ñể tiến hành mô phỏng các chuyển ñộng của hình nhân 3D. Khung xương
trong một mô hình 3 chiều chính là tập hợp dạng cây của các ñối tượng Joint của mô
hình ñó.
 – 11



Hình 2: Mô hình người và cây khung xương
1.3.1. Mức phân cấp (LOA - Level Of Articulation)
Các mô hình H-Anim có thể cử ñộng ñược là nhờ thao tác biến ñổi thông số
transform của các khớp, các thông số này ñược ghi trong ñối tượng Displacer. Tính
chân thực trong chuyển ñộng của mô hình 3D phụ thuộc rất lớn vào số lượng các khớp
và các ñoạn chi. Số lượng khớp và ñoạn chi càng nhiều, mô hình càng tinh vi và
chuyển ñộng càng mềm mại, chân thực. ISO quy ñịnh rằng một mô hình H-Anim phải
có ít nhất là một Joint gốc có tên là HumanoidRoot. Tất nhiên, trong thực tế số
lượng Joint luôn nhiều hơn một. Khái niệm mức phân cấp - LOA (Level Of
Articulation) dùng ñể chỉ số lượng Joint ñược ñịnh nghĩa trong một mô hình hình
nhân. Mô hình hình nhân có từ 14 Joint trở lên ñược gọi là “mức phân cấp thấp”, mô
hình hình nhân có từ 72 Joint trở lên ñược gọi là “mức phân cấp cao”. Mỗi cây phân
cấp khung xương chỉ chứa duy nhất một ñối tượng Joint có tên HumanoidRoot,

ñây là mức thấp nhất trong cây phân cấp. ISO quy ñịnh có tất cả 4 mức phân cấp. ðể
dễ hình dung các bạn có thể xem các hình minh họa dưới ñây, chúng là kết quả của các
file VRML v2.0 ñược coding theo từng LOA.
 – 12


- LOA mức 0 chỉ hỗ trợ một ñối tượng Joint là HumanoidRoot.

Hình 3: LOA mức 0
- LOA mức 1 hỗ trợ cây phân cấp mức thấp.

Hình 4: LOA mức 1
 – 13


- LOA mức 2 hỗ trợ hệ xương có xương sống ñược ñơn giản hóa.

Hình 5: LOA mức 2
- LOA mức 3 hỗ trợ cây phân cấp ñầy ñủ của một H-Anim.

Hình 6: LOA mức 3
 – 14


1.3.2. ISO ñặt tên cho các ñối tượng Joint
Bây giờ ta thử tìm hiểu về sơ qua về cấu tạo cơ thể người ñể ñề xuất cây phân
cấp khung xương thích hợp cho hình nhân 3D mô phỏng khung xương người. Hệ
xương trong cơ thể người gồm các khúc xương (cẳng tay, bàn tay và bàn chân) nối với
các khớp (như khuỷu tay, cổ tay và mắt cá chân). Khi các khớp xoay sẽ kéo theo các
xương chuyển ñộng, và kéo theo sự chuyển ñộng của cơ thể tùy theo phạm vi ảnh

hưởng của khớp xương. Ví dụ khi ta xoay cổ tay thì các ngón tay sẽ chuyển ñộng
nhưng các bộ phận khác trên cơ thể thì không. Khi ta co ñầu gối trái thì chỉ kéo theo
cẳng chân trái, ñùi trái, bàn chân trái và các ngón chân trên bàn chân trái chuyển ñộng,
còn các bộ phận khác vẫn ñứng yên. Bộ khung của một mô hình H-Anim ñược xây
dựng như một dãy các ñối tượng Joint lồng nhau, liên kết giữa các ñối tượng Joint là
các ñối tượng Segment. ISO ñịnh nghĩa tên của các ñối tượng Joint như sau:
Các ñối tượng Joint của thân
l_hip l_knee l_ankle l_subtalar

l_midtarsal

l_metatarsal

r_hip r_knee r_ankle r_subtalar

r_midtarsal

r_metatarsal

vl5 vl4 vl3 vl2 vl1 vl5
vt12 vt11 vt10 vt9 vt8 vt7
vt6 vt5 vt4 vt3 vt2 vt1
vc7 vc6 vc5 vc4 vc3 vc2
l_sternociavicular

l_acromioclavicular

l_shouder

l_elbow l_wrist

r_sternociavicular

r_acromioclavicular

r_shouder

r_elbow r_wrist
sacroiliac (pelvis)

skullbase HumanoidRoot

 – 15



Các ñối tượng Joint của bàn tay
l_pinky0 l_pinky1 l_pinky2 l_pinky3
r_pinky0 r_pinky1 r_pinky2 r_pinky3
l_ring0 l_ring1 l_ring2 l_ring3
r_ring0 r_ring1 r_ring2 r_ring3
l_middle0

l_middle1

l_middle2

l_middle3

r_middle0


r_middle1

r_middle2

r_middle3

l_index0 l_ index1 l_index2 l_index3
r_index0 r_index1 r_index2 r_index3
l_thumb1 l_thumb2 l_thumb3
r_thumb1 r_thumb2 r_thumb3

Các ñối tượng Joint của khuôn mặt
l_eyeball_joint l_eyeball_joint
l_eyebrow_joint l_eyebrow_joint
l_eyelid_joint l_eyelid_joint
temporomandibular
Dựa vào các tên gọi trên, ISO quy ñịnh cặp ñối tượng Joint:Segment như
sau:
HumanoidRoot
sacroiliac : pelvis
l_hip : l_thigh
l_knee : l_calf
l_ankle : l_hindfoot
l_subtalar : l_midproximal
l_midtarsal : l_middistal
l_metatarsal : l_forefoot
 – 16


r_hip : r_thigh

r_knee : r_calf
r_ankle : r_hindfoot
r_subtalar : r_midproximal
r_midtarsal : r_middistal
r_metatarsal : r_forefoot
vl5 : l5
vl4 : l4
vl3 : l3
vl2 : l2
vl1 : l1
vt12 : t12
vt11 : t11
vt10 : t10
vt9 : t9
vt8 : t8
vt7 : t7
vt6 * : t6
vt5 : t5
vt4 : t4
vt3 : t3
vt2 : t2
vt1 : t1
vc7 * : c7
| vc6 : c6
| vc5 : c5
| vc4 * : c4
| vc3 : c3
| vc2 * : c2
| vc1 : c1
| skullbase : skull

| l_eyelid_joint : l_eyelid
| r_eyelid_joint : r_eyelid
| l_eyeball_joint : l_eyeball
| r_eyeball_joint : r_eyeball
| l_eyebrow_joint : l_eyebrow
| r_eyebrow_joint : r_eyebrow
 – 17


| temporomadibular : jaw
l_sternoclavicular : l_clavicle
| l_acromioclavicular : l_scapula
| l_shoulder : l_upperarm
| l_elbow : l_forearm
| l_wrist : l_hand
| l_thumb1 : l_thumb_metacarpal
| l_thumb2 : l_thumb_proximal
| l_thumb3 : l_thumb_distal
| l_index0 : l_index_metacarpal
| l_index1 : l_index_proximal
| l_index2 : l_index_middle
| l_index3 : l_index_distal
| l_middle0 : l_middle_matacarpal
| l_middle1 : l_middle_proximal
| l_middle2 : l_middle_middle
| l_middle3 : lmiddle_distal
| l_ring0 : l_ring_metacarpal
| l_ring1 : l_ring_proximal
| l_ring2 l_ring_middle
| l_ring3 : l_ring_distal

| l_pinky0 : l_pinky_metacarpal
| l_pinky1 : l_pinky_proximal
| l_pinky2 : l_pinky_middle
| l_pinky3 : l_pinky_distal
r_sternoclavicular : r_clavicle
r_acromioclavicular : r_scapula
r_shoulder : r_upperarm
r_elbow : r_forearm
r_wrist : r_hand
r_thumb1 : r_thumb_metacarpal
r_thumb2 : r_thumb_proximal
r_thumb3 : r_thumb_distal
r_index0 : r_index_metacarpal
r_index1 : r_index_proximal
r_index2 : r_index_middle
r_index3 : r_index_distal
 – 18


r_middle0 : r_middle_metacarpal
r_middle1 : r_middle_proximal
r_middle2 : r_middle_middle
r_middle3 : r_middle_distal
r_ring0 : r_ring_metacarpal
r_ring1 : r_ring_proximal
r_ring2 : r_ring_middle
r_ring3 : r_ring_distal
r_pinky0 : r_pinky_metacarpal
r_pinky1 : r_pinky_proximal
r_pinky2 : r_pinky_middle

r_pinky3 : r_pinky_distal

1.4. Các ñim ñc trng trên c th ngi
Dựa vào kiến thức giải phẫu học cơ thể người, ISO ñưa ra danh sách các ñiểm
ñặc biệt trên mô hình người [tài liệu ISO số 7250]. Dưới ñây là hình mô tả vị trí và
bảng liệt kê các ñiểm ñặc trưng của một H-Anim.
 – 19



Hình 7 : Các ñiểm ñặc trưng trên cơ thể người.
 – 20



Số hiệu Tên Số hiệu Tên
1 sellion 39 r_ulnar_styloid
2 r_infraorbitale 40 r_metacarpal_pha5
3 l_infraorbitale 41 l_acromion
4 supramenton 42 l_axilla_ant
5 r_tragion 43 l_radial_styloid
6 r_gonion 44 l_axilla_post
7 l_tragion 45 l_olecranon
8 l_gonion 46 l_humeral_lateral_epicn
9 nuchale 47 l_humeral_medial_epicn
10 r_clavicale 48 l_radiale
11 suprasternale 49 l_metacarpal_pha2
12 l_clavicale 50 l_dactylion
13 r_thelion/bustpoint 51 l_ulnar_styloid
14 l_thelion/bustpoint 52 l_metacarpal_pha5

15 substernale 53 r_knee_crease
16 r_rib10 54 r_femoral_lateral_epicn
17 r_asis 55 r_femoral_medial_epicn
18 l_rib10 56 r_metatarsal_pha5
19 l_asis 57 r_lateral_malleous
20 r_iliocristale 58 r_medial_melleous
21 r_trochanterion 59 r_sphyrion
22 l_iliocristale 60 r_metatarsal_pha1
23 l_trochanterion 61 r_calcaneous_post
24 cervicale 62 r_digit2
25 rib10_midspine 63 l_knee_crease
26 r_psis 64 l_femoral_lateral_epicn
27 l_psis 65 l_femoral_medial_epicn
28 waist_preferred_post 66 l_metatarsal_pha5
29 r_acromion 67 l_lateral_malleous
30 r_axilla_ant 68 l_medial_melleous
31 r_radial_styloid 69 l_sphyrion
32 r_axilla_ant 70 l_metatarsal_pha1
33 r_olecranon 71 l_calcaneous_post
34 r_humeral_lateral_epicn 72 l_digit2
35 r_humeral_medial_epicn 73 crotch
36 r_radiale 74 r_neck_base
 – 21


37 r_metacarpal 75 l_neck_base
38 r_dactylion 76 navel
1.5. Mô hình hóa
ISO kiểm soát việc mô hình hóa các dạng hình nhân H-Anim ñể ñảm bảo các
chuyển ñộng (animation) ñược xây dựng cho một dạng hình nhân H-Anim thì cũng có

thể triển khai cho một dạng hình nhân H-Anim khác. Công việc này thực chất là xác
ñịnh trạng thái của một mô hình trước khi áp các chuyển ñộng lên nó. ðiều này cũng
ñảm bảo tính nhất quán của các mô hình H-Anim.
Quy ñịnh của ISO là các dạng hình nhân sẽ ñược mô hình hóa ở thế ñứng, mặt
hướng theo chiều Z+, tức là nhìn ñối diện với hướng nhìn thẳng của chúng ta. Các trục
của không gian 3 chiều ñược quy ñịnh như sau:

Hình 8: ISO quy ñịnh hệ trục tọa ñộ 3 chiều
 – 22


Gốc tọa ñộ (0, 0, 0) ñược quy ñịnh ñặt ở nền, như vậy nó sẽ nằm ở giữa chân
của hình nhân. Như vậy, hai chân ñặt trên ñất sẽ cách quãng nhau bằng ñộ rộng của
hông. ðể dễ hình dung, ta giả thiết lòng bàn chân là phẳng, như vậy tọa ñộ theo trục Y
của nó sẽ là 0.

Hình 9: Mô hình 3D của hai hình nhân
Cánh tay sẽ duỗi thẳng và ñặt song song với thân hình với lòng bàn tay úp vào
ñùi. Tay coi như phẳng, trục của các khớp từ 1 ñến 3 của các ngón tay song song với
trục Y và trục của ngón tay cái nghiêng một góc π/2 radian (90 ñộ) với trục Z+. Như
vậy, hệ trục tọa ñộ mỗi khớp của ngón tay cái phải xoay lại ñể thẳng hàng với toàn bộ
hình nhân.
 – 23



Hình 10 : Trục tọa ñộ của các ngón tay
Khuôn mặt ñược mô hình hóa với các lông mày giãn ra, môi khép lại và mắt mở
to.


Hình 11 : Mô hình 3 chiều diễn tả khuôn mặt

×