7
78 ' ˚˛ÌˇÜÞÒ¯—˝Û¯ ¨˝ÑÒ—Ó̯˝ÒÛ ´ ˛`—À˙˛´À˝¨¨. „ 2, 2006 ª. ˚—¯Éˆ —¯É˝˛¸Ü˜Ñ ˛ ´˙À¨Ì˛˜¯ÉÑÒ´¨¨ À´Ò˛˝˛Ì˝ÛÕ ˇ¯—Ñ˛˝À˘¯É Ñòàòüÿ ïîæâÿøåíà ìåòîäàì æîçäàíLÿ æîîÆøåæòâ, ÷ºåíß Œîòîðßı äåØæòâóþò àâòî- íîìíî â ðåàºüíîì âðåìåíL, ðåàªLðóþò íà âçàLìîäåØæòâLå æ ïîºüçîâàòåºåì, à òàŒæå äðóª íà äðóªà L æâîå îŒðóæåíLå. ¨ı «ıàðàŒ- òåðß» îæíîâàíß íà ïðîæòîØ óìæòâåííîØ ìîäåºL, ïîçâîºÿþøåØ äåºàòü âßÆîð Lç íå- æŒîºüŒLı ŒîíôºLŒòóþøLı öåºåØ. ˇåðæîíà- æL âLçóàºLçLðóþòæÿ æ ïîìîøüþ 3D ÆLƺLî- òåŒL àíLìLðîâàííßı äâLæåíLØ. ´ÑÒÓˇ¸¯˝¨¯ —åàºüíßØ ìLð ýòî ÆåæïîŒîØ- íîå ìåæòî, íàïîºíåííîå ºþäüìL, æLâîòíßìL L æðåäæòâàìL ïåðåäâL- æåíLÿ. ´ ïðîòLâîïîºîæíîæòü ðå- àºüíîìó ìLðó, Lªðîâßå ìLðß ïó- æòß L æòàòL÷íß. ˛Æß÷íî îäLí ïåð- æîíàæ äâLªàåòæÿ ïîä óïðàâºåíLåì Lª- ðîŒà, íåæŒîºüŒî äðóªLı ïåðæîíàæåØ äâLªàþòæÿ LçîºLðîâàííî L åøå íåæŒîºüŒî îÆœåŒòîâ îŒðóæàþøåØ æðåäß äâLªàþòæÿ â ïðîæòîì öLŒºå. ´ æòàòüå îïLæßâàåòæÿ òåı- íLŒà ïîïîºíåíLÿ Lªðîâîªî ìLðà ÆîºülLì ŒîºL÷åæòâîì àâòîíîìíßı ïåðæîíàæåØ, Œî- òîðßå âåäóò æåÆÿ îæìßæºåííî. ¯æºL òîªî òðå- Æóåò Lı ðîºü, îíL ìîªóò äåØæòâîâàòü æà- æîâàííî, ðåàªLðóÿ äðóª íà äðóªà, îŒðóæàþ- øóþ æðåäó L ïîºüçîâàòåºÿ, îºLöåòâîðÿå- ìîªî îäíLì Lç ïåðæîíà- æåØ. Ñ˛´Ì¯ÑÒ˝Àß ˜¯ßÒ¯¸Ü˝˛ÑÒÜ Àâòîíîìíßå ïåðæîíàæL íåŒîòîðßı òL- ïîâ æóøåæòâóþò â ÆîºülLíæòâå Lªð. ¸þÆîØ ïåðæîíàæ, íå íàïðÿìóþ ŒîíòðîºLðóåìßØ ÷å- ºîâåŒîì, äîºæåí Lìåòü íåŒîòîðßØ óðîâåíü àâòîíîìíîæòL, ⌺þ÷àÿ âðàªîâ, æîþçíLŒîâ L Líîªäà íåŒîòîðßı íåØòðàºüíßı LªðîŒîâ. ¨æòîðL÷åæŒL âæå íà÷Líàºîæü æ æLºüíî óï- ðîøåííßı àâòîíîìíßı ïåðæîíàæåØ (Œîòîðßå ìL òîºüŒî æºåïî æºå- äîâàòü æöåíàðLþ Æåç âîçìîæíîæòL ðåàªLðîâàòü íà äLíàìL÷íóþ îŒðó- æàþøóþ æðåäó), çàòåì ïîÿâLºLæü ðåàªLðóþøLå íà æðåäó ïåðæîíàæL [Reyn99], à ïîòîì L ïåðæîíàæL, Œî- òîðßå ìîªóò ó÷Lòüæÿ [Gran98], ðàææóæ- äàòü [Lair00] L æòðîLòü ïºàíß [Fung99]. ˇîíÿòLÿ, îÆæóæäàåìßå â ýòîØ æòà- òüå, âîæıîäÿò Œ ðàííLì ðàÆîòàì ïî ìî- äåºLðîâàíLþ ïîâåäåíLÿ æòàØ ïòLö [Reyn87]. ˛ªðîìíóþ ÆLƺLîªðàôLþ ïî àâ- òîíîìíßì ïåðæîíàæàì ìîæíî íàØòL â [Reyn99]. ˝åïîæðåäæòâåííî Œ òåìå ýòîØ æòàòüL îòíîæÿòæÿ Lªðß, Œîòîðßå æîäåðæàò ÆîºülLå ªðóïïß ïåðæîíàæåØ, âçàLìîäåØæòâóþøLı ìåæäó æîÆîØ LºL ðåàªLðóþøLı íà äåØæòâLÿ ïîºüçîâàòåºÿ-÷åºîâåŒà. ˝àïðLìåð, ìíîæåæòâî Lªð-æLìóºÿòîðîâ Maxis Lìåþò ýòî æâîØæòâî. Òî æå ìîæíî æŒàçàòü ïðî SimCity, SimAnt, SimTower, Œ Œîòîðßì æðàâíLòåºüíî íåäàâ- íî äîÆàâLºLæü The Sims. ¨ªðß Lemmings L Populous òàŒæå Lìåþò ïðàâî Æßòü îòíåæåí- íßìL Œ ýòîØ ªðóïïå: îíL æîäåðæàò Æîºülîå ŒîºL÷åæòâî àâòîíîìíßı ïåðæîíàæåØ, Œîòîðßå ðåàªLðóþò íà ïîºüçîâàòåºÿ. ˝åìíîªî äðóªàÿ íàïðàâºåííîæòü íàƺþäàåòæÿ ó Lªð òLïà Myth

Крейг Рейнольдс о взаимодействии автономных персонажей

  • Upload
    vantruc

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

78 © ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 2, 2006 ã.

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

ÊÐÅÉÃ ÐÅÉÍÎËÜÄÑ Î ÂÇÀÈÌÎÄÅÉÑÒÂÈÈ

ÀÂÒÎÍÎÌÍÛÕ ÏÅÐÑÎÍÀÆÅÉ

Ñòàòüÿ ïîñâÿùåíà ìåòîäàì ñîçäàíèÿñîîáùåñòâ, ÷ëåíû êîòîðûõ äåéñòâóþò àâòî-íîìíî â ðåàëüíîì âðåìåíè, ðåàãèðóþò íàâçàèìîäåéñòâèå ñ ïîëüçîâàòåëåì, à òàêæåäðóã íà äðóãà è ñâîå îêðóæåíèå. Èõ «õàðàê-òåðû» îñíîâàíû íà ïðîñòîé óìñòâåííîéìîäåëè, ïîçâîëÿþùåé äåëàòü âûáîð èç íå-ñêîëüêèõ êîíôëèêòóþùèõ öåëåé. Ïåðñîíà-æè âèçóàëèçèðóþòñÿ ñ ïîìîùüþ 3D áèáëèî-òåêè àíèìèðîâàííûõ äâèæåíèé.

ÂÑÒÓÏËÅÍÈÅ

Ðåàëüíûé ìèð � ýòî áåñïîêîé-íîå ìåñòî, íàïîëíåííîå ëþäüìè,æèâîòíûìè è ñðåäñòâàìè ïåðåäâè-æåíèÿ.  ïðîòèâîïîëîæíîñòü ðå-àëüíîìó ìèðó, èãðîâûå ìèðû ïó-ñòû è ñòàòè÷íû. Îáû÷íî îäèí ïåð-ñîíàæ äâèãàåòñÿ ïîä óïðàâëåíèåì èã-ðîêà, íåñêîëüêî äðóãèõ ïåðñîíàæåéäâèãàþòñÿ èçîëèðîâàííî è åùå íåñêîëüêîîáúåêòîâ îêðóæàþùåé ñðåäû äâèãàþòñÿ âïðîñòîì öèêëå.  ñòàòüå îïèñûâàåòñÿ òåõ-íèêà ïîïîëíåíèÿ èãðîâîãî ìèðà áîëüøèìêîëè÷åñòâîì àâòîíîìíûõ ïåðñîíàæåé, êî-òîðûå âåäóò ñåáÿ îñìûñëåííî. Åñëè òîãî òðå-áóåò èõ ðîëü, îíè ìîãóò äåéñòâîâàòü ñîãëà-ñîâàííî, ðåàãèðóÿ äðóã íà äðóãà, îêðóæàþ-

ùóþ ñðåäó èïîëüçîâàòåëÿ,îëèöåòâîðÿå-ìîãî îäíèìèç ïåðñîíà-æåé.

ÑÎÂÌÅÑÒÍÀß ÄÅßÒÅËÜÍÎÑÒÜ

Àâòîíîìíûå ïåðñîíàæè íåêîòîðûõ òè-ïîâ ñóùåñòâóþò â áîëüøèíñòâå èãð. Ëþáîéïåðñîíàæ, íå íàïðÿìóþ êîíòðîëèðóåìûé ÷å-ëîâåêîì, äîëæåí èìåòü íåêîòîðûé óðîâåíüàâòîíîìíîñòè, âêëþ÷àÿ âðàãîâ, ñîþçíèêîâè èíîãäà íåêîòîðûõ íåéòðàëüíûõ èãðîêîâ.Èñòîðè÷åñêè âñå íà÷èíàëîñü ñ ñèëüíî óï-

ðîùåííûõ àâòîíîìíûõ ïåðñîíàæåé(êîòîðûå ìîãëè òîëüêî ñëåïî ñëå-äîâàòü ñöåíàðèþ áåç âîçìîæíîñòèðåàãèðîâàòü íà äèíàìè÷íóþ îêðó-æàþùóþ ñðåäó), çàòåì ïîÿâèëèñüðåàãèðóþùèå íà ñðåäó ïåðñîíàæè[Reyn99], à ïîòîì è ïåðñîíàæè, êî-

òîðûå ìîãóò ó÷èòüñÿ [Gran98], ðàññóæ-äàòü [Lair00] è ñòðîèòü ïëàíû [Fung99].

Ïîíÿòèÿ, îáñóæäàåìûå â ýòîé ñòà-òüå, âîñõîäÿò ê ðàííèì ðàáîòàì ïî ìî-äåëèðîâàíèþ ïîâåäåíèÿ ñòàé ïòèö

[Reyn87]. Îãðîìíóþ áèáëèîãðàôèþ ïî àâ-òîíîìíûì ïåðñîíàæàì ìîæíî íàéòè â[Reyn99].

Íåïîñðåäñòâåííî ê òåìå ýòîé ñòàòüèîòíîñÿòñÿ èãðû, êîòîðûå ñîäåðæàò áîëüøèåãðóïïû ïåðñîíàæåé, âçàèìîäåéñòâóþùèõìåæäó ñîáîé èëè ðåàãèðóþùèõ íà äåéñòâèÿïîëüçîâàòåëÿ-÷åëîâåêà. Íàïðèìåð, ìíîæåñòâîèãð-ñèìóëÿòîðîâ Maxis èìåþò ýòî ñâîéñòâî.Òî æå ìîæíî ñêàçàòü ïðî SimCity, SimAnt,SimTower, ê êîòîðûì ñðàâíèòåëüíî íåäàâ-íî äîáàâèëèñü The Sims. Èãðû Lemmings èPopulous òàêæå èìåþò ïðàâî áûòü îòíåñåí-íûìè ê ýòîé ãðóïïå: îíè ñîäåðæàò áîëüøîåêîëè÷åñòâî àâòîíîìíûõ ïåðñîíàæåé, êîòîðûåðåàãèðóþò íà ïîëüçîâàòåëÿ. Íåìíîãî äðóãàÿíàïðàâëåííîñòü íàáëþäàåòñÿ ó èãð òèïà Myth

79

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

È Â ØÓÒÊÓ È ÂÑÅÐÜÅÇ

è Warcraft: îíè ïîçâîëÿþò ãðóïïàì ëþäåé ñî-áèðàòüñÿ âìåñòå è ñòàâèòü öåëü, êîòîðóþ îíèïûòàþòñÿ äîñòè÷ü, îñòåðåãàÿñü ïðåïÿòñòâèéè äðóã äðóãà.

ÏÎÂÅÄÅÍ×ÅÑÊÈÅ ÌÎÄÅËÈ

 âèðòóàëüíîì ìèðå ïåðñîíàæè ìîæíîðàçäåëèòü íà íåñêîëüêî òèïîâ: îíè ìîãóòáûòü ñòàòè÷íûìè, ïåðèîäè÷íûìè (íàïðè-ìåð, ìåðöàþùåå ïëàìÿ), óïðàâëÿåìûìèïîëüçîâàòåëåì (êàê îëèöåòâîðåíèå ïîëüçî-âàòåëÿ-èãðîêà) èëè èìåòü íåêîòîðóþ ñòå-ïåíü àâòîíîìíîñòè. Àâòîíîìíûå ïåðñîíà-æè ïðîöåäóðíî óïðàâëÿþòñÿ ðåãóëèðóþùåéïðîãðàììîé, êîòîðàÿ ñîîòâåòñòâóåò íåêî-òîðîé ïîâåäåí÷åñêîé ìîäåëè. Ýòà ðåãóëè-ðóþùàÿ ïðîãðàììà îòîáðàæàåò îêðóæàþ-ùóþ ñðåäó ïåðñîíàæà â äåéñòâèÿ ïåðñîíà-æà. Ñðåäà ïåðñîíàæà ñîñòîèò èç åãî âèðòó-àëüíîãî ìèðà (âíåøíÿÿ ñðåäà) è åãî ïàìÿòèèëè ëþáîãî äðóãîãî óìñòâåííîãî ïðîöåññà(âíóòðåííÿÿ ñðåäà). Ñòåïåíü àâòîíîìèè ïåð-ñîíàæà ìîæåò øèðîêî âàðüèðîâàòüñÿ. Ñîäíîé ñòîðîíû, àâòîíîìíàÿ «ìàøèíà» ìî-æåò ïðîñòî åõàòü ïî óëèöå, îñòàíàâëèâà-ÿñü, êîãäà çàæèãàåòñÿ êðàñíûé ñâåò. (Çà-ìåòüòå, ÷òî â ðàìêàõ ýòîé ñòàòüè ìû îáúå-äèíÿåì ñðåäñòâî ïåðåäâèæåíèÿ è åãî âîäè-òåëÿ/ïèëîòà â åäèíîå ñóùåñòâî). Ñ äðóãîéñòîðîíû, ïåðñîíàæ ìîæåò èìåòü âñþ ñâî-áîäó äåéñòâèé, ïðåäîñòàâëÿåìóþ èãðîêó-÷å-ëîâåêó, òàê ÷òî îí ìîæåò èãðàòü ðîëü âðàãàèëè ñîþçíèêà.

Ïåðñîíàæè, îïèñûâàåìûå â ýòîé ñòàòüå,îñíîâàíû íà î÷åíü ïðîñòûõ ôèçè÷åñêèõìîäåëÿõ: ìàòåðèàëüíàÿ òî÷êà, îáëàäàþùàÿñêîðîñòüþ, è ïðèâÿçêà åå ê ìåñòíîñòè. Ïåð-ñîíàæ äâèãàåòñÿ ïîñðåäñòâîì ïðèìåíåíèÿêîíå÷íîé óïðàâëÿþùåé ñèëû, êîòîðàÿ ìå-íÿåò åãî ñêîðîñòü, ïî êîòîðîé è âû÷èñëÿ-åòñÿ íîâîå ïîëîæåíèå. Íà ñêîðîñòü òàêæåâëèÿþò ìîäåëèðóåìûå ïîìåõè è ñèëà òðå-íèÿ. Êàê ðåçóëüòàò, ïîçèöèÿ, ñêîðîñòü, îðè-åíòàöèÿ è âèçóàëüíîå ïðåäñòàâëåíèå ïåð-ñîíàæà îïðåäåëÿþòñÿ ïîâåäåí÷åñêîé ìîäå-ëüþ, â ïåðâóþ î÷åðåäü, ïîñðåäñòâîì êîíò-ðîëÿ ñèëû óïðàâëåíèÿ. (Äëÿ áîëåå äåòàëü-íîãî ðàññìîòðåíèÿ ýòîãî ïîíÿòèÿ ìîæíî ïî-ñìîòðåòü [Reyn99]).

ÃÎËÓÁÈ Â ÏÀÐÊÅ

×òîáû ñäåëàòü ïîíÿòèÿ, îïèñûâàåìûå âýòîé ñòàòüå áîëåå êîíêðåòíûìè, áûëà íà-ïèñàíà äåìîíñòðàöèîííàÿ ïðîãðàììà, íà-çâàííàÿ «Ãîëóáè â ïàðêå», â êîòîðîé ïîëüçî-âàòåëü/èãðîê âçàèìîäåéñòâóåò â ðåàëüíîìâðåìåíè ñ áîëüøîé ãðóïïîé ïðîñòûõ àâòî-íîìíûõ ïåðñîíàæåé. Äåéñòâèå ïðîèñõîäèòíà ñûìèòèðîâàííîì ëóãó â âèðòóàëüíîì ïàð-êå. Ñòàÿ ïîõîæèõ íà ãîëóáåé ïòèö íà çåìëåèùóò åäó. Ïîëüçîâàòåëü âîäèò èãðóøå÷íóþðàäèîóïðàâëÿåìóþ ìàøèíêó. Äâèæóùàÿñÿìàøèíêà áåñïîêîèò ïòèö. Åñëè ìàøèíêàïðèáëèæàåòñÿ ìåäëåííî, òî ãîëóáè îòõîäÿòñ åå ïóòè. Åñëè ìàøèíêà ïîäúåçæàåò ñëèø-êîì áëèçêî èëè äâèãàåòñÿ ñëèøêîì áûñòðîïî íàïðàâëåíèþ ê íèì, ïòèöû ïàíèêóþò è

âçëåòàþò. Ïàíèêà çàðàçèòåëüíà è, òàêèìîáðàçîì, ñïîêîéíûå ïòèöû òîæå âçëåòÿò,åñëè âçëåòèò äîñòàòî÷íàÿ ÷àñòü èõ ñîñåäåé.Êîãäà ãîëóáè ëåòÿò, îíè ôîðìèðóþò ñòàþ,ñîãëàñíî ìîäåëè ñîãëàñîâàííîãî ãðóïïîâî-ãî äâèæåíèÿ boids (ïòóøåê) [Reyn87]. Êîã-äà ãîëóáè íàõîäÿòñÿ íà çåìëå, îíè ôîðìè-ðóþò íåæåñòêî îðãàíèçîâàííóþ 2D-ñòàþ, ïîñóùåñòâó ñòàäî. Âèðòóàëüíûé ìèð «Ãîëó-áåé â ïàðêå» âêëþ÷àåò â ñåáÿ ïòèö, ìàøèí-êó, õîëìèñòóþ ìåñòíîñòü (ñì. ðèñóíîê 1),íåâèäèìóþ ñôåðè÷åñêóþ ïðåãðàäó, êîòîðàÿîêðóæàåò ïòèö (÷òîáû óäåðæàòü èõ îòáëóæäàíèé), è äîïîëíèòåëüíûå äåêîðàöèè,òàêèå êàê íåáî è íåêîòîðûå óäàëåííûå äå-ðåâüÿ.

Âäîáàâîê ê áåñïîêîéñòâó ãîëóáåé ìà-øèíêîé ïîëüçîâàòåëü òàêæå ìîæåò íàæàòüêíîïêó, êîòîðàÿ ñèìóëèðóåò ãðîìêèé çâóê,ïîõîæèé íà ãóäîê. È ïðîåçæàþùàÿ ðÿäîììàøèíêà, è ãóäîê ïóãàþò ïòèö è ñëóæàòïðè÷èíîé äëÿ òîãî, ÷òîáû îíè âçëåòåëè. Êòîìó æå, íåîáõîäèìîñòü ñäâèíóòüñÿ ñ ìåñòàçàðàçèòåëüíà, òàê ÷òî êàæäàÿ ïòèöà ÷óâñòâè-òåëüíà ê êîëè÷åñòâó íàõîäÿùèõñÿ ðÿäîìïòèö, êîòîðûå òîëüêî ÷òî âçëåòåëè (èõ íå

80 © ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 2, 2006 ã.

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

áåñïîêîÿò ïòèöû, ïðîñòî ïðîëåòàþùèå ðÿ-äîì), è åñëè ýòî êîëè÷åñòâî ïðåâûøàåò îï-ðåäåëåííóþ ïîðîãîâóþ âåëè÷èíó, îíè âçëå-òàþò òîæå.  ðåçóëüòàòå, åñëè ïîëüçîâàòåëüíàïóãàåò îäíó ïòèöó â ïëîòíîé òîëïå, áîëü-øîå êîëè÷åñòâî ïòèö âçëåòèò, îòêëèêàÿñüíà âîëíó ñèãíàëà òðåâîãè, ðàñïðîñòðàíÿþ-ùóþñÿ â òîëïå.

Áóäó÷è èñïóãàíà â ïåðâûé ðàç, ïòèöàïðîëåòàåò êîðîòêîå ðàññòîÿíèå è ïðèçåì-ëÿåòñÿ îïÿòü, òàê ÷òî îíà ìîæåò âåðíóòüñÿê åäå, êàê ïîêàçàíî íà äèàãðàììå ïðîñòûõñîñòîÿíèé íà ðèñóíêå 2. Íî êàæäàÿ ïòèöàèìååò âåëè÷èíó ðàçäðàæåíèÿ, êîòîðàÿ óâå-ëè÷èâàåòñÿ êàæäûé ðàç, êîãäà ïòèöà íàïó-ãàíà, è äàëåå ñî âðåìåíåì îñëàáëÿåòñÿ. Åñëèïòèöà óæå îáåñïîêîåíà, êîãäà åå ïóãàþò,îíà óëåòèò äàëüøå, ïåðåä òåì êàê ñåñòü íàçåìëþ.  ðåçóëüòàòå, â ïåðâûé ðàç, êîãäàïòèöà íàïóãàíà, îíà óëåòèò íà íåñêîëüêîôóòîâ (1 ôóò = 30,48 ñì) îò ñâîåé íà÷àëü-íîé ïîçèöèè, åñëè åå íàïóãàòü ñíîâà äî òîãî,êàê ïðîéäåò äîñòàòî÷íî âðåìåíè, ÷òîáû îíà

óñïîêîèëàñü, îíà óëåòèò äàëüøå,ñòàðàÿñü èçáàâèòüñÿ îò íàçîéëè-âîãî ïîëüçîâàòåëÿ. Äëèòåëüíîñòüïîëåòà êîíòðîëèðóåòñÿ äâóìÿ ïà-ðàìåòðàìè: îäèí óñòàíàâëèâàåòïðèáëèçèòåëüíîå êîëè÷åñòâî âðå-ìåíè, êîòîðîå ïòèöà ïðîâîäèò,ïîäíèìàÿñü â âîçäóõ ïîñëå âçëå-òà, äðóãîé � ïðèáëèçèòåëüíîå êî-ëè÷åñòâî âðåìåíè, ïåðåä òåì êàêïòèöà íà÷íåò ñïóñêàòüñÿ íà ïî-ñàäêó. Îáà ïàðàìåòðà îïðåäåëÿ-þòñÿ ñòåïåíüþ îáåñïîêîåííîñòèïòèöû. Èíäèâèäóàëüíûé ïîëåòïðîèñõîäèò ïî èñêëþ÷èòåëüíîïðîñòîé àðêå ââåðõ è ïîòîì âíèç,íî èìååò òåíäåíöèþ ñëåäîâàòüòîìó, ÷òî äåëàþò áëèæàéøèå ñî-

ñåäè ïî ñòàå.Äâèæåíèå ïòèöû îïðåäåëÿåòñÿ íàáîðîì

íåñêîëüêèõ ìîäåëåé ïîâåäåíèÿ [Reyn99].Ïåðâîíà÷àëüíî ïòèöû ñîáèðàþòñÿ â ñòàþ(ñîãëàñíî ïðàâèëàì BOYDs, êîòîðûå âêëþ-÷àþò òàêòèêè ðàçäåëåíèÿ, âûðàâíèâàíèÿ èñïëî÷åííîñòè), èçáåãàÿ ïðåïÿòñòâèé (èñ-ïîëüçóÿ òàêòèêó, ïîëó÷èâøóþ íàçâàíèå ñäåð-æèâàíèå â [Reyn99]), òàêèõ êàê ôèçè÷åñ-êèå îñîáåííîñòè ìåñòíîñòè è îêðóæàþùèéèõ (íî íåâèäèìûé çðèòåëÿì) îãîðàæèâàþ-ùèé êóïîë. Îíè òàêæå ðåàãèðóþò íà îëè-öåòâîðåíèå ïîëüçîâàòåëÿ (ìàøèíêó), êàêîïèñàíî â ñëåäóþùåì ðàçäåëå.

Àíèìàöèÿ ïòèö ñîçäàåòñÿ èç íåáîëüøî-ãî ìíîæåñòâà çàðàíåå àíèìèðîâàííûõ öèê-ëîâ è ó÷èòûâàåò íåñêîëüêî ïàðàìåòðîâ ïî-âåäåí÷åñêîé ìîäåëè. Ýòè ïîâåäåí÷åñêèåïàðàìåòðû òàêîâû: ïîçèöèÿ è îðèåíòàöèÿïåðñîíàæà, ñèãíàëû èäòè/ëåòåòü è (èçâëå-êàåìàÿ èç îðèåíòàöèè) ñòåïåíü èçìåíåíèÿóêëîíà ïëàíèðîâàíèÿ (óãëà ìåæäó ïëîñêî-ñòüþ çåìëè è òðàåêòîðèåé äâèæåíèÿ). Çà-ðàíåå àíèìèðîâàííûå öèêëû: Èäòè, Ëå-òåòü, Ñêîëüçèòü è Èçãèá Êðûëüåâ. Êîãäàïòèöû íàõîäÿòñÿ íà çåìëå, îíè îáû÷íî ïðåä-ñòàâëÿþòñÿ àíèìàöèåé Èäòè, à àíèìàöèÿÈçãèá Êðûëüåâ îáðàçóåò ïåðåõîä îò Ëåòåòüê Èäòè.  ïîëåòå êîíòðîëåð àíèìàöèè âû-áèðàåò ìåæäó òàêòèêîé Ïëàíèðîâàòü è íå-ñêîëüêèìè âàðèàíòàìè òàêòèêè Ëåòåòü, îñ-íîâûâàÿñü íà óãëå ïîëåòà. Ïîäúåì èñïîëü-

Ðèñóíîê 2. Äèàãðàììàïîâåäåí÷åñêèõ ñîñòîÿíèé äëÿ ãîëóáåé.

Ðèñóíîê 1. Òèïè÷íûé ïåéçàæ ïðîãðàììû«Ãîëóáåé â ïàðêå».

81

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

È Â ØÓÒÊÓ È ÂÑÅÐÜÅÇ

çóåò àíèìàöèþ Ëåòåòü íà âûñîêîé ñêîðîñ-òè, ïîëåò íà îïðåäåëåííîì óðîâíå èñïîëü-çóåò àíèìàöèþ Ëåòåòü â áîëåå ìåäëåííîìòåìïå, ñïóñê èñïîëüçóåò àíèìàöèþ Ïëàíè-ðîâàòü. Ïåðåõîäû ìåæäó àíèìàöèîííûìèêëèïàìè çàíåñåíû â ñïèñîê, òàê ÷òî îíè ïî-ÿâëÿþòñÿ, êîãäà òåêóùèé öèêë äîñòèãàåò òî÷-êè, ãäå îí ïåðåõîäèò â ñëåäóþùèé âûáðàí-íûé öèêë.

Íà ðèñóíêå 3 ïîêàçàíà ñòðóêòóðà äàí-íûõ îïèñûâàþùàÿ «ãîëóáåé».

ÐÅÀÊÖÈß ÍÀ ÏÎËÜÇÎÂÀÒÅËß

Àâòîíîìíûå ïåðñîíàæè, êàêèå èñïîëü-çîâàíû â «Ãîëóáÿõ â ïàðêå», ðåàãèðóþò íàïîëüçîâàòåëÿ äâóìÿ ðàçíûìè ñïîñîáàìè: ðå-àêöèÿ ìîæåò áûòü ìîìåíòàëüíîé èëè ïðî-äîëæèòåëüíîé. Ïîëüçîâàòåëü ìîæåò èíèöè-èðîâàòü ïåðåìåùåíèå ïòèöû èç õîäüáû âïîëåò, ëèáî ñèãíàëîì «ãóäîê», ëèáî ñêîðî-ñòüþ è ðàñïîëîæåíèåì ìàøèíêè (îëèöåò-âîðåíèÿ ïîëüçîâàòåëÿ). Ïåðåêëþ÷åíèå ñî-ñòîÿíèé è âçëåò � ïðèìåð èçîëèðîâàííîéðåàêöèè íà ïîëüçîâàòåëÿ.

Ê òîìó æå, ãîëóáè õîòÿò ñîõðàíèòü ðàñ-ñòîÿíèå îò íèõ äî ìàøèíêè ïîëüçîâàòåëÿ,îñîáåííî êîãäà îíà áûñòðî äâèãàåòñÿ. Êîã-äà ãîëóáè ÷óâñòâóþò, ÷òî ìàøèíêà ïîäáè-ðàåòñÿ ñëèøêîì áëèçêî, îíè äâèãàþòñÿ âíàïðàâëåíèè, êîòîðîå óäàëèò èõ îò ìàøèí-êè, ïûòàÿñü ñîõðàíèòü íàïðàâëåíèå òåêó-ùåãî äâèæåíèÿ. Ýòà òåíäåíöèÿ ñî÷åòàòüèçáåãàþùåå äâèæåíèå ñ äðóãèì ïîâåäåíèåìïåðñîíàæà � ïðèìåð ïðîäîëæèòåëüíîé ðå-àêöèè íà ïîëüçîâàòåëÿ.

 îáîèõ ñëó÷àÿõ ýòè ðåàêöèè óïðàâëÿ-þòñÿ äèíàìè÷åñêè ðàçâèâàþùèìñÿ ñîñåä-ñòâîì ìàøèíêè, êîòîðîå çàâèñèò îò åå ïî-ëîæåíèÿ è ñêîðîñòè (ñêîðîñòü çäåñü ðàñ-ñìàòðèâàåòñÿ êàê âåêòîð). Ñîñåäñòâî îï-ðåäåëåíî â òåðìèíàõ ðàäèóñà è ñêîðîñòèäâèæåíèÿ ìàøèíêè. Åå îêðåñòíîñòü � ïî-ëóêðóã ñçàäè ìàøèíû è ïîëóýëëèïñ ñïåðå-äè ìàøèíû, îäèíàêîâî îðèåíòèðîâàííûéñ ïåðåäîì ìàøèíû, ÷üÿ äëèíà ïðîïîðöèî-íàëüíà òåêóùåé ñêîðîñòè ìàøèíêè. Ðèñó-íîê 4 ïîêàçûâàåò ôîðìó îêðåñòíîñòè, êîã-äà ìàøèíêà ñòîèò, åäåò ìåäëåííî è åäåòáûñòðî.

typedef struct pigeon{boidObject boid; /* îñíîâíîé îáúåêò boid */int onGround; /* èäòè èëè ëåòåòü */float annoyance; /* íàñêîëüêî îáåñïîêîåí ãîëóáü? */int framesSinceTakeOff; /* äåéñòâèòåëüíîå âðåìÿ ïîëåòà */

/* íà òàêîå ðàññòîÿíèå*/int framesBeforeDescent; /* êîíòðîëèðóåò ïðèìåðíóþ äëèòåëüíîñòü ïîëåòà */int ascentFrames; /*êîíòðîëèðóåò ïðèìåðíóþ äëèòåëüíîñòü ïîäúåìà */} pigeon;typedef struct boidObject{struct boidObject* next;/* äëÿ êîìïîíîâêè ñòàè*/vecObject position; /* öåíòðàëüíàÿ ïîçèöèÿ*/vecObject side; /* áàçèñíûé âåêòîð (x), íàïðàâëåííûé â ñòîðîíó*/vecObject up; /* áàçèñíûé âåêòîð (y), íàïðàâëåííûé ââåðõ*/vecObject forward; /* áàçèñíûé âåêòîð (z), íàïðàâëåííûé âïåðåä*/vecObject velocity; /* âåêòîð òåêóùåé ñêîðîñòè*/vecObject acceleration; /* âåêòîð òåêóùåãî óñêîðåíèÿ*/float mass; /* ðàçìåðû ìàòåðèàëüíîé òî÷êè*/float animationPhase; /* ãäå çàìêíóòàÿ ñèñòåìà àíèìàöèè*/lqClientObject lqco; /* ìåñòíûé çàïðîñ proxy*/int skipCounter; /* îáäóìûâàíèå ïðîïóñêà ôàçû */} boidObject;

Ðèñóíîê 3. Ñòðóêòóðà «îñíîâíîãî êëàññà» Boid.

82 © ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 2, 2006 ã.

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

Îêðåñòíîñòü, îëèöåòâîðÿþùàÿ ïîëüçî-âàòåëÿ, êîòîðàÿ èíèöèèðóåò æåëàíèå ãîëó-áåé îòîéòè, áîëüøå (è ìåíüøå óäëèíÿåòñÿñ óâåëè÷åíèåì ñêîðîñòè), ÷åì îêðåñòíîñòü,êîòîðàÿ èíèöèèðóåò èõ æåëàíèå âçëåòåòü.Êîãäà ãîëóáè íàõîäÿòñÿ â ïðåäåëàõ çîíû,èç êîòîðîé îíè ñòðåìÿòñÿ óéòè, èõ ïîâåäå-íèå � ñìåñü äâèæåíèé, êîòîðûå óâîäÿò èõîò ïîòåíöèàëüíîé íåïðèÿòíîñòè, çàòðàãèâàÿäðóãèå èõ ïîâåäåí÷åñêèå ëèíèè (ñáîð â ñòàþè óêëîíåíèå îò ïðåïÿòñòâèé).

ÏÐÅÄÑÒÀÂËÅÍÈÅÂ ÐÅÀËÜÍÎÌ ÂÐÅÌÅÍÈ

Äëÿ ìîäåëèðîâàíèÿ ñþæåòà ñî ìíîãèìèäåéñòâóþùèìè ëèöàìè, òàêîãî êàê «Ãîëóáèâ ïàðêå», ñ æåëàåìîé íîðìîé ïåðåäà÷è â 60êàäðîâ â ñåêóíäó, âàæíî ñîõðàíÿòü ïîëíóþâû÷èñëèòåëüíóþ ñòîèìîñòü íèçêîé. Èìååò-ñÿ òðè îñíîâíûõ èñòî÷íèêà âû÷èñëèòåëü-íîé ñëîæíîñòè, êàæäûé èç êîòîðûõ äîë-æåí áûòü ñâåäåí ê ìèíèìóìó:

� áûñòðûé âûâîä íà ýêðàí èçìåíÿþùåé-ñÿ îáñòàíîâêè,

� ìîäåëèðîâàíèå «ìûøëåíèÿ» ïåðñîíà-æåé,

� ó÷åò âñåõ âîçìîæíûõ âçàèìîäåéñòâèéìåæäó ïåðñîíàæàìè.

Ðåøåíèå ïåðâîé çàäà÷è äîñòèãàåòñÿ çàñ÷åò îòíîñèòåëüíî ñêðîìíûõ òðåáîâàíèé êñëîæíîñòè èçîáðàæàåìîé ìåñòíîñòè â òåð-ìèíàõ ïîäñ÷åòà ÷èñëà ìíîãîóãîëüíèêîâ, èçêîòîðûõ ñîñòàâëÿåòñÿ êàðòèíêà, è èñïîëü-çîâàíèÿ ïðîñòûõ òåíåâûõ ìîäåëåé.

Âòîðàÿ ïî çíà÷èìîñòè âû÷èñëèòåëüíàÿñòîèìîñòü ó âðåìåíè, çà êîòîðîå êàæäûéàâòîíîìíûé ïåðñîíàæ-ïòèöà óñïåâàåò ïî-äóìàòü. Êàê îïèñàíî âûøå, «ìîçã» àâòî-íîìíîãî ïåðñîíàæà � ïðîãðàììà, êîòîðàÿäîëæíà ñðàáîòàòü, ÷òîáû îïðåäåëèòü, êàêîåäåéñòâèå ñîâåðøèòü, îñíîâûâàÿñü íà àíà-ëèçå òåêóùåé îêðóæàþùåé ñðåäû. Õîòÿ ýòèâû÷èñëåíèÿ îòíîñèòåëüíî ïðîñòû, îíè äîë-æíû áûòü ïðîäåëàíû äëÿ êàæäîãî ïåðñîíà-æà, è, òàêèì îáðàçîì, ñòîèìîñòü óìíîæàåò-ñÿ íà êîëè÷åñòâî ïåðñîíàæåé. Ïðî ïðîöåñ-ñû òàêîé ñëîæíîñòè ãîâîðÿò, ÷òî îíè èìå-þò ñëîæíîñòü Î(n). (×òîáû èìåòü ïðåäñòàâ-ëåíèå îá àñèìïòîòè÷åñêîé ñëîæíîñòè, âçãëÿ-íèòå íà [Fren99]).

Ïîñêîëüêó ÷àñòîòà îáíîâëåíèÿ ýêðàíà60 Hz äîâîëüíî áûñòðà, ïî ñðàâíåíèþ ñ äâè-æåíèåì ïåðñîíàæà, ïðîñòîé ïóòü ñíèæåíèÿñòîèìîñòè ïîâåäåí÷åñêîé ìîäåëè � ïðîâî-äèòü ïîâåäåí÷åñêèå ðàñ÷åòû íà áîëåå íèç-êîì óðîâíå.  ïðîãðàììå «Ãîëóáè â Ïàðêå»äîñòàòî÷íî, ÷òîáû ãîëóáè «äóìàëè» ñ ÷àñ-òîòîé 10 Hz, òî åñòü îäíó øåñòóþ âðåìåíèàíèìàöèè. Òàêèì îáðàçîì, óïðàâëÿþùàÿïðîãðàììà äëÿ äàííûõ ïåðñîíàæåé ðàáîòà-åò òîëüêî íà êàæäîé øåñòîì øàãó ìîäåëè-ðîâàíèÿ. Ìåæäó ýòèìè «ìûñëèòåëüíûìè»ìîìåíòàìè ïåðñîíàæ áóäåò ïðîäîëæàòü ñî-âåðøàòü îäíî è òî æå äåéñòâèå.

 äåéñòâèòåëüíîñòè óïðàâëåíèå ìåíÿåò-ñÿ ïîñòîÿííî èç-çà òîãî, ÷òî ëåæàùàÿ â îñ-íîâå ôèçè÷åñêàÿ ìîäåëü ïåðåñ÷èòûâàåò óñ-êîðåíèå ïî îòíîøåíèþ ê óïðàâëÿþùèìñèëàì. Òàêæå ÷àñòü «ìûñëèòåëüíîãî ïðî-öåññà» ïåðñîíàæà, ñâÿçàííàÿ ñ óêëîíåíèåìîò ïðåïÿòñòâèé, ìîæåò îñóùåñòâëÿòüñÿ ïîáîëåå âûñîêîé öåíå (ïðèìåðíî 60 Hz). Ýê-ñïåðèìåíòû ïîêàçàëè, ÷òî ïðåäñêàçàíèå âîç-ìîæíîãî ñòîëêíîâåíèÿ ðåäêî âðåäèò ðîâ-íîìó è ýôôåêòèâíîìó óêëîíåíèþ îò ïðå-ïÿòñòâèé. Ýòî ðàçäåëåíèå ïîçâîëÿåò ñîâìå-ùàòü õîðîøèé óðîâåíü óêëîíåíèÿ îò ïðå-ïÿòñòâèé ñ äîâîëüíî íèçêèìè òðåáîâàíèÿ-

Ðèñóíîê 4. Èçìåíåíèå îêðåñòíîñòè ìàøèíêèâ çàâèñèìîñòè îò åå ñêîðîñòè.

83

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

È Â ØÓÒÊÓ È ÂÑÅÐÜÅÇ

ìè ê ñëîæíîñòè «ìûøëåíèÿ». (Çäðàâûéñìûñë ïîäñêàçûâàåò, ÷òî äëÿ «ïòè÷üèõ ìîç-ãîâ» äîñòàòî÷íà äîâîëüíî ñêðîìíàÿ âû÷èñ-ëèòåëüíàÿ ñèëà). Íàêîíåö, çàìåòèì, ÷òî êàæ-äàÿ ïòèöà â îñíîâíîì äóìàåò íà 10 Hz, ôàçûýòèõ öèêëîâ ñëó÷àéíû, òî åñòü ïðèìåðíîîäíà øåñòàÿ âñåé ïîïóëÿöèè äóìàåò â êàæ-äîì êàäðå.

Òðåòèé è ïîòåíöèàëüíî ñàìûé ñåðüåç-íûé èñòî÷íèê âû÷èñëèòåëüíûõ ïðîáëåì �ó÷åò âçàèìîäåéñòâèé ìåæäó ïåðñîíàæàìè.Ïîâåäåí÷åñêóþ ìîäåëü ãðóïïû (èëè ëþáîéäðóãîé îãðàíè÷åííîé â ïðîñòðàíñòâå ñèñòå-ìû ñ áîëüøèì êîëè÷åñòâîì ïåðñîíàæåé)ìîæíî ïðåäñòàâèòü êàê ñèñòåìó âçàèìîäåé-ñòâóþùèõ ÷àñòèö. Òàêèå ñèñòåìû èìåþòîñíîâíîå ñâîéñòâî: êàæäàÿ ÷àñòèöà äîëæíàâçàèìîäåéñòâîâàòü ñî âñåìè îñòàëüíûìè÷àñòèöàìè.  ðåçóëüòàòå ñèñòåìà âçàèìîäåé-ñòâèÿ ÷àñòèö èìååò àñèìïòîòè÷åñêóþ ñëîæ-íîñòü O(n2). Òî åñòü, ê ïðèìåðó, óäâîåíèå÷èñëà ïåðñîíàæåé ó÷åòâåðÿåò êîëè÷åñòâîâðåìåíè, çàòðà÷èâàåìîãî íà ðàçðåøåíèåâîïðîñîâ èõ âçàèìîäåéñòâèÿ. Ñóùåñòâåííîòî, ÷òî íå èìååò çíà÷åíèÿ, êàê áûñòðî êàæ-äûé âîïðîñ îäíîãî âçàèìîäåéñòâèÿ ìîæåòáûòü ðåøåí, ñ âîçðàñòàíèåì ïîïóëÿöèè ñòî-èìîñòü îáðàáîòêè âñåõ âçàèìîäåéñòâèé, âêîíå÷íîì ñ÷åòå, äîìèíèðóåò íàä âñåìè îñ-òàëüíûìè âû÷èñëèòåëüíûìè ñòîèìîñòÿìè.

 íàøåé ìîäåëè âñå âàæíûå âçàèìîäåé-ñòâèÿ ïðîèñõîäÿò ìåæäó ñîñåäíèìè èíäèâè-äóóìàìè. ×àñòü áàçîâîãî àëãîðèòìà âû÷èñ-ëåíèÿ âçàèìîäåéñòâèé ñî ñëîæíîñòüþ Î(n2)ñëóæèò òîëüêî äëÿ òîãî, ÷òîáû íàéòè íåñêîëü-êèõ ñîñåäåé êàæäîãî èíäèâèäóóìà. Ýôôåê-òèâíûé ïóòü ê óñêîðåíèþ ðåøåíèÿ ýòîãîâîïðîñà � ñíàáäèòü ïåðñîíàæåé ÷åì-òî âðî-äå ïðîñòðàíñòâåííîé ñòðóêòóðû äàííûõ(spatial database). Ïðîãðàììèñòñêàÿ öåëü �óäåðæàòü ïåðñîíàæ «çàðàíåå êëàññèôèöè-ðîâàííûì» íà îñíîâàíèè åãî ïîëîæåíèÿ âïðîñòðàíñòâå, òàê ÷òîáû áûñòðî íàéòè, êòî

íàõîäèòñÿ â ñîñåäñòâå, íå ïðîâåðÿÿ âñþïîïóëÿöèþ.

 âû÷èñëèòåëüíîé ãåîìåòðèè ñîçäàíûðàçëè÷íûå òèïû ïðîñòðàíñòâåííûõ ñòðóê-òóð äàííûõ, êîòîðûå ìîæíî èñïîëüçîâàòüäëÿ óñêîðåíèÿ ðåøåíèÿ âîïðîñîâ âçàèìî-ïîëîæåíèÿ (íàïðèìåð, â [Samet89]).  ïðî-ãðàììå «Ãîëóáè â Ïàðêå» èñïîëüçîâàíà ïðî-ñòàÿ òåõíèêà ðàçäåëåíèÿ ïðîñòðàíñòâà íàÿ÷åéêè.

 ïðîñòðàíñòâåííîì äåëåíèè íà ÿ÷åéêè÷àñòü ïðîñòðàíñòâà â ôîðìå êóáà ðàçäåëåíàíà ìíîæåñòâî áîëåå ìåëêèõ êóáèêîâ.  íà-÷àëå ïåðñîíàæè ðàñïðåäåëåíû ïî ÿ÷åéêàìíà îñíîâàíèè èõ íà÷àëüíûõ ïîçèöèé. Êàæ-äûé ðàç, êîãäà îíè äâèãàþòñÿ, ïðîâåðÿåòñÿ,ïåðåøëè ëè îíè â íîâóþ ÿ÷åéêó, è, åñëèòàê, îáíîâëÿåòñÿ èõ ïðèíàäëåæíîñòü ê ÿ÷åé-êå. Áîëüøîé êóá ïîäîáðàí òàê, ÷òî îí îê-ðóæàåò èíòåðåñóþùóþ íàñ îáëàñòü (ëóã âïàðêå). Ñèñòåìà èç 1000 ÿ÷ååê 10 × 10 × 10êàæåòñÿ äîâîëüíî õîðîøèì íà÷àëîì äëÿýêñïåðèìåíòîâ.

 îáñóæäàåìîé ïðîãðàììå âîïðîñ áëè-çîñòè ðåøàåòñÿ ñ ïîìîùüþ îïðåäåëåíèÿñôåðû, îêðóæàþùåé äàííûé ïåðñîíàæ.Ïðîãðàììà èäåíòèôèöèðóåò âñå ÿ÷åéêè,êîòîðûå õîòÿ áû ÷àñòè÷íî ïîêðûâàþòñÿñôåðîé (ðèñóíîê 6). Åñëè îáúåêò ïðèíàäëå-æèò ñôåðå, òî åãî âçàèìîäåéñòâèå ñ îáúåê-òîì â öåíòðå ñôåðû ó÷èòûâàåòñÿ. ß÷åéêèñàìè ïî ñåáå ñîñòîÿò èç åäèíñòâåííîãî óêà-çàòåëÿ íà äâóíàïðàâëåííûé ñïèñîê íàõîäÿ-ùèõñÿ â íèõ îáúåêòîâ, êîòîðûé ñîäåðæèò

Ðèñóíîê 5. Ñôåðà âíóòðè ïðîñòðàíñòâà,ðàçáèòîãî íà ÿ÷åéêè.

84 © ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 2, 2006 ã.

Êðåéã Ðåéíîëüäñ î âçàèìîäåéñòâèè àâòîíîìíûõ ïåðñîíàæåé

Ëèòåðàòóðà

[Fung99] John Funge, Xiaoyuan Tu and Demetri Terzopoulos (1999) «Cognitive Modeling: Knowledge,Reasoning and Planning for Intelligent Characters» in Computer Graphics, volume 33 Annual ConferenceSeries (Proceedings of SIGGRAPH 99) pages 29�38.

http://www.dgp.toronto.edu/~funge/sig99/fttsig.pdf[Gran98] Steve Grand and Dave Cliff (1998) «Creatures: Entertainment software agents withartificial life» in Autonomous Agents and Multi-Agent Systems, 1(2).[Lair00] John E. Laird (2000) «It Knows What You�re Going To Do: Adding Anticipation to a

Quakebot» to appear in the AAAI 2000 Spring Symposium Series: Artificial Intelligence and InteractiveEntertainment, March 2000.

[Popo94] Zoran Popovic (1994) «The Rapid Simulation of Proximal-Interaction Particle Systems»unpublished manuscript. http://sulfuric.graphics.cs.cmu.edu/~zoran/actin/pop.ps

[Reyn87] Craig W. Reynolds (1987) «Flocks, Herds, and Schools: A Distributed Behavioral Model»in Computer Graphics 21(4) (SIGGRAPH 87 Conference Proceedings) pages 25�34.

http://www.red.com/cwr/boids.html[Reyn99] Craig Reynolds (1999) «Steering Behaviors For Autonomous Characters» in Conference

Proceedings of the 1999 Game Developers Conference, pages 763�782.http://www.red.com/cwr/steer/[Nagy99] CDS Documentation, unpublished working paper (CDS.pdf).[Samet89] Hanan Samet (1989) Applications of Spatial Data Structures, Addison-Wesley.[Fren99] Michael Frenklach and Kal Sastry (1999), «Chapter 20: Big-O Notation» in course notes to

E77N: http://www.me.berkeley.edu/~e77/lecnotes/ch20/ch20.htm

êîîðäèíàòû (x; y; z) è óêàçàòåëü íà ïåðñî-íàæ (â íàøåì ñëó÷àå, ïåðñîíàæ � ãîëóáü).

Èç-çà òîãî, ÷òî ïåðñîíàæè ïîääåðæèâà-þò ìèíèìàëüíîå ðàçäåëÿþùåå ðàññòîÿíèåè òàêèì îáðàçîì ìàêñèìàëüíóþ ñïëî÷åí-íîñòü, ÷èñëî ïåðñîíàæåé íà ïðîñòðàíñòâåäàííîãî ðàäèóñà îãðàíè÷åíî. Îáîçíà÷èìãðàíèöó k. Òàêèì îáðàçîì, èñïîëüçóÿ ïðî-ñòðàíñòâåííîå äåëåíèå, ñëîæíîñòü ó÷åòà âçà-èìîäåéñòâèé ñèñòåìû ÷àñòèö (êàê ìîäåëèñòàè) óìåíüøàåòñÿ ñ O(n2) íà O(nk), êîòî-ðàÿ, åñëè ìû ðàññìîòðèì k êàê êîíñòàíòó,àñèìïòîòè÷åñêè ýêâèâàëåíòíà O(n).  îä-íîì ýêñïåðèìåíòå ñ ïîìîùüþ ðàçáèåíèÿïðîñòðàíñòâà íà ÿ÷åéêè, èñïîëüçóþùåì ëå-òÿùóþ ñòàþ èç 1000 ïòèö, ðåøåíèå ïðî-áëåìû âçàèìîäåéñòâèé ïðîèñõîäèëî â 16 ðàçáûñòðåå, ÷åì â ïðîñòîé ðåàëèçàöèè, èìåþ-ùåé ñëîæíîñòü O(n2).

Ðèñóíîê 6. Îáúåêòû â òåíåâîé îáëàñòèìîãóò áûòü âíóòðè ñôåðû, îáúåêòû ñíàðóæè

òåíåâîé îáëàñòè íå ìîãóò áûòü âíóòðè ñôåðû.

Ïåðåâîä ñòàòüè Êðåéãà Ðåéíîëüäñà(ñòàòüÿ ïðèâîäèòñÿ â ñîêðàùåííîìèçëîæåíèè) âûïîëíåí ñòóäåòêîéIII êóðñà ìàòåìàòèêî-ìåõàíè÷åñêîãî ôàêóëüòåòà ÑÏáÃÓ(ñïåöèàëüíîñòü «Ïðèêëàäíàÿèíôîðìàòèêà â ñîöèîëîãèè»)Åêàòåðèíîé Âàðôîëîìååâîé.