Tải bản đầy đủ (.docx) (95 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 luận văn ths công nghệ thông tin 1 01 10

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 (2.76 MB, 95 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ố

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 ca ln ñu công viên Disney Cal
Disneyñãthitkmtmôhìnhcôngviên3chiudù
ñiunàyñãñemlimthiuqukhôngng.Chind
rvàktqulàdukháchññnDisneyLandngàyc
2001).
Năm2000,tròchơiFinalFantasyñãgâynênmtcơn
VitNamvàthgii.Nhngmôhìnhnhânvt3ch
tóc,npáo,lànda;schânthctrongmichuyn
cácgameth.Ngoàishpdnvýtưngcatròc
trongcácmôhình3DcaFinalFantasylàmttrong
chơinàytrthànhmttrongnhnggamehpdnnh
Haivídtrênñãchothysthuhútcacácmôhì
máytínhsdngmôhình3chiuxuthinngàycàn
ñng,chânthcvàhiuqu.Xuhưngnghiêncuxâ
ngưimáytinhiutrưngñihcvàphòngthíngh
Mtscôngtrìnhnghiêncuphcvchohthngt
trongphnphlc1.
VitNam,côngngh3Dchyuñưcdùngtrongqu
vicñưa3Dvàosâuhơntrongcáclĩnhvckhácnhư
thtronglunvănnàytôimunñcpñnvicngh
3Dvàothctmàmttrongnhngngdngcóthk
kýhiuphcvngưikhimthính.
Hinnay,nhngchươngtrình,dánnhmcithin
Giáo dchòa nhp tr khim thính và cácdch vph
ngưikhimthínhVitNamñangpháttrinkhám


–2


Vi ñ tài “
ngưimáyvàElearning”,
vicbiudinngônngkýhiuphcvchongưik
tiptruynthông,thêmvàoñóhoàntoàncóths
dngElearningkhácdànhchongưibìnhthưng.Ch
phươngphápñánhvn:mttgmnhiuchcái,mi
hiudotaythchin,nhưvymitslàmttp
Ngưikhimthínhsñánhvntheokýhiuñbit
khimunnói“Xinchào”,ngưinóisbiudin7k
cácchcái“x”“i”“n”“c”“h”“a”“o”.Phươngph
chuynñichmnhưnglicólithlàthamsñu
ttùyýmàkhôngcndùngbtñin.
Ktcucalunvăngm4chương:

Chương1: GiithiuvHanimbaogm:kháinim,cácthành
quyñnhcamthìnhnhântheochunHanim,phân

phncncótheo

cptrongkhungxươngcamt

hìnhnhânvàcáchñttênchotngkhptheochun,

cácñimñcbittrêncơth

ngưivàcáchthcxâydngmôhình3D.
y

Chương2: Giithiuvmtsngônnglptrình3Dhinna


Chương3: Trìnhbàyvngônnglptrìnhñha3D(VRMLvà

Java3D)sdng

ñxâydngchươngtrình.

uvàcácchunhin

Chương4: Thchinbàitoán.Giithiuvngônngduhi
thi.XâydngchươngtrìnhFamiliarHandbiudin

ngônngkýhiutheoñiukhin

bngngônnglptrìnhJava3D.

PhnKtlun

ñánhgiácáccôngvicñãlàmvàhưngpháttrint

iptheo.


–3

Chương1HANIM
1.1.KháinimHanim
Cùngvistăngtrưngcalĩnhvcñha3Dtron
nhiuphnmmlàmnhimvthitkmôhình3Dvà
sinhhccacácmôhìnhñóñãvàñangnilênht

ñưcxâydngnhmmcñíchthiuchnhnhngc
thgiio.Vnñkhókhănnysinhtrongquátrì
hthngdngnàylàvictraoñithôngtin.Thiu
truynthôngthưngbóbuccácnhàxâydnganimat
ñngphipháttrinnhnggiiphápriêngmangtín
bưcchuyntipgiahthngvàphnmmmàhña
ISO (InternationalStandard Organization)ñnh rõk
hìnhdungmangtínhkháiquátvvicmôhìnhhóac
mtcáchthcchunñbiudincáchìnhnhânnày,
c(cóthcanhàcungcpA)ñxâydngnênmôh
dùngcôngckhác(cóthcanhàcungcpB)ññi
nhânnày.
MctiêumàHAnimhưngtilà:


Khnăngtươngthích
dinñtthànhcôngbtcbduytcơbnnào.



Tínhmmdolinhhot
ngdngnàosñưcphépdùngcáchìnhnhânHAnim



Tínhñơngin :Loibcáchìnhnhânrakhingdngmtcáchd
khôngcnthithocbsungthêmhìnhnhânmikhi

Vi3mctiêutrên,cnphiñnhrõcácchitit
ñphâncpcáckhptrctipcahìnhnhâncũngn



–4

nhimvcuthànhnêncácñoncơthmtmôhình

phépnhmtonêncáchìnhnhâncókhnăngthchi

1.2.CácthànhphncamtHAnim
ðitưngHAnimbaogm5thànhphn[29]:


Humanoid



Joint



Segment



Site



Displacer


ngưitheomtcáchthccho

ncáccñng[15].


–5

Hình1:CácthànhphncamtHAnim


–6

1.2.1.Humanoid
LàgccamôhìnhHAnim,ñitưngnàychobitc
thànhphncahìnhnhân.Cthhơn,
thànhphnñnhnghĩanênhkhungxương,hìnhkhi
hìnhnhânHAnim. Cácthànhphnnàybaogmcácñ
Sitevà Displacer,chúngñnhrõphnlncácchititcamôhìnhh
Anim.Ngoàiranócònmangthôngtinvtácgi,b
gpcamôhình.Sauñâylàvídmôtlpñitư
VRMLV2.0utf8.
PROTOHumanoid[
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField

exposedField
exposedField
exposedField
exposedField
exposedField
field
field
]


–7

Lưuýrng“exposedField”làcáctrưngmàscripcó thtruynhpñưcññc
dliu,còn“field”thìkhông.
1.2.2.Joint
LàñitưngmôtkhpnicamôhìnhHAnim.Các
tchcthànhcutrúcphâncpmôtmiliênhc
khptronghkhungxương.
ñnhtênvàthuctínhcamikhptronghkhung
JointdùngcúphápcaVRMLV2.0utf8nhưsau:
PROTOJoint[
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField

exposedField
exposedField
]
1.2.3.Segment
LàñitưngmôtcácñonchicamôhìnhHAnim.

Vmtvtlý,chúnglà

vtthtrunggiangiacáckhpxương.Vídcng

taynigiakhpcùichvàkhp

ctay,cngchânnigiakhpñugivàkhpc

chân...Vídmôtlpñitưng

SegmentdùngcúphápcaVRMLV2.0utf8nhưsau:


–8

PROTOSegment[
eventIn
eventIn

MFNode

addChildren

MFNode removeChildren


exposedField

SFVec3f centerOfMass

exposedField

MFNode children

exposedField

SFNode coord

exposedField

MFNode displacers

exposedField

SFString name

exposedField

SFFloat mass

exposedField

SFVec3f momentsOfInertia 1

000


[]
ULL

N
[]
""
0

11

field

SFVec3f bboxCenter 0

00

field

SFVec3f bboxSize

111

]
1.2.4.Site
Mi Segmentcóthcómtsnút
tríñcbitcóliênquanñn

Site.ðitưngnàyñnhnghĩamtsv


Segment.

ðitưng Siteñưcsdngnhm3mcñích:
• ðnhnghĩañimktnichocácñitưngphnhưq
unáovàtrangsc.
• ðnh nghĩa v trí cho camera o trong khung tham ch iu ca mt ñi tưng
Segment.
• ðnhnghĩavtrí“endeffector”dùngtrongcách

thngIK(inversekinematic).

[xemgiithíchtrongphlc2]
Vídmôtlpñitưng

SitedùngcúphápcaVRMLV2.0utf8nhưsau:

PROTOSite[
eventIn

MFNode addChildren

eventIn

MFNode removeChildren


–9

exposedField
exposedField

exposedField
exposedField
exposedField
exposedField
exposedField
]
1.2.5.Displacer
Hìnhdngcatngñitưngmnglưicóthbin
ngdng. mccơbnnht,sbinñinàychính
trongtrưng

fieldcañitưngm

(articulated avatar ) thì ñi tưng mng lưi thuc ñi tưng
trưnghpcácmôhìnhlưikhôngphng(
mnglưiñưcxácñnhtrongtrưng
rtñángchúývìnóxácñnhcácnhómñnhtrongm
dngcóthcnnhnbitnhngñnhnàothucphn
trái.Cácthôngtinnàyñưclưutrongnút
Dliulưutrong
hptacndchchuynmiñnhtrongmnglưi.V
Displacerñưclưutrongtrưng
môhìnhlưikhôngphngthìñitưng
cañitưng
xác ñnh trong phm vi ca ñi tưng
Humanoid.Sauñóbrenderscăncvàochúngñápvàomn
môhìnhlưithànhmôhình3chiuthcs.

Joint.Cácthô



–10

ðitưng

Displacercó3mc. mcñcơbnnht,nóñơnginchdù

ñnhnbitcácñnhtươngngvimtñctrưngñ

cbitnàoñótrênmnglưi.

mchai,nóbiuthmthotñngcơbpñcbit

nàoñómàhotñngnàylibin

ñicácñnhtheocáchưngkhácnhau.mcñth

ba, Displacerbiuthcuhình

hoànchnhcacácñnhtrongmnglưi.Víd,trư
thkhuônmtthìmiñitưng

nghpmtmôhình3chiubiu

Displacersbiuthgươngmtvimtsctháinào

ñó(vui,rtvui,bun,rtbun,cưimm,cưito
Miñitưng

ng


,bthnh,gind…).

Displacerxácñnhmtsơñcácvtrígilà“ñíchhìnhv

(morphtarget),nóñưcdùngñbinñithuctính

ñdchchuyncamôhình.Mc

ñcodãncañdchchuyntrongmiñitưng

Displacercóthñưctruynnhư



làmtthamstbênngoài.
Cácñitưng

Displacerñưcsdngvimcñíchchyulàñiukhincá

hìnhtháicakhuônmt,tuynhiêntacũngcóths
khácnhaucahìnhnhân.Víd,dùngñiukhinvi
nhưthnàokhicánhtaygpli,môphngviccác

dngchúngchocácphncơth
ccánhtaysthayñihìnhdáng
bpthtscănglênrasao…

VídmôtlpñitưngSitedùngcúphápcaVRM


LV2.0utf8nhưsau:

Displacer{
coordIndex[7,12,24,18]
displacements[00.00250,00.0050,00.00

250,00.0010]

name“l_eyebrow_raiser_action”
}

1.3.Câyphâncpkhungxng
Cũnggingnhưmtcơthngưi,hìnhnhân3Dcũng

làcơsñtinhànhmôphngcácchuynñngca
trongmtmôhình3chiuchínhlàtphpdngcây
hìnhñó.

cóbkhungxương.ðây
hìnhnhân3D. Khungxương

cacácñitưngJointcamô

c


–11

1.3.1.Mcphâncp(LOALevelOfArticulation)
CácmôhìnhHAnimcóthcñngñưclànhthao

transformcacáckhp,cácthôngsnàyñưcghit
chânthctrongchuynñngcamôhình3Dphthu
và các ñon chi. S lưng khp và ñon chi càng nhi
chuynñngcàngmmmi,chânthc.ISOquyñnhr
cóítnhtlàmt
lưng Joint luôn nhiu hơn mt. Khái nim mc phân cp
Articulation) dùng ñ ch s lưng
nhân.Môhìnhhìnhnhâncót14
hìnhhìnhnhâncót72
cpkhungxươngchchaduynhtmtñitưng
ñâylàmcthpnhttrongcâyphâncp.ISOquyñ
dhìnhdungcácbncóthxemcáchìnhminhhad
fileVRMLv2.0ñưccodingtheotng


–12

LOAmc0chhtrmtñitưng

Jointlà HumanoidRoot.

Hình3:LOAmc0

LOAmc1htrcâyphâncpmcthp.

Hình4:LOAmc1


–13


LOAmc2htrhxươngcóxươngsngñưcñơngin

Hình5:LOAmc2

LOAmc3htrcâyphâncpñyñcamtHAnim.

Hình6:LOAmc3

hóa.


–14

1.3.2.ISOñttênchocácñitưngJoint
Bâygitathtìmhiuvsơquavcutocơth
cp khung xương thích hp cho hình nhân 3D mô phng
xươngtrongcơthngưigmcáckhúcxương(cngt
cáckhp(nhưkhuutay,ctayvàmtcáchân).Kh
xương chuyn ñng,và kéo theo s chuyn ñng cac
hưng cakhp xương. Ví d khi ta xoay c tay thì
nhưngcácbphnkháctrêncơththìkhông.Khit
cngchântrái,ñùitrái,bànchântráivàcácngón
còncácbphnkhácvnñngyên.Bkhungcamt
dngnhưmtdãycácñitưng
cácñitưng

l_hip
r_hip
vl5
vt12

vt6
vc7
l_sternociavicular
r_sternociavicular
sacroiliac(pelvis)

Segment


–15

CácñitưngJointcabàntay
l_pinky0
r_pinky0
l_ring0
r_ring0
l_middle0
r_middle0
l_index0
r_index0
l_thumb1
r_thumb1
CácñitưngJointcakhuônmt
l_eyeball_joint

l_eyeball_joint

l_eyebrow_joint

l_eyebrow_joint


l_eyelid_joint

l_eyelid_joint

temporomandibular
Davàocáctêngitrên,ISOquyñnhcpñitưn
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

g Joint:Segmentnhư


–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_eyel
|r_eyelid_joint:r_eyel
|l_eyeball_joint:l_eye
|r_eyeball_joint:r_eye
|l_eyebrow_joint:l_eye
|r_eyebrow_joint:r_eye


id
id
ball
ball
brow
brow


–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_metacarp
|l_thumb2:l_thumb_proxima l |
l_thumb3:l_thumb_distal
|l_index0:l_index_metacarp
|l_index1:l_index_proxima
|l_index2:l_index_middle
|l_index3:l_index_dista
|l_middle0:l_middle_mataca
|l_middle1:l_middle_proxi
|l_middle2:l_middle_midd
|l_middle3:lmiddle_dist
|l_ring0:l_ring_metacarpal
|l_ring1:l_ring_proximal
|l_ring2l_ring_middle

|l_ring3:l_ring_distal
|l_pinky0:l_pinky_metacarp
|l_pinky1:l_pinky_proxima
|l_pinky2:l_pinky_middle
|l_pinky3:l_pinky_dista
r_sternoclavicular:r_clavicle
r_acromioclavicular:r_scapula
r_shoulder:r_upperarm
r_elbow:r_forearm
r_wrist:r_hand
r_thumb1:r_thumb_metacarpa l
r_thumb2:r_thumb_proximal
r_thumb3:r_thumb_distal
r_index0:r_index_metacarpa l
r_index1:r_index_proximal
r_index2:r_index_middle
r_index3:r_index_distal

al

al
l

l
rpal
mal

le
al


al

l
l


–18

pal

r_middle0:r_middle_metacar
r_middle1:r_middle_proxim
r_middle2:r_middle_middl
r_middle3:r_middle_dist
r_ring0:r_ring_metacarpal

al
e
al

r_ring1:r_ring_proximal
r_ring2:r_ring_middle
r_ring3:r_ring_distal
l

r_pinky0:r_pinky_metacarpa
r_pinky1:r_pinky_proximal

r_pinky2:r_pinky_middle
r_pinky3:r_pinky_dista


l

1.4.Cácñimñctrngtrêncthngi
Davàokinthcgiiphuhccơthngưi,ISOñ

ñcbittrênmôhìnhngưi[tàiliuISOs7250].
bnglitkêcácñimñctrưngcamtHAnim.

ưaradanhsáchcácñim

Dưiñâylàhìnhmôtvtrívà


–19

Hình7:Cácñimñctrưngtrêncơthngưi.


–20

Shiu
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Tên

sellion
r_infraorbitale
l_infraorbitale
supramenton
r_tragion
r_gonion
l_tragion
l_gonion
nuchale
r_clavicale
suprasternale
l_clavicale
r_thelion/bustpo
l_thelion/bustpo
substernale
r_rib10
r_asis
l_rib10
l_asis
r_iliocristale
r_trochanterion
l_iliocristale
l_trochanterion
cervicale
rib10_midspine
r_psis
l_psis
waist_preferred
r_acromion
r_axilla_ant

r_radial_styloid
r_axilla_ant
r_olecranon
r_humeral_late
r_humeral_med
r_radiale


–21

37
38

r_metacarpal
r_dactylion

1.5.Môhìnhhóa
ISOkimsoátvicmôhìnhhóacácdnghìnhnhânH
chuynñng(animation)ñưcxâydngchomtdng
thtrinkhaichomtdnghìnhnhânHAnimkhác.

Animññmbocác
hìnhnhânHAnimthìcũngcó

Côngvicnàythcchtlàxác

ñnhtrngtháicamtmôhìnhtrưckhiápcácch uynñnglênnó.ðiunàycũng
ñmbotínhnhtquáncacácmôhìnhHAnim.
QuyñnhcaISOlàcácdnghìnhnhânsñưcmôh


ìnhhóathñng,mt

hưngtheochiuZ+,tclànhìnñidinvihưng nhìnthngcachúngta.Cáctrc
cakhônggian3chiuñưcquyñnhnhưsau:

Hình8:ISOquyñnhhtrctañ3chiu


–22

Gctañ(0,0,0)ñưcquyñnhñt nn,nhưv

ynósnm giachân

cahìnhnhân.Nhưvy,haichânñttrênñtscá

chquãngnhaubngñrngca

hông.ðdhìnhdung,tagithitlòngbànchânl

àphng,nhưvytañtheotrcY

canóslà0.

Hình9:Môhình3Dcahaihìnhnhân

Cánhtaysduithngvàñtsongsongvithânhì

nhvilòngbàntayúpvào


ñùi.Taycoinhưphng,trccacáckhpt1ñn

3cacácngóntaysongsongvi

trcYvàtrccangóntaycáinghiêngmtgócπ/2

radian(90ñ)vitrcZ+.Như

vy,htrctañmikhpcangóntaycáiphi
hìnhnhân.

xoayliñthnghàngvitoànb


–23

Hình10:Trctañcacácngóntay

Khuônmtñưcmôhìnhhóavicáclôngmàygiãnra

to.

Hình11:Môhình3chiudintkhuônmt

,môikhéplivàmtm


×