{"id":145,"date":"2007-01-08T00:37:30","date_gmt":"2007-01-07T22:37:30","guid":{"rendered":"http:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/?p=145"},"modified":"2007-01-08T00:44:21","modified_gmt":"2007-01-07T22:44:21","slug":"non-lunatic-behaviour-a-summary","status":"publish","type":"post","link":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/?p=145","title":{"rendered":"Non-lunatic behaviour (a simple system design summary)"},"content":{"rendered":"<p>At its heart, Drama Princess is an animation selection system. It tells an actor which action to perform from a limited number of actions.<\/p>\n<p><IMG SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary1.jpg\"><\/p>\n<p>So we start with a whole bunch of actions. The easy way to give an actor autonomy is to continuously pick any of those actions randomly. This leads to behaviour that is only suitable for lunatics.<\/p>\n<p><IMG SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary2.png\"><\/p>\n<p>The behaviour of non-lunatics is not random most of the time. It evolves gradually. To simulate this gradual evolution, we have first put the actions in groups per object. This allows an actor to concentrate on interacting with a particular object, rather than jumping from the flower to the car to the dog.<\/p>\n<p><IMG SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary3.png\"><\/p>\n<p>Next, we have arranged each such group in order of how much you need to <em>like<\/em> the object to perform the interaction (or how much the object would like that you do a certain thing with it).<\/p>\n<p><IMG SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary4.png\"><\/p>\n<p>By allowing the actor only to do something which is close to the thing he did before, we ensure that the actor doesn&#8217;t first kiss the dog and then kicks it with no apparent reason (lunatic behaviour).<\/p>\n<p><strong>At any given moment, the actor will prefer to do things with the same object as before and he will only do something of a similar nature.<\/strong><\/p>\n<p>If there is no change at all, however, the actor will seem to be obsessive, always doing the same kind of thing with the same object. So we make the actor get bored after a while, which forces him to choose another object to interact with. And to make sure that he doesn&#8217;t keep doing the same kind of thing whenever he picks a certain object, we make his feelings for that object change. Since actions are arranged in order of feelings, the range of actions that is available changes when the feelings change.<\/p>\n<p><EMBED SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary5.swf\" WIDTH=440 HEIGHT=40><\/p>\n<p>We cannot randomly change his feelings, however, for that would make him look like a lunatic again.<\/p>\n<p><EMBED SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary6.swf\" WIDTH=440 HEIGHT=40><\/p>\n<p>We can also not change his feelings only based on the action he did before because this leads to jitter, which is virtually the same as no change at all.<\/p>\n<p>These feelings need to shift gradually.<\/p>\n<p><EMBED SRC=\"http:\/\/Tale-of-Tales.com\/DramaPrincess\/images\/summary7.swf\" WIDTH=440 HEIGHT=40><\/p>\n<p>To achieve this we randomly define a target for the actor&#8217;s feelings to aspire to. But only once in a while. Whenever the actor interacts with the object, his feeling will change a notch towards the target. As his feelings change, the range of actions changes as well. And since the actions match the feelings, the actor appears to evolve towards liking the object less or more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At its heart, Drama Princess is an animation selection system. It tells an actor which action to perform from a limited number of actions. So we start with a whole bunch of actions. The easy way to give an actor autonomy is to continuously pick any of those actions randomly. This leads to behaviour that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-145","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=145"}],"version-history":[{"count":0,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=\/wp\/v2\/posts\/145\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tale-of-tales.com\/DramaPrincess\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}