<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-1667313809239009473</atom:id><lastBuildDate>Wed, 17 Mar 2010 13:37:17 +0000</lastBuildDate><title>rune|vision blog</title><description>The projects and visions of game programmer Rune Skovbo Johansen.</description><link>http://runevision.com/blog/</link><managingEditor>noreply@blogger.com (Rune Skovbo Johansen)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-6530981202073195994</guid><pubDate>Wed, 17 Mar 2010 13:37:00 +0000</pubDate><atom:updated>2010-03-17T14:37:17.638+01:00</atom:updated><title>This blog has moved</title><description>&lt;br /&gt;       This blog is now located at http://blog.runevision.com/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://blog.runevision.com/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://blog.runevision.com/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-6530981202073195994?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2010/03/this-blog-has-moved.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-2351210496966738173</guid><pubDate>Sun, 14 Mar 2010 00:13:00 +0000</pubDate><atom:updated>2010-03-14T02:35:12.396+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>unity</category><category domain='http://www.blogger.com/atom/ns#'>game development</category><category domain='http://www.blogger.com/atom/ns#'>gdc</category><title>Field Report from GDC 2010</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://runevision.com/blog/uploaded_images/4428529500_1f79e612e5-743468.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 279px; height: 320px;" src="http://runevision.com/blog/uploaded_images/4428529500_1f79e612e5-743468.jpg" border="0" alt="" /&gt;&lt;/a&gt;I've been spending the last week in San Francisco attending the &lt;a href="http://gdconf.com/" target="_blank"&gt;Game Developers Conference&lt;/a&gt; and showing off &lt;a href="http://unity3d.com/" target="_blank"&gt;Unity&lt;/a&gt; at our awesome (and very busy) booth.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Booth Experiences&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The people I've met have been very excited about Unity; both our product in general and about the &lt;a href="http://unity3d.com/unity/coming-soon/unity-3" target="_blank"&gt;new features&lt;/a&gt; we'll be releasing in upcoming Unity 3 this summer and which we previewed at the booth. Unlike last year, there were practically no people this year who hadn't heard about Unity some way or another.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;IGF Impressions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://igf.com/" target="_blank"&gt;Independent Games Festival&lt;/a&gt; awards show was great. I was especially excited about Danish guys &lt;span style="font-style:italic;"&gt;Playdead&lt;/span&gt; winning no less than two awards for their game &lt;a href="http://www.limbogame.org/" target="_blank"&gt;Limbo&lt;/a&gt; and other Danish guys &lt;span style="font-style:italic;"&gt;Press Play&lt;/span&gt; winning an award for their Unity game &lt;a href="http://maxandthemagicmarker.com/" target="_blank"&gt;Max &amp;amp; the Magic Marker&lt;/a&gt; for Wii, PC, and Mac. I've had a chance to play both, and they're both excellent games. Coincidentally they're both side-scrolling platform games with a strong puzzle focus, but besides that they're completely different.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Animation Insights&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I only got to see one session this year - &lt;a href="https://www.cmpevents.com/GD10/a.asp?option=C&amp;V=11&amp;SessID=10429" target="_blank"&gt;Player Movement and Animation in Drake's Fortune 1 and 2&lt;/a&gt;. It was very well presented.  Everything was sensible and easy to understand; there was nothing ground-breaking but a lot of useful tips and tricks. With the exception of one thing that was purely done to save memory (flipping animations on the left-right axis), everything they did could be done in Unity without problems. They basically rely on lots of animation blending, some of the animations applying to only part of the skeleton, and some animations being additive; all things that are supported in Unity. They also do some IK fixes, which of course can be done in Unity with scripting.&lt;br /&gt;&lt;br /&gt;Their method for making characters standing and moving correctly on uneven surfaces is a little similar to how my &lt;a href="http://unity3d.com/support/resources/unity-extensions/locomotion-ik" target="_blank"&gt;Locomotion System&lt;/a&gt; does it, just a bit simpler: They too use raycasts to find the ground height for the feet, then adjust the hip/root height, and then use IK to adjust the legs.&lt;br /&gt;&lt;br /&gt;The most interesting thing they did was having a few long animations with random wiggling of the character. By applying this on top of a 1-frame idle animation they get a nice long, varied idle animation, but it means they can have lots of different idle animations that are all just 1 frame long which turn into nice animations when the wiggly-animation is applied on top. They do similar things with walking and running to add variation that can  span over a long time but doesn't require much space because it can be reused for many different animations. Perhaps we can add something like that for our new Unity 3 launch demo that we're working on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Going Home&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's been a long and hard, awesome week, and I've met lots of great people, but now I also look forward to going home again. I'll be arriving back in Copenhagen on Monday, and once I've recharged a little I'll be continuing working on getting Unity 3 out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-2351210496966738173?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2010/03/field-report-from-gdc-2010.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-5340544970490647521</guid><pubDate>Thu, 11 Feb 2010 20:47:00 +0000</pubDate><atom:updated>2010-02-11T22:05:13.690+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>unity</category><category domain='http://www.blogger.com/atom/ns#'>game development</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>3rd Person Shooter Unity Demo</title><description>&lt;a href="http://blogs.unity3d.com/2010/02/11/new-character-animation-3rd-person-shooter-demo/" target="_new"&gt;&lt;img src="http://runevision.com/blog/images/20100211_3rdpersonshooter.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At work I've been working on a Unity demo to demonstrate various animation techniques, and I ended up making it into an actual game (albeit a small one). You can read more about it - and play it! - here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.unity3d.com/2010/02/11/new-character-animation-3rd-person-shooter-demo/" target="_new"&gt;New Character Animation / 3rd Person Shooter Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's based on a tech demo that Paulius Liekis and I did for a presentation at Unite '09. You can see a video of the presentation here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://unity3d.com/support/resources/unite-presentations/character-animation-tips-amp-tricks"&gt;Character Animation Tips &amp;amp; Tricks&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-5340544970490647521?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2010/02/3rd-person-shooter-unity-demo.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-8488729056498547089</guid><pubDate>Thu, 04 Feb 2010 20:05:00 +0000</pubDate><atom:updated>2010-02-04T21:57:31.155+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>unity</category><category domain='http://www.blogger.com/atom/ns#'>game development</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>What I did at Nordic Game Jam</title><description>This weekend I participated in the &lt;a href="http://nordicgamejam.org/" target="_blank"&gt;Nordic Game Jam&lt;/a&gt; - the first and biggest instance of the &lt;a href="http://www.globalgamejam.org/" target="_blank"&gt;Global Game Jam&lt;/a&gt; event.&lt;br /&gt;&lt;br /&gt;The basic idea is that lots of people meet and split up into small groups that each &lt;span style="font-style: italic;"&gt;make a game in about 40 hours&lt;/span&gt;. That's some seriously intensive game making, which is very exciting and fun (and exhausting). Because the games are so small and quick, there is unlimited room for wild experimentation which would not often be risked in larger scoped games with more serious commitments.&lt;br /&gt;&lt;br /&gt;In my group we made &lt;a href="http://www.globalgamejam.org/2010/preschool-theater-director" target="_blank"&gt;Preschool Theater Director&lt;/a&gt; - a game where you have to direct a chaotic set of pre-school kids in order to enact Shakespeare's "A Midsummer Night's Dream" on the stage in front of a demanding audience of parents. You can &lt;a href="http://runevision.com/multimedia/preschooltheater/"&gt;play it online here&lt;/a&gt; via the Unity browser plug-in.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://runevision.com/multimedia/preschooltheater/"&gt;&lt;img src="http://runevision.com/multimedia/preschooltheater/preschooltheater480.png" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The game is over quite quickly (if you can remember the names of the children anyway) but the graphics and sound design and general sense of attempting to direct small clueless kids makes it for a funny experience.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.floriansanger.com/" target="_blank"&gt;Florian Sänger&lt;/a&gt; made the graphics, &lt;a href="http://bushghost.blogspot.com/" target="_blank"&gt;Bernie Schulenburg&lt;/a&gt; the sound and voices, &lt;a href="http://www.myspace.com/lyskurv" target="_blank"&gt;Kasper Clemmensen&lt;/a&gt; produced the music, and &lt;a href="http://gutefabrik.com/" target="_blank"&gt;Nils Deneken&lt;/a&gt; contributed with bits here and there though he was busy working on another game at the same time. &lt;a href="http://dk.linkedin.com/in/laukorsgaard" target="_blank"&gt;Lau Korsgaard&lt;/a&gt; helped with some initial prototype programming before family commitments took over. After that I was the only programmer on the game which made me somewhat of a bottleneck, but I'm glad we got it into a state where it's fully playable and actually a bit of fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-8488729056498547089?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2010/02/what-i-did-at-nordic-game-jam.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-7538258271524389326</guid><pubDate>Sun, 06 Sep 2009 17:58:00 +0000</pubDate><atom:updated>2009-09-06T20:57:32.211+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><title>Master's Thesis now online</title><description>My Master's Thesis is now finally online:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://runevision.com/thesis/" target="thesis"&gt;Automated Semi-Procedural Animation for Character Locomotion&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://runevision.com/thesis/videos_demos/locomotion_splash_small.png" /&gt;&lt;br /&gt;&lt;br /&gt;I would have made it available earlier, but the University took three months reviewing it, and I wanted them to be done with it first.&lt;br /&gt;&lt;br /&gt;The 114 page thesis thoroughly discusses almost all parts of the implemented system and compares the used techniques and methods with related academic work on the subject. Here's the abstract:&lt;br /&gt;&lt;blockquote&gt;This thesis presents a framework of techniques for interactive synthesis of highly ﬂexible character locomotion. The system uses a set of example motions primarily in the form of keyframed or motion-captured walk and run cycles. The system automatically analyzes each motion at design-time and extracts parameters such as impact and lift-off times for each foot as well as overall velocity. At runtime the system ﬁrst blends the motions according to the current velocity and rotational velocity of the character, it then adjusts the movements of the bones in the legs by means of inverse kinematics to ensure that the feet step correctly on the ground. The system works for both human and non-human characters with any amount of legs and in whatever style the provided example motions are in. It can adjust animations made for a speciﬁc speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.&lt;br /&gt;&lt;br /&gt;Notable innovations in the thesis include the introduction of the concept of a footbase, which is a single combined heel and toe constraint that can retain the important information about the alignment of a foot relative to the ground; the calculation of a supporting ground height that can be used to produce motion with a good sense of weight, regardless of the number of legs and of the gait style; the calculation of natural-looking foot alignments that works for just about any characters and gait styles, and a scattered data interpolation algorithm that has desirable properties when interpolating motions with different velocities.&lt;/blockquote&gt;&lt;br /&gt;The thesis has plenty of diagrams and illustrations to help presenting the new concepts and techniques. The accompanying videos also help in that regard.&lt;br /&gt;&lt;br /&gt;Having finished my Master's Thesis doesn't change a whole lot in my life in practice. I've already been employed full time at &lt;a href="http://unity3d.com/" target="unity"&gt;Unity Technologies&lt;/a&gt; since February and I will be continuing my work there helping continuously improving the Unity game engine and authoring tool. (My blogging for Unity &lt;a href="http://blogs.unity3d.com/author/rune/" target="unityblog"&gt;can be seen here&lt;/a&gt; by the way.)&lt;br /&gt;&lt;br /&gt;That said, I'm very happy to finally be done with this academic endeavor. This also marks the end of the almost exclusive focus on the Locomotion System on this blog. My future blogging here will probably be centered around more broad game development related subjects, though I won't be shy of occasionally diverting even from that topic if I should feel like it.&lt;br /&gt;&lt;br /&gt;As always, the Locomotion System itself can be &lt;a href="http://unity3d.com/support/resources/example-projects/locomotion-ik" target="locomotionatunity"&gt;downloaded here&lt;/a&gt; and it is free to use in any Unity game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-7538258271524389326?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/09/masters-thesis-about-locomotion-system.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-5482630717981310315</guid><pubDate>Sat, 18 Apr 2009 19:48:00 +0000</pubDate><atom:updated>2009-04-18T22:17:12.163+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>Fully Automated Blending, Revisited</title><description>One of the things that makes the Locomotion System easy to setup and use is the fact that it automatically analyzes the velocities of all the input walk and run cycles and plots them into a velocity map. At runtime the system automatically assign appropriate blending weights to the animations, such that the closest neighboring animations (in terms of their velocities) get the highest blending weights.&lt;br /&gt;&lt;br /&gt;While developing the system I tested this blending with as few as 2 sample animations (1 idle and 1 walk cycle) and with a much as 9 (1 idle, walk cycles in 4 directions, and run cycles in 4 directions).&lt;br /&gt;&lt;br /&gt;A user in the Unity community, Chris Mansell Aka. Capnbubs, has now &lt;a href="http://forum.unity3d.com/viewtopic.php?p=147237" target="blank"&gt;posted an early preview demo&lt;/a&gt; of a game he is developing, which utilizes the Locomotion System. In it, the avatar walks and runs with easy in a landscape with cliffs and hills. &lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://runevision.com/blog/images/20090418_locomotion8directional.jpg"&gt;&lt;/div&gt;&lt;br /&gt;Chris informs me about the animated character:&lt;blockquote&gt;I've got walk and a run animations, each in 5 directions, three of them mirrored for moving backwards.&lt;/blockquote&gt;In other words, walk and run cycles in 8 directions, which makes for a total of 17 animations when also including the idle. The image above depicts a visualization of the velocities of the animations plotted into the velocity map.&lt;br /&gt;&lt;br /&gt;I only ever tested with half that many animations myself, but the automated analysis and the runtime blending based on scattered data interpolation ensures that it still &lt;span style="font-style:italic;"&gt;just works&lt;/span&gt; out of the box. Also, the built in ability to make an animation double as its backwards equivalent means that Chris effectively got 17 animations although he only made 11.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-5482630717981310315?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/04/fully-automated-blending-revisited.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-4984382737784254091</guid><pubDate>Tue, 31 Mar 2009 19:56:00 +0000</pubDate><atom:updated>2009-03-31T22:09:54.505+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>gdc</category><title>Locomotion System GDC 2009 Slides</title><description>My lecture at GDC about my Locomotion System went really well I think. I've had some requests for the slides, and they're available here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://runevision.com/multimedia/unity/locomotion/Dynamic_Walking_GDC_2009.pdf" target="_blank"&gt;Dynamic Walking with Semi-Procedural Animation (PDF, 16 MB)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note that the presentation included quite a few videos which are not in the above slides, so a few points may not come properly across if you did not see the presentation at GDC.&lt;br /&gt;&lt;br /&gt;GDC may at some point make a recording of the slides available, complete with audio. I don't know if that would also include the videos I presented. I'm not so sure of the details. If anybody finds out, please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-4984382737784254091?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/03/locomotion-system-gdc-2009-slides.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-4562970421053148894</guid><pubDate>Thu, 19 Mar 2009 12:03:00 +0000</pubDate><atom:updated>2009-03-19T13:07:44.095+01:00</atom:updated><title>Locomotion System 0.9.4 out now</title><description>&lt;img src="http://runevision.com/blog/images/20081027_locomotion_reflected.jpg" align="right"&gt;The Locomotion System has been released in a new version. It is available for download at the Unity website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://unity3d.com/support/resources/example-projects/locomotion-ik" target="_blank"&gt;Go To Locomotion System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The new version has several improvements and bug fixes that prevents some problems that some people were experiencing, and which make the motion smoother in certain cases. It also has a new scene file for improved visualization of the motion curves that are automatically analyzed by the system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-4562970421053148894?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/03/locomotion-system-094-out-now.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-6776932098345995784</guid><pubDate>Thu, 19 Mar 2009 11:53:00 +0000</pubDate><atom:updated>2009-03-19T12:56:46.673+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>gdc</category><title>Locomotion System at GDC 2009 update</title><description>&lt;img src="http://runevision.com/blog/images/20090216_gdc09.jpg" align="right"&gt;The Game Developers Conference 2009 is very close now and I will be doing a 60-minute lecture in the Programming track on the subject of:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="https://www.cmpevents.com/GD09/a.asp?option=C&amp;V=11&amp;SessID=9004"&gt;Dynamic Walking with Semi-Procedural Animation&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;(Follow the link to see the session description on the GDC website.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Time: Friday (March 27, 2009), 4:00pm - 5:00pm&lt;br /&gt;Location: Room 2018, West Hall&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-6776932098345995784?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/03/locomotion-system-at-gdc-2009-update.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-1372202551889454872</guid><pubDate>Thu, 19 Mar 2009 11:19:00 +0000</pubDate><atom:updated>2009-03-19T13:01:21.811+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>unity</category><category domain='http://www.blogger.com/atom/ns#'>gdc</category><title>Unity 2.5 released for Mac and Windows</title><description>&lt;img src="http://unity3d.com/images/news/unity25launch.jpg" align="right" /&gt;Version 2.5 of the Unity game engine and authoring tool &lt;a href="http://unity3d.com" target="blank"&gt;has finally been released&lt;/a&gt; and is now for the first time available on Microsoft Windows too.&lt;br /&gt;&lt;br /&gt;Unity is the engine I've used to develop the &lt;a href="http://runevision.com/blog/labels/locomotion.html"&gt;Locomotion System&lt;/a&gt; with. Unity is gaining popularity like mad these days and has been used for &lt;a href="http://unity3d.com/gallery/game-list/" target="blank"&gt;so many cool games&lt;/a&gt; for Mac, Windows, web browsers, iPhone, and Wii.&lt;br /&gt;&lt;br /&gt;Besides Windows authoring support, Unity 2.5 primarily bring &lt;a href="http://unity3d.com/unity/whats-new/unity-2.5"&gt;improvements to the authoring tool&lt;/a&gt;, including a fully customizable tabbed interface and improved support for creating custom editor windows. &lt;br /&gt;&lt;br /&gt;I also work for Unity Technologies now, and we'll be proud to show off Unity at GDC 2009. We'll be in booth #5110 in the North Hall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-1372202551889454872?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/03/unity-25-released-for-mac-and-windows.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-7784192988779035208</guid><pubDate>Mon, 16 Feb 2009 21:06:00 +0000</pubDate><atom:updated>2009-02-16T22:57:16.455+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><category domain='http://www.blogger.com/atom/ns#'>gdc</category><category domain='http://www.blogger.com/atom/ns#'>carreer</category><title>Locomotion System at GDC 2009!</title><description>&lt;img src="http://runevision.com/blog/images/20090216_gdc09.jpg" align="right"&gt;The Game Developers Conference 2009 is near and I am proud to announce that my session proposal has been approved! I will be doing a 60-minute lecture in the Programming track on the subject of:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="https://www.cmpevents.com/GD09/a.asp?option=C&amp;V=11&amp;SessID=9004"&gt;Dynamic Walking with Semi-Procedural Animation&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;(Follow the link to see the session description on the GDC website.)&lt;br /&gt;&lt;br /&gt;I am honored to be presenting my work in the company of the great minds of the game industry at such an early point in my career. This is the second time I am going to GDC and I am truly looking forward to it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Updated Interactive Demo&lt;/b&gt;&lt;br /&gt;Now, since I'm updating the blog anyway, I have thrown in the latest version of the uneven terrain demo that I have used as a testing bed for the Locomotion System. New in this version is a coyote, as well as lots of visualization options that you can play around with to get an idea of the inner workings of the system. This is the same version that was used for the &lt;a href="http://runevision.com/blog/2008/11/video-demo-2-of-locomotion-system.html"&gt;Video Demo 2 of the Locomotion System&lt;/a&gt; in the previous post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Instructions for the demo:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border=1 style="border:1px solid #000;"&gt;&lt;tr style="font-weight:bold; border-collapse:collapse;"&gt;&lt;td&gt;Command&lt;/td&gt;&lt;td&gt;Keyboard&lt;/td&gt;&lt;td&gt;Gamepad&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Walking-direction&lt;/td&gt;&lt;td&gt;arrow keys&lt;/td&gt;&lt;td&gt;analog stick 1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Walking-speed&lt;/td&gt;&lt;td&gt;shift&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Facing-direction&lt;/td&gt;&lt;td&gt;W, A, S, D&lt;/td&gt;&lt;td&gt;analog stick 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Jump&lt;/td&gt;&lt;td&gt;space&lt;/td&gt;&lt;td&gt;button A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Time slow down / speed up&lt;/td&gt;&lt;td&gt;numpad - / +&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;img src="http://runevision.com/blog/images/20080610_controller_info.jpg" align="right"&gt;You can control the characters with either the keyboard or with a game pad. With a game pad, such as an XBox 360 controller, the direction and speed can be controlled precisely with ease, while independently controlling facing direction with the secondary stick.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/step_walk_06",480,360);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;In this demo the terrain can be dynamically controlled with the sliders at the top. You can create stairs, slopes, and various combinations. The terrain will reflect the changes once the character has walked a little distance to the left or right. Enable manual mode to control the character yourself, as described above. This demo uses four animations for walking (forward, backwards, and sideways) and also four for running.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;In other news&lt;/b&gt;&lt;br /&gt;Besides having my session at GDC accepted, a few other notable things have happened recently:&lt;ul&gt;&lt;li&gt;I have moved from Aarhus to Copenhagen (both are cities in Denmark; Copenhagen is the capital) together with my girlfriend.&lt;br /&gt;&lt;li&gt;I have started working at &lt;a href="http://unity3d.com"&gt;Unity Technologies&lt;/a&gt;, a company making an extremely cool game engine and authoring tool called Unity.&lt;br /&gt;&lt;li&gt;I am still working on finishing my Master thesis about the locomotion system ... it will hopefully be done soon!&lt;br /&gt;&lt;/ul&gt;That's it for now. I hope to see you at GDC!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-7784192988779035208?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2009/02/locomotion-system-at-gdc-2009.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-348763615997842877</guid><pubDate>Sat, 01 Nov 2008 17:22:00 +0000</pubDate><atom:updated>2008-11-01T18:26:43.054+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><title>Video Demo 2 of Locomotion System</title><description>I've made a new video with voice-over demonstrating the capabilities of the now released Locomotion System, including the new features that enables it to be used with 4-legged animals:&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="392"&gt;&lt;param name="movie" value="http://www.youtube.com/v/v2q5kuic6HA&amp;hl=en&amp;fs=1&amp;ap=%2526fmt%3D18"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/v2q5kuic6HA&amp;hl=en&amp;fs=1&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="392"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;In the video I explain the features of the system step by step in a straightforward manner while demonstrating the effects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-348763615997842877?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/11/video-demo-2-of-locomotion-system.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-2177140109122422517</guid><pubDate>Mon, 27 Oct 2008 10:50:00 +0000</pubDate><atom:updated>2008-10-27T13:34:05.985+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>press</category><title>Locomotion System Released Now</title><description>&lt;img src="http://runevision.com/blog/images/20081027_locomotion_reflected.jpg" align="right"&gt;The Locomotion System has been officially released last Friday concurrent with my presentation of it at &lt;a href="http://unity3d.com/unite/"&gt;Unite 2008&lt;/a&gt;. It is available for download at the Unity website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://unity3d.com/support/resources/example-projects/locomotion-ik" target="_blank"&gt;Go To Locomotion System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the website:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;About&lt;/span&gt;&lt;br /&gt;Take a look at how semi-procedural animation can dramatically improve the realism of animated humans and animals.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Full Control of Style&lt;/span&gt;&lt;br /&gt;Animators are experts in creating motions with specific styles and personalities. The Locomotion System uses keyframed or motion-captured animations as input and only adjusts them minimally to move the feet correctly in a dynamic and detailed environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Full Control of Behavior&lt;/span&gt;&lt;br /&gt;Move your character around by any means you desire, be it a CharacterController, a RigidBody, or your own custom movement logic. The Locomotion System simply observes the position, alignment, velocity and rotational velocity of your character and deduces everything from that, along with some raycasts onto the ground.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Details&lt;/span&gt;&lt;br /&gt;The Locomotion System automatically blends your keyframed or motion-captured walk and run cycles and then adjusts the movements of the bones in the legs to ensure that the feet step correctly on the ground. The system can adjust animations made for a specific speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;License&lt;/span&gt;&lt;br /&gt;The Locomotion System is available for free commercial and non-commercial use when used in a Unity game.&lt;br /&gt;&lt;br /&gt;The full license is included in the package.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Note&lt;/span&gt;&lt;br /&gt;The Locomotion System is developed by Rune Skovbo Johansen in collaboration with Unity Technologies.&lt;/blockquote&gt;&lt;br /&gt;The presentation of the Locomotion System at Unite 2008 was received very well judging from the number of times the audience burst spontaneously into applause, and &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=20813" target="_blank"&gt;this Gamasutra article&lt;/a&gt; refers to the presentation as a "crowd favorite". I'll let you know when the video of the presentation is online.&lt;br /&gt;&lt;br /&gt;If you are a Unity user and have any technical questions regarding the Locomotion System, please ask them on the &lt;a href="http://forum.unity3d.com/"&gt;Unity forums&lt;/a&gt; so more people can benefit from the questions and answers (and maybe notify me by email of your forum post if you want to be sure I see it quickly).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-2177140109122422517?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/10/locomotion-system-released-now.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-1603564471076200140</guid><pubDate>Wed, 15 Oct 2008 11:06:00 +0000</pubDate><atom:updated>2008-10-15T13:32:21.812+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><title>Locomotion System at Unite 2008</title><description>&lt;img src="http://unity3d.com/images/news/unite08.png" align="right"&gt;In a few weeks I'll be presenting the Locomotion System in a technical session at the Unite 2008 conference held at the Tycho Brahe Planetarium in Copenhagen, Denmark, October 22-24, 2008. My session will be held 13:30 on Friday, October 24th:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;Walking and Running on Uneven Terrain&lt;/span&gt;&lt;br /&gt;Speaker: Rune Skovbo Johansen&lt;br /&gt;&lt;span style="font-style:italic;"&gt;This session will present the free Locomotion System developed by Rune. The session will discuss how to let the system solve the complex tasks of blending multiple walk and run cycles and perform dynamic foot placement on uneven terrain while keeping animators and game programmers firmly in control of style and behavior.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;See the Unite 2008 &lt;a href="http://unity3d.com/unite/" target="_blank"&gt;conference info&lt;/a&gt; and &lt;a href="http://unity3d.com/unite/agenda" target="_blank"&gt;agenda&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Locomotion System that I'm developing is for the &lt;a href="http://unity3d.com/unity/" target="_blank"&gt;Unity game engine&lt;/a&gt;, and Unite is the yearly Unity developer conference packed with presentations, technical sessions and special events.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-1603564471076200140?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/10/locomotion-system-at-unite-2008.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-7985440492582902755</guid><pubDate>Fri, 08 Aug 2008 11:13:00 +0000</pubDate><atom:updated>2008-09-12T11:14:00.128+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><title>Video Demo 1 of Locomotion System</title><description>I've made a video with voice-over demonstrating the capabilities of the Locomotion System I'm developing. The video is based on one of the interactive demos in the previous post.&lt;br /&gt;&lt;br /&gt;You can look at &lt;a href="http://runevision.com/multimedia/unity/locomotion/locomotion_system_demo_1.mov" target="blank"&gt;this high-res Quicktime video (106 MB)&lt;/a&gt; or at the lower quality YouTube video embedded below:&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="392"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0ea-CXxBEYg&amp;hl=en&amp;fs=1&amp;ap=%2526fmt%3D18"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0ea-CXxBEYg&amp;hl=en&amp;fs=1&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowfullscreen="true" width="480" height="392"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;In the video I explain the features of the system step by step in a straightforward manner while demonstrating the effects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-7985440492582902755?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/08/video-demo-1-of-locomotion-system.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-4482620816793190641</guid><pubDate>Sun, 20 Jul 2008 14:00:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.637+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>3 Demos and New Blending Feature</title><description>Lots of demos you can try this time - yay! Tip: For better performance, unload one demo before you view the next.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Instructions for all demos below:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border=1 style="border:1px solid #000;"&gt;&lt;tr style="font-weight:bold; border-collapse:collapse;"&gt;&lt;td&gt;Command&lt;/td&gt;&lt;td&gt;Keyboard&lt;/td&gt;&lt;td&gt;Gamepad&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Walking-direction&lt;/td&gt;&lt;td&gt;arrow keys&lt;/td&gt;&lt;td&gt;analog stick 1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Walking-speed&lt;/td&gt;&lt;td&gt;shift&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Facing-direction&lt;/td&gt;&lt;td&gt;W, A, S, D&lt;/td&gt;&lt;td&gt;analog stick 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Jump&lt;/td&gt;&lt;td&gt;space&lt;/td&gt;&lt;td&gt;button A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Time slow down / speed up&lt;/td&gt;&lt;td&gt;numpad - / +&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;img src="http://runevision.com/blog/images/20080610_controller_info.jpg" align="right"&gt;You can control the characters with either the keyboard or with a game pad. With a game pad, such as an XBox 360 controller, the direction and speed can be controlled precisely with ease, while independently controlling facing direction with the secondary stick.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/crate_climbing_01",480,360);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Climb the crates and boards. Use shift to run; default is walking. Note that this demo only uses one animation for walking and one for running.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/step_walk_05",480,360);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;In this demo the terrain can be dynamically controlled with the sliders at the top. You can create stairs, slopes, and various combinations. The terrain will reflect the changes once the character has walked a little distance to the left or right. Enable manual mode to control the character yourself, as described above. This demo uses four animations for walking (forward, backwards, and sideways) and also four for running.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/planet_walk_01",480,360);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Walk around this structure in space with crazy gravity! (Nobody said anything about Mario Galaxy...)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Animation groups&lt;/b&gt;&lt;br /&gt;I have worked hard on finding a way of making the Locomotion System easy to integrate with an existing animation framework in a game while keeping it flexible.&lt;br /&gt;&lt;br /&gt;I have now implemented a feature where animations used by the Locomotion System are grouped together in &lt;i&gt;animation groups&lt;/i&gt;. For example, animations for walking and running in different directions could be put in a single animation group.&lt;br /&gt;&lt;br /&gt;The group as a whole can be controlled manually the same way as regular animations are controlled in Unity, while the blending of the individual animations in a group are automatically controlled by the Locomotion System. Furthermore, the system supports using multiple animation groups, so e.g. one group can be used for normal walking and running (in all directions), and another group for sneaking (in all directions).&lt;br /&gt;&lt;br /&gt;The new feature can be seen in the demos above in two ways:&lt;ul&gt;&lt;li&gt;When the character jumps, an animation is cross-faded in that is not controlled by the Locomotion System. This way the feet do not attempt to stay on the ground while the character is jumping.&lt;br /&gt;&lt;li&gt;When the character is standing still for a little while, an "waiting" animation is cross-faded in. Since this animation is also controlled by the Locomotion System, the feet stay properly grounded.&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Testing the Locomotion System&lt;/b&gt;&lt;br /&gt;I make the Locomotion System as my Master Thesis in collaboration with Unity Technologies. It will be available for free for users of Unity once it is finished.&lt;br /&gt;&lt;br /&gt;As a part of my thesis, I want to test the usability of the system. If you are a Unity user and would like to try out the system and help me by evaluating it, please let me know! The Locomotion System is by no means finished yet, but it is now almost at a stage where it is ready for preliminary testing.&lt;br /&gt;&lt;br /&gt;Also, comments are much appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-4482620816793190641?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/07/3-demos-and-new-blending-feature.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-1892121537341800451</guid><pubDate>Sun, 20 Jul 2008 13:48:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.637+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><title>Locomotion System Overview</title><description>When people see the Locomotion System in action, they sometimes get incorrect ideas about what the system can and cannot. Here is a brief description that can hopefully make things a bit more clear.&lt;br /&gt;&lt;br /&gt;The Locomotion System for Unity automatically blends your keyframed or motion-captured walk and run cycles and then adjusts the movements of the bones in the legs to ensure that the feet step correctly on the ground. The system can adjust animations made for a specific speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.&lt;br /&gt;&lt;br /&gt;The Locomotion System does not enforce any high level control scheme but rather lets you move your character around by any means you desire. The Locomotion System silently observes the position, alignment, velocity and rotational velocity of your character and deduces everything from that, along with some raycasts onto the ground.&lt;br /&gt;&lt;br /&gt;This flexibility means that you can use a &lt;i&gt;CharacterController&lt;/i&gt;, a &lt;i&gt;RigidBody&lt;/i&gt; (those are standard components in Unity) or something else entirely to move your character around in the world, exactly as you would normally do.&lt;br /&gt;&lt;br /&gt;The Locomotion System is &lt;b&gt;&lt;i&gt;not&lt;/i&gt;&lt;/b&gt;:&lt;ul&gt;&lt;li&gt;&lt;i&gt;A physics-based system or active animated ragdoll system.&lt;/i&gt;&lt;br /&gt;The system has no integration with the physics simulation. It is purely kinematic, though it does base the kinematics on some raycasts onto the geometry of the ground.&lt;br /&gt;&lt;li&gt;&lt;i&gt;A behavior-based system.&lt;/i&gt;&lt;br /&gt;The system cannot make the character react instinctively to external forces such as being punched, tripping and falling, or being shot. The system only blends and slightly adjusts your existing animations.&lt;br /&gt;&lt;li&gt;&lt;i&gt;A unified system that can be used for all animation of a character.&lt;/i&gt;&lt;br /&gt;The system only controls the legs. (The whole body is typically implicitly controlled since the system blends together multiple full body animations. However, this can be overridden by the user with specific animations for the upper body, using the usual means available in Unity.)&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-1892121537341800451?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/07/locomotion-system-overview.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-2421555163916259548</guid><pubDate>Sat, 21 Jun 2008 23:38:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.638+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>3 New Features</title><description>I have just improved the system with three new features:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Support for using walk cycles backwards.&lt;/b&gt; So for example a forward walk cycle can be used as a backwards walk cycle too (in lack of something better).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Auto-synchronization.&lt;/b&gt; All walk and run cycles are now synchronized so you don't have to tell your animators "all animations must start on the left foot" or similar.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Slightly more intelligent foot placement.&lt;/b&gt; It attempts to avoid ledges. The system now traces two rays per foot per frame in order to make this possible.&lt;/li&gt;&lt;/ul&gt;(More details below.) These improvements have been of benefit for the Soldier guy in particular, that only use 3 animations: idle, walk, and run. He now walks much more fluidly in all directions, though still not nearly as well as the Hero guy, with 9 animations. &lt;b&gt;Click the image below to view the demo.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/step_walk_04",480,320);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Instructions repeated for your convenience:&lt;/b&gt;&lt;br /&gt;&lt;img src="http://runevision.com/blog/images/20080610_controller_info.jpg" align="right"&gt;When manual control is turned on, you can control with either the keyboard (arrow keys for walking direction, and optionally WASD keys for facing direction) or with an analog controller, which I highly recommend. With an analog controller, such as an XBox 360 controller, the direction and speed can be controlled precisely with ease, while independently controlling facing direction with the secondary stick.&lt;br /&gt;&lt;br /&gt;The terrain can be dynamically controlled with the sliders at the top. You can create stairs, slopes, and various combinations. The terrain will reflect the changes once the character has walked a little distance to the left or right. The sliders will also be changed at random while not in manual mode.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Support for using walk cycles backwards&lt;/strong&gt;&lt;br /&gt;Since one of the goals of the system is to make great animation available to even small developers with limited resources, the ability to use the same walk cycle for two things is very handy. Not only can a forward walking animation be used as a backwards walking animation too, but the system can also use a blend of the forward and backward animations for walking sideways. The forward-backward blend results in a sort of neutral stepping on the spot motion, which is better suited for adapting to side-stepping than either the forward or backward animations alone.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Auto-synchronization&lt;/strong&gt;&lt;br /&gt;This one solves a whole host of problems. If animations are not properly synchronized before they are blended, it results in all kinds of weird motions, quirks, and problems. The traditional approach is to make sure the animators animate the cycles synchronized, so that for example all walk and run cycles starts with the left foot being on the ground, approximately under the character. However, this manual synchronization doesn't always work out very well. Also, when considering the backwards support feature mentioned above, the restrictions are even tighter.&lt;br /&gt;&lt;br /&gt;This is why I have implemented auto-synchronization. The system now calculates an offset for each walk and run cycle that makes it match the other cycles as well as possible. At runtime in each frame, these offsets are applied individually to each motion prior to blending them.&lt;br /&gt;&lt;br /&gt;The auto-synchronization works by comparing the stance times of each leg in each cycle with the stance times in the other cycles. (The stance time is the time in the cycle when the foot is standing most firmly on the ground.) The offsets are calculated by applying a kind of spring system to the stance times in each cycle, so that each stance time is attracted towards the stance times of the same leg in the other cycles. Over a few iterations (less than 20 in my tests) the stance times get increasingly closer until they are practically overlaid. Each iteration is O(N^2) where N is the number of cycles, because each cycle is compared to each of the other cycles. However, since this calculation can be done once at pre-compile time, it doesn't have any speed penalty at run-time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;More intelligent foot placement&lt;/strong&gt;&lt;br /&gt;The feet now land on the ground a bit more intelligently. For each foot two rays are cast towards the ground; one from the heel and one from the toe-tip. Depending on whether one of them or both hit a usable spot, the foot is placed either between the two points or on one or the other. This prevents the most glaring intersections with geometry. However, a more sophisticated system might still be implemented at a later time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Help me test the system&lt;/strong&gt;&lt;br /&gt;I make the Locomotion System as my Master Thesis in collaboration with Unity Technologies. It will be available for free for users of Unity once it is finished.&lt;br /&gt;&lt;br /&gt;As a part of my thesis, I want to test the usability of the system. If you are a Unity user and would like to try out the system and help me by evaluating it, please let me know! The system is not ready for testing yet, but it won't be long now.&lt;br /&gt;&lt;br /&gt;Also, comments are much appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-2421555163916259548?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/06/3-new-features_22.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-6697008905748555913</guid><pubDate>Sat, 21 Jun 2008 21:13:00 +0000</pubDate><atom:updated>2008-06-22T01:22:54.449+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>flipside</category><category domain='http://www.blogger.com/atom/ns#'>press</category><category domain='http://www.blogger.com/atom/ns#'>carreer</category><title>Flipside Interviews and Articles</title><description>And now for something completely different. Well, slightly different anyway.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.playflipside.com/files/Play%20Flipside%20-%20Poster_small.jpg" alt="FLIPSIDE poster" align="right"&gt;In May last year I was Lead Game Programmer on the one-month student game production Flipside. The game has just one level, but it has a unique premise accompanied with a fantastic and crazy artistic style. Read more about it on &lt;b&gt;&lt;a href="http://www.playflipside.com" target="playflipside"&gt;playflipside.com&lt;/a&gt;&lt;/b&gt; or get my own angle on it &lt;b&gt;&lt;a href="http://runevision.com/multimedia/flipside/" target="runevision"&gt;on my website&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;It ended up winning of the 12 Independent Games Festival 2008 &lt;b&gt;&lt;a href="http://www.igf.com/02finalists.html#student" target="igf"&gt;Student Showcase&lt;/a&gt;&lt;/b&gt; Awards and we went to GDC in San Francisco to show it off at the IGF booths. (Note that we live across the Atlantic Ocean in Denmark.) We didn't win the Best Student Game Award though.&lt;br /&gt;&lt;br /&gt;However, we got a lot of attention. Since a video interview with us have just been put online by Noesis Interactive, I'll use this opportunity to just mention some of the places where Flipside has been in the media.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a target="new" href="http://www.moddb.com/mods/flipside/news/noesis-presents-modtv-flipside-interview"&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_noesis_video.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;ModDB.com / Noesis ModTV Interview&lt;br /&gt;&lt;font style="font-size:80%;"&gt;June 2008&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;The popular games and modding site ModDB.com features a video interview with Thomas Pilgaard and Rune Skovbo Johansen about the making of FLIPSIDE.&lt;br /&gt;&lt;br /&gt;Click the image to view the full video interview&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.playflipside.com/flipside_press_politiken-full.jpg" class='lightbox JSnocheck' rel=lightbox&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_politiken-custom;size_374,400.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;Politiken (DK)&lt;br /&gt;&lt;font style="font-size:80%;"&gt;Section 2, May 15 2008&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;The daily newspaper Politiken has an almost full page article about the essense of nordic games, and Flipside is used as a prime example, with two big screenshots from the game.&lt;br /&gt;&lt;br /&gt;Click the image to view the full article&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;strong&gt;ModCenter.com Interview&lt;br /&gt;&lt;font style="font-size:80%;"&gt;February 29, 2007&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;ModCenter, "your one-stop resource for all your game development needs", features an interview with me about the making of Flipside.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a target="new" href="http://www.modcenter.com/cgi-bin/tutorials/showcase/detail.pl?toot_id=1159"&gt;Open ModCenter interview in a new window&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.playflipside.com/flipside_press_gamesforwindows-full.jpg" class='lightbox JSnocheck' rel=lightbox&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_gamesforwindows-custom;size_303,400.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;Games for Windows (US &amp; CA)&lt;br /&gt;&lt;font style="font-size:80%;"&gt;Issue 15, February 2008&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;US and Canada magazine "Games for Windows - The Official Magazine" has a half page review of FLIPSIDE in their February issue. Sorry for the poor quality scan.&lt;br /&gt;&lt;br /&gt;Click the image to view the full article&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.playflipside.com/flipside_press_pc_zone-full.jpg" class='lightbox JSnocheck' rel=lightbox&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_pc_zone-custom;size_282,400.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;PC ZONE (UK)&lt;br /&gt;&lt;font style="font-size:80%;"&gt;Issue 184, September 2007&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;UK magazine PC ZONE has a full page review of FLIPSIDE in their september issue. PC ZONE is sold in about 40.000 copies monthly.&lt;br /&gt;&lt;br /&gt;&amp;quot;Flipside is such a highly stylized and impressive mod, with such a simple and original premise, that it almost feels wrong to be playing it for free&amp;quot;&lt;br /&gt;&lt;br /&gt;Click the image to view the full article&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.playflipside.com/flipside_press_pc_action-full.jpg" class='lightbox JSnocheck' rel=lightbox&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_pc_action-custom;size_400,300.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;PC ACTION (German)&lt;br /&gt;&lt;font style="font-size:80%;"&gt;September 2007&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;German magazine PC ACTION has a half page review of FLIPSIDE in their september issue. PC ACTION is sold in about 80.000 copies monthly.&lt;br /&gt;&lt;br /&gt;&amp;quot;WERTUNG: SEHR GUT&amp;quot;&lt;br /&gt;&lt;br /&gt;Click the image to view the full article&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.playflipside.com/flipside_press_pc_games-full.jpg" class='lightbox JSnocheck' rel=lightbox&gt;&lt;img align="right" width="50%" src="http://www.playflipside.com/flipside_press_pc_games-custom;size_400,308.jpg" border=0&gt;&lt;/a&gt;&lt;strong&gt;PC GAMES (German)&lt;br /&gt;&lt;font style="font-size:80%;"&gt;September 2007&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;The magazine PC GAMES has a half page review of FLIPSIDE in their september issue and they have FLIPSIDE included on their cover DVD. PC GAMES is sold in about 175.000 copies monthly.&lt;br /&gt;&lt;br /&gt;Click the image to view the full article&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;strong&gt;ModDB.com&lt;br /&gt;&lt;font style="font-size:80%;"&gt;June 2007&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;The popular games and modding site ModDB.com features an article on FLIPSIDE in their REVIEWS section.&lt;br /&gt;&lt;br /&gt;&amp;quot;The game, quite simply, looks amazing. Everything about it, from the textures that look pasted onto cardboard cut-outs to the manic, false grin on the main character's face, makes FLIPSIDE infinitely more interesting to look at than the standard mods we see these days. When I first flipped the world over to see the darker perception of reality, I literally gasped out loud. It's a magic moment and one that everyone should experience.&amp;quot;&lt;br /&gt;&lt;br /&gt;Click to view the full article:&lt;br /&gt;&lt;b&gt;&lt;a target="new" href="http://features.moddb.com/306/flipside/"&gt;Open ModDB.com review in a new window&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Ok, nuff' ego-tripping for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-6697008905748555913?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/06/flipside-interviews-and-articles.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-6215598476349417265</guid><pubDate>Tue, 10 Jun 2008 13:38:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.638+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>Adaptive Walking Preview II</title><description>I have not been good at updating the blog lately, but here's a new preview of the Locomotion System! Now characters can walk in any direction (forwards, backwards, sideways, and anything in between) with any speed. Characters can also start and stop walking with proper transitions. &lt;b&gt;Click the image below to view the demo.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/step_walk_03",480,320); &lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://runevision.com/blog/images/20080610_controller_info.jpg" align="right"&gt;When manual control is turned on, you can control with either the keyboard (arrow keys for walking direction, and optionally WASD keys for facing direction) or with an analog controller, which I highly recommend. With an analog controller, such as an XBox 360 controller, the direction and speed can be controlled precisely with ease, while independently controlling facing direction with the secondary stick.&lt;br /&gt;&lt;br /&gt;The terrain can be dynamically controlled with the sliders at the top. You can create stairs, slopes, and various combinations. The terrain will reflect the changes once the character has walked a little distance to the left or right. The sliders will also be changed at random while manual mode is not enabled.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Models and animations&lt;/strong&gt;&lt;br /&gt;The demo shows off three characters, all kindly provided by Unity Technologies. Press ENTER to switch between them, or press the switch button.&lt;ul&gt;&lt;li&gt;The HERO character has 9 animation: 1 idle, 4 walking, and 4 running. The system automatically blends between the relevant animations based on direction and speed.&lt;/li&gt;&lt;li&gt;The SOLDIER character only has 2 animations: 1 idle and 1 walking (forward). The walking is extrapolated by the inverse kinematics in the Locomotion System to also work for sideways and backwards motion, but it doesn't look as good as when animations are provided for those directions.&lt;/li&gt;&lt;li&gt;The HERON character also only has an idle and a walking animation. (Note that the Heron model is facing in the -Z direction, so it's a bit odd to control.)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;br /&gt;A lot of the features I set out to implement are done by now. Still missing are:&lt;ul&gt;&lt;li&gt;More intelligent foot placement mechanism that avoids ledges. The current system simply traces a ray from the heel of the foot.&lt;/li&gt;&lt;li&gt;Some way to avoid feet and legs intersecting when walking in certain directions (usually sideways). Regular blending inevitably leads to this glitch, so special logic is required to handle this.&lt;/li&gt;&lt;/ul&gt;I will post more details on the technical details later.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Request for models!&lt;/strong&gt;&lt;br /&gt;I have tested the system with several biped (two-legged) characters but i am in DIRE NEED of animated models with more than two legs to test with! If you have any characters I may use as test data for this project, it would help me a lot. Models will only be used for testing and not in public demos unless explicit permission is given. Also, I will put a thanks in the Master Thesis.&lt;br /&gt;&lt;br /&gt;The models can be anything really: animals, aliens, robots, or whatever, as long as they use legs to move around with! I can import models up to Maya 8.5 and in .fbx format. Animations work best with the system if:&lt;ol&gt;&lt;li&gt;There is at least one idle animation and one walk or run animation. But the more, the better!&lt;/li&gt;&lt;li&gt;The feet don't intersect too much with the ground (though a little don't hurt).&lt;/li&gt;&lt;li&gt;The feet move backwards (for e.g. a forward walk) at a somewhat constant speed while on the ground (though the system can fix small variations).&lt;/li&gt;&lt;/ol&gt;If you are in doubt, just send away! Even animations that don't work still show me something valuable about the limitations of the system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Help me test the system&lt;/strong&gt;&lt;br /&gt;I make the Locomotion System as my Master Thesis in collaboration with Unity Technologies. It will be available for free for users of Unity once it is finished.&lt;br /&gt;&lt;br /&gt;As a part of my thesis, I want to test the usability of the system. If you are a Unity user and would like to try out the system and help me by evaluating it, please let me know! The system is not ready for testing yet, but it won't be long now.&lt;br /&gt;&lt;br /&gt;Also, comments are much appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-6215598476349417265?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/06/adaptive-walking-preview-ii.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-8665304126828469629</guid><pubDate>Thu, 27 Mar 2008 02:06:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.638+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>First Preview of Adaptive Walking</title><description>I just finished the first presentable demo. It is just one character with a fixed animation for now, and the foot step placement doesn't yet attempt to avoid intersecting geometry, but as an appetizer of what is to come, it will do.  &lt;b&gt;Click the image below to view the demo.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/step_walk_01",480,320);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;The demo above is made from just one animation that was made for walking straight ahead on a plain surface. There are two primary techniques that were used here to make the animation look quite acceptable when the character walk up or down steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The system maintains the original ankle local rotation while the foot is in the air, and only enforces a re-alignment of the foot while it is on the ground. While landing on the ground and while leaving the ground, a blending between these two modes of operation is used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The system keeps track on when to use the heel and when to use the toe as the point of reference relative to the ground. This is based on which one is closer to the ground at any given point in time.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The features to be implemented next are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Blending between several animations.&lt;/li&gt;&lt;li&gt;Support for walking on sloped surfaces.&lt;/li&gt;&lt;li&gt;More sophisticated step length / step frequency mechanism.&lt;/li&gt;&lt;li&gt;More intelligent foot placement mechanism that avoids ledges.&lt;/li&gt;&lt;/ul&gt;Anyway, I'm glad to finally have something to show, even if it isn't much for now. Comments are much appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-8665304126828469629?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/03/first-preview-of-adaptive-walking.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-3689969023793245839</guid><pubDate>Wed, 19 Mar 2008 18:08:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.638+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>POV-Ray</category><title>My Old Walking System</title><description>Creating a system for &lt;em&gt;adaptive animation for character locomotion&lt;/em&gt; in computer games is not only a very exciting master thesis project, it is also my opportunity to work with an idea I have had for a long time.&lt;br /&gt;&lt;br /&gt;Back in 2001, when I was 18, I made rendered 3D animations in my spare time with the freeware raytracer &lt;a href="http://www.povray.org" target="_blank"&gt;POV-Ray&lt;/a&gt;. POV-Ray doesn't have a graphical front-end like 3Ds Max etc; instead you make your images and animations with a scripting language.&lt;br /&gt;&lt;br /&gt;Among &lt;a href="http://runevision.com/3d/anims/" target="_blank"&gt;many other things&lt;/a&gt;, I made a walking system for POV-Ray. Here are some of the things it could do:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;embed src="http://www.youtube.com/v/EehHVXjf1Sk&amp;amp;hl=" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;br /&gt;Making the system was a rather big challenge. POV-Ray has no support for keyframe animation so I had to make all animation 100% procedural and animate it by scripting! This was a very slow process and I never got as far with the system as I had in mind.&lt;br /&gt;&lt;br /&gt;Now, using the &lt;a href="http://www.unity3d.com" target="_blank"&gt;Unity game engine&lt;/a&gt;, I am creating a walking system again. This one is different. In the system for POV-Ray (that was made for offline rendering) every step was calculated in advance. With the new system, characters need to respond dynamically from input from the player or from AI. Also, this time I have keyframe animation, skeletal animation, animation blending, and many other features at my disposal, which makes it easier to do more advanced things, but which also bring new challenges.&lt;br /&gt;&lt;br /&gt;Although the new walking system for Unity will be very different from the old walking system for POV-Ray, I still think the video here will help make it easier to grasp what the system will be all about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-3689969023793245839?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/03/my-old-walking-system.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-3908777585574083568</guid><pubDate>Tue, 18 Mar 2008 20:37:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.639+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>Walk and Run Cycle Analysis 2</title><description>In the past week I have been continuing my work on a script to analyze the movements of the feet in walk and run cycles. The primary new result is the analysis of foot lifting and landing times. By analysis the script finds these times for each foot:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Lift time:&lt;/strong&gt; When the foot begins to lift from the ground.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Liftoff time:&lt;/strong&gt; When the foot lifts off completely from the ground.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Strike time:&lt;/strong&gt; When the foot first touches the ground again.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Landing time:&lt;/strong&gt; When the foot has fully landed on the ground.&lt;/li&gt;&lt;/ul&gt;These times can be seen in the bottom graph in the interactive analysis visualization here. Click to activate it.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/animation_curves_2",480,320);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Note that the graphs refer to the ankle and toe of each foot. What they really measure is the ankle and foot positions projected onto the ground at the stance pose, i.e. points on the underside of the foot. Since these projected positions are approximately at the heel and toe, I will be referring to heel and toe positions below.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Previous work&lt;/strong&gt;&lt;br /&gt;Automatically finding the foot lifting and landing times can be tricky, especially if the animations that are being analyzed are not of the highest quality.&lt;br /&gt;&lt;br /&gt;In the paper &lt;a href="http://doi.acm.org/10.1145/1057270.1057281"&gt;Adapting motion capture data using weighted real-time inverse kinematics&lt;/a&gt; by Michael Meredith and Steve Maddock, foot flight paths are extracted from motion capture data using a curve gradient analysis technique:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Our approach for retrieving the flight path from the motion capture data is based primarily on a gradient analysis technique where, over the course of the original motion, we analyze the height value of one of the character’s feet. The first target we look for is a switch from a negative to a positive gradient on a frame that is within 10% of the global minimum height for the foot. This gives us the start of the foot flight where the foot is just about to leave the ground.&lt;br /&gt;&lt;br /&gt;From the first target, we progress along the original flight path until we meet a second gradient change from positive to negative, which is on a frame whose height value is within 10% of the global maximum. This second target is the peak of our flight height. Continuing along the original path, we locate the third and final target via one last gradient switch from negative to positive, whose frame height is again within 10% of the global minimum. This technique is demonstrated pictorially in Figure 2.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://runevision.com/blog/images/20080319_meredith_flight_path.png" /&gt;&lt;/div&gt;&lt;br /&gt;I have been inspired by this technique by Meredith and Maddock. However, in my own tests I have found their procedure insufficient to properly handle the very varied animations I have used as test cases for my system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tricky animations&lt;/strong&gt;&lt;br /&gt;In my test animations, the feet don't always actually lift up from the ground when the legs starts to swing forward, but rather sort of drags along the ground. Also, the feet sometimes intersect with the ground, which also makes the analysis non-trivial.&lt;br /&gt;&lt;br /&gt;In order to make the analysis error-tolerant in these kinds of scenarios, I have used several rules in combination to find the foot lifting and landing times.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;New rules for the analysis&lt;/strong&gt;&lt;br /&gt;The new rules are highly dependent on the &lt;em&gt;stance time&lt;/em&gt; which was described in the &lt;a href="http://runevision.com/blog/2008/03/walk-and-run-cycle-analysis.html"&gt;previous post&lt;/a&gt;. The stance time is the time where the foot is standing most firmly on the ground. Starting from this, the new rules are used to find the lifting and landing times fo the feet. The same rules are applied both for finding lifting and landing times, and they are used on both the heel and toe Y movement curves (i.e. vertical movements). They are as follows:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start following the Y movement curve from the stance time and forward (/backwards) until the height curve reaches 10% of the maximum height of the curve. The lifting (/landing) must come before this point.&lt;/li&gt;&lt;li&gt;Inside this span of the curve, find the point with the maximum curvature (the maximum second derived of the curve, i.e. the most sudden rise in the curve).&lt;/li&gt;&lt;li&gt;Disregard points on the curve that are below the ground level.&lt;/li&gt;&lt;li&gt;Disregard points on the curve where the first derived (i.e. the slope) is below zero (or above zero when searching backwards).&lt;/li&gt;&lt;/ol&gt;These rules combined will almost surely find the point on the curve that intuitively looks like the point where the curve starts to rise from the ground. However, another check has to be made. This check is made for the foot Z movement curve (i.e. the swinging back and forth of the foot).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start following the Z movement curve from the stance time and forward (/backwards) untill the slope is more than 50% different than the slope at the stance time. Since the speed at the stance time is the point of reference for the ground, a speed that deviates more than 50% must mean that the foot is no longer following the ground, and thus no longer standing on the ground. If this time occur before the lifting time (/landing time) found by the other rules, then this time is used as the lifting time (/landing time) instead.&lt;/li&gt;&lt;/ol&gt;The 50% value here has been chosen by trial and error from the test animations. For a completely accurately animated character, the feet should be moving with a completely constant speed while they are on the ground since the ground is moving backwards with a constant speed relative to the character. However, this is not always the case in actual keyframed animations, and the speeds of the feet can be quite inconsistent. Thus a large tolerance value has to be used.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Motion synthesis next&lt;/strong&gt;&lt;br /&gt;The next step is to use the motion analysis data to synthesize adaptive walking and running animations. Using the lifting and landing times, the foot flight paths and the analyzed speed of each animation, new paths for each foot can be generated in accordance with the environment and variable movement of the character.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-3908777585574083568?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/03/walk-and-run-cycle-analysis-2.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-5840992809788029392</guid><pubDate>Tue, 11 Mar 2008 00:10:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.639+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>Walk and Run Cycle Analysis</title><description>I have been working on a script to analyze the movements of the feet in walk and run cycle animations. From this analysis the speed of the character can be determined, as well as when and where the feet touch the ground. Click to see the analysis in action here:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/animation_curves", 480,320);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;3 graphs&lt;/strong&gt;&lt;br /&gt;There are three graphs shown in the view.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The bottom graph show the vertical movements of the ankle (red curve) and toe (green curve).&lt;/li&gt;&lt;li&gt;The middle graph show the horizontal movements of the ankle (red curve) and toe (green curve). It also shows a black curve that is a weighted average between the ankle and toe curves.&lt;/li&gt;&lt;li&gt;The top graph shows the balance of importance between the ankle and the toe, based on which is closer to the ground. This curve is used as the weighing factor for the black cuve in the middle graph.&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Stance time and speed&lt;/strong&gt;&lt;br /&gt;Also, the analysis finds a "stance time" for each foot. This is the time when the foot is most firmly standing on the ground. The graphs are shown such that the stance time is always at the left side of the graph for all feet. This way, is is easy to compare the curves of the different legs and the different animations.&lt;br /&gt;&lt;br /&gt;The stance time of a foot is determined by finding the point in time when the ankle height and toe height are as low as possible. It is important that they are both low, so rather than using the average of ankle and toe height, the maximum of the two is used.&lt;br /&gt;&lt;br /&gt;By sampling the horisontal movement of the foot at points in time around the stance time, the overall speed that the character is moving with can be concluded. It is important to determine the movement of the foot from the part of the foot that is currently closer to the ground, thus the black curve from the middle graph is used. Using just the ankle movement or just the toe movement would give incorrect results.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test data&lt;/strong&gt;&lt;br /&gt;I have tried to design the analysis such that it makes as few assumptions as possible. There are a few though:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The character must be aligned with Y = up and Z = forward.&lt;/li&gt;&lt;li&gt;The animation must contain only one cycle, i.e. one step with each foot. For that reason, skipping is currently not supported. There doesn't have to be any symmetry in the steps though, so e.g. a gallopping horse should work fine.&lt;/li&gt;&lt;/ul&gt;Currently the analysis method has been tested with a soldier character with a walk cycle and two run cycles as well as a robot character with a run cycle. I would like to test the system with many more characters and animations, including creatures with more than two legs, so I am currently looking into ways to get more material to test with. The goal is to create a robust analysis that can correctly interpret most animations that are thrown at it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-5840992809788029392?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/03/walk-and-run-cycle-analysis.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1667313809239009473.post-7698088751152906014</guid><pubDate>Tue, 04 Mar 2008 16:39:00 +0000</pubDate><atom:updated>2008-09-11T00:10:29.639+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>locomotion</category><category domain='http://www.blogger.com/atom/ns#'>demo</category><title>Adaptive Animation for Character Locomotion</title><description>I have just begun working on my Master Thesis, which I will be making in collaboration with the company &lt;a href="http://www.unity3d.com/" target="_blank"&gt;Unity Technologies&lt;/a&gt; that make the awesome Unity game engine.&lt;br /&gt;&lt;br /&gt;The Master thesis will be about "Adaptive Animation for Character Locomotion", which basically means creating a system for adapting walking, running, and crawling keyframed animations to a dynamic environment. The system will take curved paths, uneven terrain, and variable speed into account all the while ensuring graceful footsteps without slipping feet and motions that stay as faithful as possible to the original keyframed animations under the given restraints. Inverse kinematics is one of many techniques that will be involved in this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Goals and perspectives&lt;/strong&gt;&lt;br /&gt;The system is meant to be generic in nature, working not just for biped characters (with two legs) but also for example for dogs, bugs, and spiders and, say, robots and aliens, provided that they move around using a limited number of legs. This list of features is the ideal case - time will tell how far I get within the timeframe of my Master Thesis. Hopefully I can continue working on the project after my graduation, if necessary.&lt;br /&gt;&lt;br /&gt;In the end, the result of my work will be made available to all users of Unity free of charge, for any use. I hope to get people from the Unity user community involved in testing the system as it is developed, since one important success criteria is the usefulness and usability as perceived by the developers using the system. It will take some time before the first prototype is ready though, as I've only just begun.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The project up until now&lt;/strong&gt;&lt;br /&gt;My original "pitch" of the project to Unity was a presentation based on this slideshow:&lt;br /&gt;&lt;a href="http://runevision.com/blog/files/2007-11-30%20Presentation%20of%20ideas.ppt"&gt;See PowerPoint slidehow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A few ideas have already changed since that. For one thing, the idea that animators must enrich the animation cycles with additional data has been abandoned. The data needed is for example information about when exactly each foot leaves the ground and land on the ground again. The new plan is that this will be automatically analyzed and calculated by the system. More on that in a later post.&lt;br /&gt;&lt;br /&gt;In order to quickly get my feet wet, I've made this little demo, where I have modified the Goober guy that comes with one of the Unity tutorials, and made his legs use some very simple inverse kinematics:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;script type="text/javascript"&gt;UnityContent("http://runevision.com/multimedia/unity/locomotion/goober_ik",480,360);&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Click the image to make the demo run in the browser. Just click yes to install the Unity browser plug-in. Note that in this simple demo I simply adjusted the altitudes of the feet, so feet slippage etc. are not prevented. The actual system will work in a completely different way.&lt;br /&gt;&lt;br /&gt;I have already gotten some interest and positive feedback in the Unity forums. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1667313809239009473-7698088751152906014?l=runevision.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://runevision.com/blog/2008/03/adaptive-animation-for-character.html</link><author>noreply@blogger.com (Rune Skovbo Johansen)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>