AI for Games and Animation: A Cognitive Modeling Approach
By John Funge
Modeling for computer games addresses the challenge of automating a variety of difficult development tasks. An early milestone was the combination of geometric models and inverse kinematics to simplify keyframing. Physical models for animating particles, rigid bodies, deformable solids, fluids, and gases have offered the means to generate copious quantities of realistic motion through dynamic simulation. Biomechanical modeling employs simulated physics to automate the lifelike animation of animals with internal muscle actuators. Research in behavioral modeling is making progress towards self-animating characters that react appropriately to perceived environmental stimuli. It has remained difficult, however, to instruct these autonomous characters so that they satisfy the programmer's goals. Hitherto absent in this context has been a substantive apex to the computer graphics modeling pyramid (Figure 1), which we identify as cognitive modeling.
Figure 1. Cognitive modeling is the new
apex of the CG modeling hierarchy
Cognitive models go beyond behavioral models, in that they govern what a character knows, how that knowledge is acquired, and how it can be used to plan actions. Cognitive models are applicable to instructing the new breed of highly autonomous, quasi-intelligent characters that are beginning to find use in interactive computer games. Moreover, cognitive models can play subsidiary roles in controlling cinematography and lighting. See the color plates at the end of this article for some screenshots from two cognitive modeling applications.
We decompose cognitive modeling into two related sub-tasks: domain knowledge specification and character instruction. This is reminiscent of the classic dictum from the field of artificial intelligence (AI) that tries to promote modularity of design by separating out knowledge from control.
knowledge + instruction = intelligent behavior
Domain (knowledge) specification involves administering knowledge to the character about its world and how that world can change. Character instruction involves telling the character to try to behave in a certain way within its world in order to achieve specific goals. Like other advanced modeling tasks, both of these steps can be fraught with difficulty unless developers are given the right tools for the job.
Background
The situation calculus is the mathematical logic notation we will be using and it has many advantages in terms of clarity and being implementation agnostic, but it is somewhat of a departure from the repertoire of mathematical tools commonly used in computer graphics. We shall therefore overview in this section the salient points of the situation calculus, whose details are well-documented in the book [Funge99] and elsewhere [LRLLS97,LLR99]. It is also worth mentioning that from a user's point of view the underlying theory can be hidden. In particular, a user is not required to type in axioms written in first-order mathematical logic. In particular, we have developed an intuitive high-level interaction language CML (Cognitive Modeling Language) whose syntax employs descriptive keywords, but which has a clear and precise mapping to the underlying formalism (see the book [Funge99], or website www.cs.toronto.edu/~funge, for more details ).
The situation calculus is an AI formalism for describing changing worlds using sorted first-order logic. A situation is a "snapshot" of the state of the world. A domain-independent constant s0 denotes the initial situation. Any property of the world that can change over time is known as a fluent. A fluent is a function, or relation, with a situation term (by convention) as its last argument. For example, Broken(x, s) is a fluent that keeps track of whether an object x is broken in a situation s.
Primitive actions are the fundamental instrument of change in our ontology. The sometimes counter-intuitive term "primitive" serves only to distinguish certain atomic actions from the "complex", compound actions that we will defined earlier. The situation s' resulting from doing action a in situation s is given by the distinguished function do, so that s' = do(a,s). The possibility of performing action a in situation s is denoted by a distinguished predicate Poss (a,s). Sentences that specify what the state of the world must be before performing some action are known as precondition axioms. For example, it is possible to drop an object x in a situation s, if and only if a character is holding it:
The effects of an action are given by effect axioms. They give necessary conditions for a fluent to take on a given value after performing an action. For example, the effect of dropping a fragile object x is that the object ends up being broken
Surprisingly, a naive translation of effect axioms into the situation calculus does not give the expected results. In particular, stating what does not change when an act
AI สำหรับเกมและภาพเคลื่อนไหว: วิธีการสร้างโมเดลการรับรู้โดยจอห์น Fungeสร้างโมเดลสำหรับเกมคอมพิวเตอร์อยู่ท้าทายของอัตโนมัติต่าง ๆ ของงานพัฒนายาก ไมล์สโตนเป็นต้นเป็นรูปทรงเรขาคณิตและผกผัน kinematics จะง่าย keyframing แบบจำลองทางกายภาพสำหรับการทำให้เคลื่อนไหวอนุภาค เนื้อแข็ง deformable ของแข็ง ของเหลว และแก๊สได้เสนอวิธีการในการสร้างปริมาณของการเคลื่อนไหวที่เหมือนจริงผ่านการจำลองแบบไดนามิก copious สร้างโมเดล biomechanical ใช้จำลองฟิสิกส์การทำสัตว์มีกล้ามเนื้อภายในหัวขับไหว lifelike วิจัยในโมเดลพฤติกรรมจะทำให้ความก้าวหน้าต่อตนเองทำให้เคลื่อนไหวตัวที่ตอบสนองสิ่งเร้าสิ่งแวดล้อมที่รับรู้อย่างเหมาะสม ยังคงยาก อย่างไรก็ตาม การแนะนำตัวอักษรเหล่านี้ปกครองตนเองเพื่อให้พวกเขาตอบสนองเป้าหมายของโปรแกรมเมอร์ ขาดมาจนบัด นี้บริบทได้ apex แน่นกับคอมพิวเตอร์กราฟิกโมเดลพีระมิด (รูปที่ 1), ซึ่งเราระบุเป็นโมเดลที่รับรู้รูปที่ 1 สร้างโมเดลการรับรู้เป็นใหม่ สุดยอดของ CG โมเดลลำดับชั้นรุ่นที่รับรู้ไปไกลกว่าโมเดลพฤติกรรม ที่พวกเขาควบคุมอักขระรู้ วิธีรับรู้ที่ และวิธีการใช้การวางแผนการดำเนินการ รับรู้รูปแบบการสอนใหม่พันธุ์สูงอิสระ อักขระกึ่งอัจฉริยะที่เริ่มต้นในการค้นหาที่ใช้ในเกมแบบโต้ตอบได้ นอกจากนี้ รุ่นรับรู้สามารถเล่นบทบาทบริษัทควบคุม cinematography และแสงสว่าง ดูแผ่นสีที่ตอนท้ายของบทความนี้บางภาพหน้าจอจากโปรแกรมประยุกต์สองโมเดลการรับรู้เราเปื่อยสร้างโมเดลการรับรู้เป็นสองภารกิจย่อยที่เกี่ยวข้อง: โดเมนเพิ่มข้อมูลจำเพาะและอักขระคำแนะนำ นี่คือของ dictum คลาสสิกจากฟิลด์ของปัญญาประดิษฐ์ (AI) ที่พยายามส่งเสริม modularity ออกแบบ โดยแยกออกจากการควบคุมความรู้ความรู้ + คำแนะนำ =ลักษณะการทำงานอัจฉริยะข้อมูลจำเพาะเกี่ยวกับโดเมน (ความรู้) เกี่ยวข้องกับการจัดการความรู้ไปยังอักขระเกี่ยวกับของโลกและการเปลี่ยนแปลงของโลกที่สามารถ อักขระคำสั่งเกี่ยวข้องกับการบอกตัวละครเพื่อทำการภายในของโลกเพื่อให้บรรลุเป้าหมายเฉพาะ เหมือนกันขั้นสูงสร้างงานโมเดล ทั้งสองขั้นตอนเหล่านี้ได้เต็มไป ด้วยความยากลำบากเว้นแต่นักพัฒนาจะได้รับเครื่องมือที่เหมาะสมสำหรับงานพื้นหลังแคลคูลัสสถานการณ์เป็นสัญกรณ์คณิตศาสตร์ตรรกะที่เราจะใช้ และมีประโยชน์มากความคมชัดและถูกใช้งาน agnostic แต่ก็ค่อนข้างออกแบบมาจากละครของเครื่องมือทางคณิตศาสตร์ที่ใช้ในคอมพิวเตอร์กราฟิก เราจะดังนั้นภาพรวมในส่วนนี้จุดเด่นของแคลคูลัสสถานการณ์ มีรายละเอียดดีบันทึกไว้ในหนังสือ [Funge99] และอื่น ๆ [LRLLS97, LLR99] เป็นมูลค่าการกล่าวถึงว่า จากมุมมองของผู้ใช้ ทฤษฎีพื้นฐานสามารถซ่อน โดยเฉพาะ ผู้ใช้ไม่จำเป็นต้องพิมพ์ในสัจพจน์ที่เขียนในใบสั่งแรกคณิตตรรกศาสตร์ In particular, we have developed an intuitive high-level interaction language CML (Cognitive Modeling Language) whose syntax employs descriptive keywords, but which has a clear and precise mapping to the underlying formalism (see the book [Funge99], or website www.cs.toronto.edu/~funge, for more details ).แคลคูลัสสถานการณ์เป็น formalism เป็น AI ในการเปลี่ยนแปลงโลกโดยใช้เรียงลำดับตรรกะลำดับแรก สถานการณ์ "snapshot" สถานะของโลกได้ S0 คงไม่ขึ้นกับโดเมนหมายถึงสถานการณ์ที่เริ่มต้น คุณสมบัติของโลกที่สามารถเปลี่ยนแปลงช่วงเวลาเรียกว่าความชำนาญ ความชำนาญเป็นฟังก์ชัน หรือ ความสัมพันธ์กับเงื่อนไขสถานการณ์ (ตามแผน) เป็นอาร์กิวเมนต์สุดท้าย ตัวอย่าง โบรเคน (x, s) คือ คล่องที่เก็บของว่าวัตถุ x แตกใน s สถานการณ์การดำเนินการดั้งเดิมเป็นเครื่องมือพื้นฐานของการเปลี่ยนแปลงในภววิทยาของเรา คำบางครั้ง counter-intuitive ที่ทำหน้าที่เฉพาะเพื่อแยกการดำเนินการบางอะตอมจาก "ซับซ้อน" "ดั้งเดิม" ผสมเราจะกำหนดไว้ก่อนหน้านี้ S สถานการณ์ ' เกิดจากการทำการดำเนินการในสถานการณ์ s ถูกกำหนด โดยฟังก์ชันที่แตกต่างทำ ให้ s' = do(a,s) เป็นไปได้ของการดำเนินการในสถานการณ์ สามารถระบุ s โดยเพรดิเคตทั้ง Poss (a, s) ประโยคที่ระบุว่า รัฐโลกต้องก่อนที่จะดำเนินการกระทำบางอย่าง จะเรียกว่าสัจพจน์ของเงื่อนไข ตัวอย่าง เป็นไปได้ที่จะปล่อยวัตถุ x ในการสถานการณ์ s และเฉพาะอักขระถือได้:ผลของการกระทำจะได้รับ โดยสัจพจน์ผล พวกเขาให้เงื่อนไขจำเป็นสำหรับชำนาญการใช้ค่าที่กำหนดหลังจากที่ทำการดำเนินการ ตัวอย่าง ลักษณะพิเศษของวางวัตถุที่เปราะบาง x ไม่ว่า วัตถุสิ้นสุดขึ้นการเสียจู่ ๆ แปลขำน่าของสัจพจน์ผลเป็นแคลคูลัสสถานการณ์ไม่ให้ผลลัพธ์คาดไว้ โดยเฉพาะอย่างยิ่ง ระบุอะไรไม่เปลี่ยนเมื่อเป็น
การแปล กรุณารอสักครู่..