YouTube2Text

IK Rig: Procedural Pose Animation — Transcript

by GDC Festival of Gaming · 10,329 words · 1,448 segments · language en · Watch on YouTube

Full transcript

  1. 0:00I am Alexander Marisnick
  2. 0:07of Ubisoft and today I'm going to talk
  3. 0:09about the tech I developed at ubisoft
  4. 0:11that I've named the IKEA I was asked to
  5. 0:14start with some info on the speaker and
  6. 0:16I did a little research I thirteen years
  7. 0:20in industry worked on a bunch of
  8. 0:21projects in a bunch of studios past
  9. 0:24three years I'm technical art director
  10. 0:26of Ubisoft Toronto now some of you have
  11. 0:28seen the original reveal talk from
  12. 0:30Vienna conference last year some of you
  13. 0:32have not so I will do a short recap
  14. 0:34before I proceed to the new cool stuff I
  15. 0:38started working at Ubisoft on the title
  16. 0:40that I can't disclose because we just
  17. 0:43didn't denounce it yet then I move to
  18. 0:45another title which is under NDA for now
  19. 0:47and to troll you guys even more I won't
  20. 0:51tell you about my two current titles and
  21. 0:53if you think that's a very boring folio
  22. 0:56just wait till the announcement days for
  23. 0:58these guys because it won't be as boring
  24. 1:00when you see what's behind the black
  25. 1:01boxes so for now we're going to have a
  26. 1:04friend dai give you hints you speculate
  27. 1:06we wait to help you speculate I just
  28. 1:09want to remind you what Ubisoft has
  29. 1:11recently shipped or announced and I was
  30. 1:14just to give you some itty-bitty ideas
  31. 1:16some disclaimers before we begin so I'm
  32. 1:19talking about the tech that's quite
  33. 1:20fresh I came up with this idea about a
  34. 1:22year ago and it was for one of the
  35. 1:26unannounced project and right now it's
  36. 1:27sort of a kind of forum spreading
  37. 1:29through several projects IKEA has passed
  38. 1:32proof of concept made it to run time
  39. 1:35implementation now now we're looking
  40. 1:38where else to apply it
  41. 1:39I'm not going to disclose anything
  42. 1:41that's secret which is like 90% of what
  43. 1:44we do and I will not mention any project
  44. 1:47names or details I can't show you the
  45. 1:49footage from unannounced stuff
  46. 1:51so today's examples are not related to
  47. 1:54specific titles I'm not here to announce
  48. 1:57one game I'm here to talk about the tech
  49. 1:59that's going to be working in a number
  50. 2:01of games so today we're talking generic
  51. 2:04and I prepared a bunch of examples where
  52. 2:07actual assets are hidden or replaced by
  53. 2:09placeholders so today we talk about the
  54. 2:12principles used
  55. 2:13effects on design effects on the
  56. 2:15pipeline and we talked about how you
  57. 2:18guys can try this at home
  58. 2:19disclaimer number two you will see a
  59. 2:22number of examples which are
  60. 2:24intentionally exaggerated so for example
  61. 2:26when I say we can take human motion and
  62. 2:28turn it into octopus riding a bicycle I
  63. 2:30do it I show it it illustrates a certain
  64. 2:33solution doesn't mean that whenever you
  65. 2:35need to have a creature like this moving
  66. 2:37you have to use the IKEA no you're
  67. 2:40welcome to go on and mocap a t-rex doing
  68. 2:42just that that's up to you I use these
  69. 2:44examples to talk about possible use
  70. 2:46cases to demonstrate possible
  71. 2:49applications do's and don'ts don't sew
  72. 2:52rabbits will run and octopuses will ride
  73. 2:55what is the IKEA IKEA rig is a systemic
  74. 3:00animation approach it's a principle
  75. 3:02attack developed to let us do more with
  76. 3:05animations and first thing is unbinding
  77. 3:08animation from rigs so a unified
  78. 3:13language sort of a thing a system that
  79. 3:15will bring all animation data of similar
  80. 3:18characters to one shared form
  81. 3:21secondly we move away from animation in
  82. 3:23keyframes we start animating their
  83. 3:25animations and we control the way our
  84. 3:28characters behave at runtime in the
  85. 3:30engine we create behavioral rules that
  86. 3:33can be mixed together to produce a wide
  87. 3:35variety of animations all in all it's
  88. 3:38retargeting 2.0 done on the fly with
  89. 3:40direct and immediate reaction to changes
  90. 3:44in environment character stats whatever
  91. 3:46happens at this moment in the game this
  92. 3:49is the most important slide incidentally
  93. 3:51it's the most boring slide you guys will
  94. 3:53want me to rewind to this couple minutes
  95. 3:55from now I promise you so IP rig is the
  96. 3:58text solution for converting the
  97. 3:59animation of any rig into a satify to
  98. 4:03change application of context-aware
  99. 4:06modifications to those jeans and
  100. 4:07implication of the result to any other
  101. 4:10rig where the runtime are offline
  102. 4:12so you have your source your motion
  103. 4:14capture rig you map it to the ikea
  104. 4:16unified structure using is mapping all
  105. 4:18the animation can be converted without
  106. 4:21any loss of data within the idea we can
  107. 4:24CC to modify the parameters of what
  108. 4:25happens with limbs and character
  109. 4:27as a whole we create sets of rules to
  110. 4:30explain what to do at any particular
  111. 4:32situation and then we can mix and match
  112. 4:35we can apply these changes on top of
  113. 4:37other changes so for example if one of
  114. 4:39the rules teaches the character walking
  115. 4:41character to crouch and other rule
  116. 4:43teaches the character to aim a gun
  117. 4:45third rule transforms male walk into
  118. 4:47female walk the combination will take
  119. 4:49male walk into a crouching aim in female
  120. 4:53this is actually elementary rocket
  121. 4:55science and I love it not because it's
  122. 4:57complicated but I love it because it's
  123. 4:58simple let's take a look at something
  124. 5:01simple the leg so our usual leg made of
  125. 5:04three bones plus all the small secondary
  126. 5:06things some of the problems we face here
  127. 5:09are first of all secondary animations
  128. 5:11for muscles and stuff like this if we
  129. 5:13bake them they will not really be
  130. 5:15working at the game during the runtime
  131. 5:17if we have a rag doll for example
  132. 5:19secondly we have a bunch of transforms
  133. 5:21but they have little meaning we can
  134. 5:23blend them but those position rotation
  135. 5:26of each of the bones in the chain don't
  136. 5:27really tell us much about what's going
  137. 5:29on finally most importantly our rigs and
  138. 5:32animations are bound together so you
  139. 5:35can't change the rig because the number
  140. 5:37of bones their names their hierarchy
  141. 5:39their sizes they must be content for
  142. 5:42this animation to play properly if you
  143. 5:45really want to change the radio can of
  144. 5:47course we target andrey import this way
  145. 5:49the update involves the offline loop a
  146. 5:52plus you need to maintain consistency
  147. 5:54between all results of all of your
  148. 5:56targets simple fact is we just need a
  149. 5:58couple of things to move this wag
  150. 6:00assuming it's planar we need the start
  151. 6:02position when in the target position
  152. 6:04rotation and we need the direction of
  153. 6:06the knee you understand these can be
  154. 6:09easily received from mocap you just need
  155. 6:12to map bones to nodes that's it
  156. 6:14that's basic retargeting extra bones
  157. 6:17such as twists they don't have to be
  158. 6:18animated are fine when we use the bones
  159. 6:22which have soft skin geometry geometry
  160. 6:24Susskind to them and we can animate them
  161. 6:26using constraints as we play so the
  162. 6:29accurate definition is mapping of bone
  163. 6:32rig to the IKEA directly in the engine
  164. 6:35once it's mapped all the animations be
  165. 6:38throw to this bone rig will be playable
  166. 6:40on
  167. 6:41the rigs which have been mapped to the
  168. 6:43unified structure so in this example the
  169. 6:45blue leg is the default config
  170. 6:47everything else is running exactly the
  171. 6:49same animation but on different fix this
  172. 6:52is possible because each of those rigs
  173. 6:54have been has been mapped what
  174. 6:57constitutes a casual rig so we have
  175. 6:59active bones for body data hands feet we
  176. 7:01have twist bones we have small bones
  177. 7:03four fingers and face secondary
  178. 7:05constraint muscle bones different nodes
  179. 7:07pivots for root capsule proper - meant
  180. 7:11and so on
  181. 7:12in case of IKEA rib bones can be the
  182. 7:14same but we're not working with bones
  183. 7:16after we have mapped them okay we're
  184. 7:18working with their IKEA nodes so there
  185. 7:22are two chains IP chains for hands two
  186. 7:24chains four legs one for spine one for
  187. 7:26head that's it
  188. 7:28so what what we do is we create one IKEA
  189. 7:31rig per character type as in biped
  190. 7:35quadruped add bird fish we create mesh
  191. 7:39with skin two bones just like we would
  192. 7:40normally do but now we don't fit the
  193. 7:43model to the rig as we often do instead
  194. 7:46we fit to reach each rib to each model
  195. 7:49so the look and proportions of each
  196. 7:50character are driven by the concept and
  197. 7:53by the character artist and not by
  198. 7:56shared rig when we export import in the
  199. 7:58engine we have the accurate definition
  200. 8:00tool which we use we map the bones to
  201. 8:02the full body a key to hike a chains
  202. 8:05everything else all the small bones are
  203. 8:07constrained and ran directly you can the
  204. 8:09engine at runtime all the extra bones
  205. 8:12they don't have to be shared we can have
  206. 8:14different bone setups for different
  207. 8:15characters we can add or remove them as
  208. 8:18we please and we don't need to rebait
  209. 8:21any data let me just briefly go over the
  210. 8:26most common constraints because they
  211. 8:28will come in handy later on first of all
  212. 8:30we have the position constraint which is
  213. 8:31super useful when there's multiple
  214. 8:32parents for example cowboy one position
  215. 8:35parent can be his moving hands from the
  216. 8:37animation another one is his holster
  217. 8:39now if I constrain something between
  218. 8:41them I can at any moment move the hand
  219. 8:43to the holster position orientation
  220. 8:45constrain much the same way if I have I
  221. 8:48want to add a tail I can take throat
  222. 8:50Asians of upper thighs and the pelvis to
  223. 8:52rotate the starting part of the tail
  224. 8:54so far so good look at of course what we
  225. 8:56usually do to aim our guns but I also
  226. 8:59like to use it to aim the head in a
  227. 9:01conversation and again we need to do
  228. 9:03this at runtime we don't need to bake
  229. 9:05this spring and dampen for with all
  230. 9:08flapping pieces we are using it right
  231. 9:10now as isolated example I like to use
  232. 9:13this within my character add this
  233. 9:15secondary motion tremblin curve to throw
  234. 9:18in arbitrary curves that we want or
  235. 9:20maybe take a sign of time and driver
  236. 9:22driven so for example one transform of
  237. 9:24one bone effects different type of
  238. 9:26transform of different bones I want to
  239. 9:29note that for most cases where few
  240. 9:31constraints are actually required so
  241. 9:33over constrained case like this there's
  242. 9:35only 5% of what we see animated is the
  243. 9:39actual bones everything else is
  244. 9:40constrained we don't usually need this
  245. 9:41in our games such cases would really
  246. 9:45never happen but it's good to keep in
  247. 9:48mind we can LOD up and down as much as
  248. 9:49we want and again we don't need to
  249. 9:51re-import we export anything if you want
  250. 9:53to add new stuff move into the character
  251. 9:56but we want to do more than simply share
  252. 9:59the animations we want to change them so
  253. 10:02to the naked eye it may appear that it's
  254. 10:05the same animation and it is the key
  255. 10:08difference here is that the left
  256. 10:09character is running 35 bones and the
  257. 10:12right character is run in the same
  258. 10:14animation but it's the IKEA rig format
  259. 10:18they're not different they should not be
  260. 10:21different by default without any changes
  261. 10:23that we've introduced we should have
  262. 10:25exactly full quality that animator
  263. 10:27expected to have that that was invested
  264. 10:29in the start in there now now we've
  265. 10:32defined this rig as Ikea right so we can
  266. 10:35start changing in old behaviors as they
  267. 10:37play the animations the income income
  268. 10:40animations can be received from just the
  269. 10:43key frames in your 3d software in alpha
  270. 10:45in case or which is more fun we can take
  271. 10:47the result that the blend machine spits
  272. 10:49out and modify that right as we play so
  273. 10:53now we have this accurate definition we
  274. 10:55can have some fun with it but yeah our
  275. 11:01original base animation is always there
  276. 11:03so any change we have is just a rule
  277. 11:05that I threw in I explained that I want
  278. 11:07different
  279. 11:07havior from start and nose of the thing
  280. 11:10and by controlling the behavior of these
  281. 11:13targets for hands spine feet I can do
  282. 11:17whatever I want I can modify the
  283. 11:18existing style of motion I can create a
  284. 11:21new style for specific case I have
  285. 11:23control over footsteps over hand arcs
  286. 11:27more importantly yes we can throw in new
  287. 11:30nodes and start animating to those nodes
  288. 11:33to create some new behavior I call such
  289. 11:36sets of modifications the IKEA rules
  290. 11:38there may be a rule teaching a character
  291. 11:41to Crouch may be a rule teaching him to
  292. 11:43aim a gun may be a rule teaching him to
  293. 11:45cover his head whatever else the cool
  294. 11:48part is when we throw in especially with
  295. 11:50the prop works when we throw in the
  296. 11:53weight of the prop and based on that we
  297. 11:55change the way that the prop is being
  298. 11:56carried by the character or we can also
  299. 11:58factor in things like character strength
  300. 12:01or tiredness one of the goals are set
  301. 12:07for the IKEA initially was to have one
  302. 12:10rig per one character so you have 50
  303. 12:13characters and again we have 50 rigs in
  304. 12:14again but keep it simple simple share
  305. 12:17their animations and allow for
  306. 12:19modifications which are easy to manage
  307. 12:21some character in case of character
  308. 12:23class rules I just create a rule that's
  309. 12:26indented for this specific character
  310. 12:28forever so a hero character will always
  311. 12:31give his shoulder a little backwards
  312. 12:33female for example has elbows bent
  313. 12:35inwards and a little more wiggling hips
  314. 12:37zombie case in here extremely been spine
  315. 12:39I could add the tremble if I want it and
  316. 12:41it's gonna apply on whatever this
  317. 12:43character plays and I can mix and match
  318. 12:47them I can have a zombie hero or I don't
  319. 12:50know
  320. 12:50rooty male if I want to prop operations
  321. 12:54doing it with weight we you factor in
  322. 12:56the weight of the prop for a different
  323. 12:58rule
  324. 12:59it looks like the artists prefer to have
  325. 13:01true boundary cases to create two
  326. 13:03boundary rules supervised super heavy
  327. 13:05and then work between them or possibly
  328. 13:07even have a middle case so depending on
  329. 13:12the weight of the prop change we would
  330. 13:14be somewhere in between at these states
  331. 13:17we can also as a set factor in how tired
  332. 13:20the character is we
  333. 13:21factor in his strengths so big guys will
  334. 13:24have easier time carrying rocket
  335. 13:25launchers and your grandma will not we
  336. 13:29can use the same approach for
  337. 13:30interaction with static props like
  338. 13:31doorknobs for example characters of
  339. 13:34different structure in size will still
  340. 13:36reach for the same place in the world to
  341. 13:38turn the doorknob mentioned we have a
  342. 13:40student game with multiple weapons
  343. 13:42conventional solution we trade several
  344. 13:45animation sets for different weapons so
  345. 13:48we have 50 weapons but we know every
  346. 13:50weapon we need to run crouch reload
  347. 13:52shoot too many things to mocap so we say
  348. 13:56our ek and our m16 will have the same
  349. 13:59placement of parts so we can use the
  350. 14:01same animation to play them now adding a
  351. 14:03weapon into the game would become
  352. 14:05complicated thing because now we need to
  353. 14:07create carrying this weapon with the
  354. 14:10Crouch without Crouch aiming shooting
  355. 14:12whatever in conventional setup we would
  356. 14:16also have to propagate every change that
  357. 14:18we want to do to every rig that we're
  358. 14:20using because maybe we have male and
  359. 14:22female rig and now we change the way the
  360. 14:25a.k behaves we need to modify it on both
  361. 14:27rigs and IKEA setting though every
  362. 14:30weapon preparation I carry grew
  363. 14:34simple as that so I can just go in and
  364. 14:36modify the rule to create a new type of
  365. 14:38behaviour with this weapon and aiming is
  366. 14:42separate from the motion itself and this
  367. 14:47will propagate to all the commotions and
  368. 14:49basically to all animations of the
  369. 14:50character if I want to at the same time
  370. 14:53grandmother and me will carry the rocket
  371. 14:56launcher in a different way because
  372. 14:57their prop weight is factored in should
  373. 15:01we want to add a new weapon we will make
  374. 15:03a new rule for it propagate is set to
  375. 15:05all characters if we want to
  376. 15:06should we have several aiming modes
  377. 15:09create a new aiming mode for hero for
  378. 15:11exam before female it will work the same
  379. 15:13thing one more new thing here is
  380. 15:16accurate rule for collision avoidance I
  381. 15:18like to have the hard collisions as we
  382. 15:20do but I also like to have the soft
  383. 15:22origins because we humans are smart
  384. 15:24things we apply the contradictory force
  385. 15:26before we hit ourselves with something
  386. 15:29so that creates a more more realistic
  387. 15:32and believable motion for proper
  388. 15:35operations like this so speaking about
  389. 15:37proper interaction now that the
  390. 15:40characters touch the props using the I K
  391. 15:42which we have full control over we can
  392. 15:45start scaling the characters and scaling
  393. 15:47animations and now you're thinking Alex
  394. 15:50we know how to scale the characters and
  395. 15:52we know how to scale the animations
  396. 15:53that's not the thing yes we do we do and
  397. 15:56every time we uniform scale the rig we
  398. 15:59also scale the animations we end up with
  399. 16:01lots of issues speed of character
  400. 16:04changes for once and this is not what we
  401. 16:06always want to illustrate this better I
  402. 16:09made some fan art for Star Wars just to
  403. 16:12show you so it's the same animation for
  404. 16:15both of these guys but rustic speed
  405. 16:19difference happens because of drastic
  406. 16:20scale difference in extreme case like
  407. 16:23this that's okay but more often than not
  408. 16:25speed must be dictated by the design not
  409. 16:29by the conversion result usually to fix
  410. 16:32that we'd start scaling the animation
  411. 16:33timing up and down but if we do it more
  412. 16:37than 10 15 % speeding up or slowing down
  413. 16:39the animation we start losing a data
  414. 16:41about velocity about the mass of the
  415. 16:43object and it's just not too good so
  416. 16:45here's the fun trick in Ikea I scale
  417. 16:48characters independently from the
  418. 16:50animations so animation is the same for
  419. 16:54these guys but the rebbe goes faster why
  420. 16:57well what's done here is the scaling
  421. 16:59just of the footsteps notice that all
  422. 17:02the animations are still in complete
  423. 17:04sync however I control the amount of
  424. 17:07footstep scaling and now that I have
  425. 17:10this complete control of this speed I
  426. 17:12don't need to adjust animation speed or
  427. 17:15timing I don't need to introduce the
  428. 17:17food sliding or do any other wicked
  429. 17:19thing and degree to which I can speed up
  430. 17:22or slow down is immense
  431. 17:23there is 400% difference between the
  432. 17:26slowest and the fastest guy and to
  433. 17:29illustrate this magnitude better it's
  434. 17:32pretty much that were we to scale the
  435. 17:35character up or down we wouldn't
  436. 17:36necessarily want to scale the speed of
  437. 17:38his motion we can just keep it we can
  438. 17:41set it as much as we want so the change
  439. 17:43there happens reverse we write the
  440. 17:45characters were scaled animation
  441. 17:46remained the same footsteps still
  442. 17:48have scale of one and I want to
  443. 17:51emphasize them the importance of using
  444. 17:54different skills yep
  445. 17:58and yep and why we know why we thing is
  446. 18:05that our games usually just have one
  447. 18:07character really I mean we can do
  448. 18:09different texture variation thing is we
  449. 18:11can push the geometry and the models but
  450. 18:13it's the same rig and yeah that's that's
  451. 18:17gonna look this way even like it's
  452. 18:21funniest when we share the rig between
  453. 18:23male and female like barbarian and
  454. 18:25Amazon but okay let's say we we added
  455. 18:27the female rig now barbarian shares the
  456. 18:29rig with a necromancer Amazon shares the
  457. 18:32rig with her grandmother it's not good
  458. 18:34for any of those characters and adding
  459. 18:37more exists of course expensive
  460. 18:38thousands of mocap takes for several
  461. 18:40actors feeding all of this into a
  462. 18:43monstrous blend three controlling is
  463. 18:46somehow discovery now that adding an
  464. 18:48umbrella to the game is a huge overkill
  465. 18:51because you need to more careful of this
  466. 18:52and it's it's not something we want it's
  467. 18:59something that we just endure and it's
  468. 19:01easier for the guys in the movie
  469. 19:03industry because they can have any scale
  470. 19:04they want for their Shrek or for the
  471. 19:06earth
  472. 19:07how can Spider Man and Captain America
  473. 19:09for us it's hard so what we try to do is
  474. 19:12we try to frame the guys so they look
  475. 19:14different even though we can't scale and
  476. 19:16we can try to fake it we basically try
  477. 19:18to make them look something like this
  478. 19:21we're not building star war games in
  479. 19:23Ubisoft okay it's I just made it for you
  480. 19:26guys just disclaimer and I scaled them
  481. 19:29all to their actual whoops PDR height
  482. 19:30and I've compensated the scale in
  483. 19:33animation so they still move in perfect
  484. 19:35sync and we can speed them up and we can
  485. 19:39slow them down we can give them props
  486. 19:40and they will look fun and the moment
  487. 19:44you set the scale is different like this
  488. 19:46something magical happens something that
  489. 19:49you can't really unsee
  490. 19:51because going back now is very very
  491. 19:55noticeable and okay so we know how to do
  492. 19:59the scaling now we know what to do with
  493. 20:01it next
  494. 20:02and we can keep still keep the speed of
  495. 20:04the changed speed of the scale or change
  496. 20:07scale if we want but we just don't have
  497. 20:08to and just by the way these guys as
  498. 20:11every character that I showed so far are
  499. 20:14still playing the same incoming mail
  500. 20:16walking animation uniform scaling is
  501. 20:20actually boring it's not fun I come on
  502. 20:22every every human has his own sample
  503. 20:24proportion differences here we have the
  504. 20:27base dude he's feeling just fine but I
  505. 20:29swap his right his left hand and right
  506. 20:32leg too much longer bigger versions now
  507. 20:36I I call this guy Quasimodo for easy
  508. 20:38reference this is the base layer of the
  509. 20:40IKEA notice the omission is exactly the
  510. 20:42same right it's not enough we need to
  511. 20:45explain them how to move so I make a
  512. 20:48list of Commandments for Quasimodo I
  513. 20:50tell them you know if your hand is heavy
  514. 20:53you should win if your center of mass
  515. 20:55has shifted compensate for it with your
  516. 20:58spine sorry
  517. 20:59and if the camp gets heavy don't wiggle
  518. 21:03it around drag it and the fun part is
  519. 21:06that the scaling sorry just really warm
  520. 21:09in here this scaling can happen at
  521. 21:11runtime and that's super good news for
  522. 21:13all the monsters and mutants and robots
  523. 21:16because now that the quasi model knows
  524. 21:18how to work with normal hand and super
  525. 21:20big hand he can do it with any size of
  526. 21:23the hand and just because we told them
  527. 21:26how to do it
  528. 21:27detour a little so I often say I tell
  529. 21:31the characters what to do and they do it
  530. 21:33and that's a little misleading because
  531. 21:34people visualize the process like this I
  532. 21:36told them to do this and that and they
  533. 21:38do in fact it's more of this and this
  534. 21:42because I control the action by creating
  535. 21:45those rules by plugging them together
  536. 21:47but it's more of playing with the regul
  537. 21:51kit without actual schematics so it's
  538. 21:53fun job still job and of Deeter so yes
  539. 21:58everybody is different and since we
  540. 22:00already captured emotions we inherently
  541. 22:03capture the motion styles and I'm
  542. 22:06talking just about the mocap right now
  543. 22:07so this is the prototype feature but
  544. 22:10it's worth mentioning nonetheless I call
  545. 22:12it motion GNA and the idea is that we
  546. 22:15just
  547. 22:15dress a guy up in a suit we let them
  548. 22:18move around the mocap studio for a while
  549. 22:20and we're not capturing the exact loops
  550. 22:23of what he does know what we capture is
  551. 22:25instead how does he carry his spine what
  552. 22:28is the width of his footsteps
  553. 22:32how much hand swinging is there and
  554. 22:34these things we can parameterize and
  555. 22:37there's about 20 parameters that so far
  556. 22:40I came up with and if I take those
  557. 22:43things I can store them as accurate rule
  558. 22:46and I can apply it to the animation of
  559. 22:49completely different guy
  560. 22:50it's not going to make them exactly
  561. 22:52believable but it's gonna be way closer
  562. 22:54to this after who just moved around for
  563. 22:56a couple of minutes in my mocap studio
  564. 22:59so just oversell it a little maybe some
  565. 23:02time in a few sure you walk between
  566. 23:04before your Kinect and we pick up how
  567. 23:06you do this and then apply to Cotulla
  568. 23:09dancing on the screen even if you just
  569. 23:11have the controller it looks plausible
  570. 23:15so let's recap for a minute we can take
  571. 23:18one animation we can change its style we
  572. 23:20can scale our characters we can scale or
  573. 23:22animations we can change the proportions
  574. 23:24on per character basis while we still
  575. 23:26interact with props consistently and we
  576. 23:29can even control the speed long story
  577. 23:31short we know how to turn our walking
  578. 23:33mail into crouching aim in female what's
  579. 23:39missing Oh clicks so what is missing
  580. 23:45from all of this
  581. 23:47then even terrain navigation of course
  582. 23:48but before we go into unreal Tori
  583. 23:51navigation there's this thing that's
  584. 23:53something we dance for so long we don't
  585. 23:56really notice it anymore and I love to
  586. 23:59kick this thing and I will kick it again
  587. 24:00now what I mean is the term locomotion
  588. 24:04modes so we do so many things weapons
  589. 24:06aiming reloading shooting opening doors
  590. 24:09that will limit the type of work
  591. 24:10emotions will let the characters walk or
  592. 24:13run sometimes jog and there are
  593. 24:15brilliant people trying to blend those
  594. 24:16states together we let the characters
  595. 24:18walk or crouch sometimes crawl and there
  596. 24:21are other brilliant people trying to
  597. 24:23blend these things together but the
  598. 24:25sophisticated blends are just masking
  599. 24:27the problem but there
  600. 24:28not solving the problem the problem is
  601. 24:29our navigation States in games are
  602. 24:32integers and in life they are not
  603. 24:34integers and this is inheritance from
  604. 24:37the idea that we will want to do
  605. 24:39different things as we navigate
  606. 24:41different ways so we can't afford to
  607. 24:43mocap everything in all the interim
  608. 24:45States so what's wrong with state a or
  609. 24:47stage B switch but honestly there is
  610. 24:51nothing wrong with a switch it works for
  611. 24:53past 30 years and we keep doing
  612. 24:56this Nets
  613. 24:58what's worse is we build our levels with
  614. 25:00this in mind your doors must be fixed
  615. 25:03with or the character won't walk through
  616. 25:04them plausibly your obstacles must be
  617. 25:07fixed height or he won't jump over them
  618. 25:09plausibly the ceiling must be fixed
  619. 25:11height because under otherwise you want
  620. 25:14to crawl under them plausibly and every
  621. 25:17now and then there is those little just
  622. 25:19missing inches that the animation
  623. 25:20suggests a different height but we just
  624. 25:23have to stay so that's it what if this
  625. 25:26collision is only halfway down what if
  626. 25:28it's moving what if it's a little lower
  627. 25:30or higher that's character remember what
  628. 25:32you just did does he have a history is
  629. 25:35he limited to these states if we start
  630. 25:38retracing forward not in time but just
  631. 25:40in space we can start predicting what
  632. 25:43happens and we can change just the right
  633. 25:46amount we don't have to go all the way
  634. 25:48down if we just need to know their head
  635. 25:50but if we have to we will do and we will
  636. 25:53our motion will suggest the physical
  637. 25:56appearance of the world around us and
  638. 25:58it's going to make more sense to us
  639. 26:00humans we don't collide by the by our
  640. 26:03own choice so we don't clip like this we
  641. 26:06avoid were smart beings and it's not
  642. 26:09hard to mimic if we strap the idea of
  643. 26:12integer States and it's not just
  644. 26:15integers that are obsolete the whole
  645. 26:16concept of metrics is insulting and it's
  646. 26:19ridiculous and they know the questions
  647. 26:22that we get at this moment metrics are
  648. 26:24at the core of our pipelines without
  649. 26:26metrics how do we even design or model
  650. 26:28how do we build levels how do we build
  651. 26:31the game with arbitrary scales like like
  652. 26:33the real one like the real world we it's
  653. 26:37scary we can't pull it off we're not
  654. 26:39going to risk it
  655. 26:40and first of all let me call these old
  656. 26:43ways what they are limitations and you
  657. 26:46know a guy breaks a leg spends couple
  658. 26:49weeks in the hospital then he has this
  659. 26:52casket for several months then the
  660. 26:53casket is gone his wreck is healed he
  661. 26:55still keeps limping because he got used
  662. 26:58to that and we got used to that maybe we
  663. 27:02don't have to do that
  664. 27:04you see I thrown in some uneven training
  665. 27:06here just for kicks so without further
  666. 27:08ado let's take a look at different ways
  667. 27:11to navigate and even common solution
  668. 27:13rates raised down and be happy well the
  669. 27:15sad part is there is no history in this
  670. 27:18walking down walking up looks the same
  671. 27:20and of course we can't have stairs in
  672. 27:23here because if we just ship this height
  673. 27:27between two frames too drastically we're
  674. 27:29gonna have the food popping we can't use
  675. 27:31the stairs ok ok and again if we if we
  676. 27:35can retrace forward right cast forward
  677. 27:38we can start anticipating say hi to
  678. 27:40anticipation say hi to follow through
  679. 27:42and we can propagate this change to the
  680. 27:45whole body not just the legs because
  681. 27:46we're not splitting between upper body
  682. 27:48lower body anymore we can act and it's
  683. 27:51fun and our slope can be arbitrary
  684. 27:54we were not picking animations from the
  685. 27:56pool and blending between them we
  686. 27:58generate the proper motion for this
  687. 28:00specific case for the specific guy with
  688. 28:02a specific scale no loads railing no
  689. 28:05feet flipping no metrics what do we do
  690. 28:08here after we fire the level designer
  691. 28:11normally we we just say ok it's going to
  692. 28:14be a flat plane and we're gonna clip and
  693. 28:15that's fun because it's it's a video
  694. 28:17game okay cut us some slack that's fine
  695. 28:19yes no like a solution can handle stuff
  696. 28:22like this usually usually we fake it and
  697. 28:27be happy but again you know what we can
  698. 28:30do instead is we can switch into
  699. 28:31nostradamus mode or what I call
  700. 28:33nostradamus mode basically what I do
  701. 28:34with we throw in the animation into the
  702. 28:37engine and then we analyze our feet and
  703. 28:39we just store couple floats per frame
  704. 28:41for each foot we remember how long ago
  705. 28:44did I get lifted up
  706. 28:46how soon am I am going to be planted
  707. 28:48down where will I be doing this so now
  708. 28:53per frame I know that the food for
  709. 28:55example initiated the lift up thing and
  710. 28:59since I know where it's gonna land and
  711. 29:02when I can modify the whole curve and
  712. 29:05arrive to the proper location yes some
  713. 29:09weight of the body is lost in here that
  714. 29:11will be fixed on the Polish but at least
  715. 29:13I planned correctly in fact I'd slow
  716. 29:17down the extra here by twice because
  717. 29:18human wouldn't really risk that fast
  718. 29:20moving that fast but that's fine
  719. 29:23in famous case of discontinuous terrain
  720. 29:25stairs I love it
  721. 29:26so okay if we have stairs in our game
  722. 29:28all the stairs gonna be the same because
  723. 29:30you guys know will you be more capped
  724. 29:32for these specific stairs going up going
  725. 29:34down we can't have stairs of different
  726. 29:36right what happens if he walks
  727. 29:38diagonally because any mission is not
  728. 29:40going to play anymore what happens if he
  729. 29:44crouches the Wemo kept crouched up
  730. 29:47crouched down and maybe in diagonals
  731. 29:49what happens if you wanted to limp what
  732. 29:51happens if I have a female rigged now I
  733. 29:53need to propagate all of this so again
  734. 29:56conventionally I would guess root
  735. 29:58sliding and some foot clipping and it's
  736. 30:01fine
  737. 30:01but remember we have this Nostradamus
  738. 30:03mode right so we're tracing the
  739. 30:07footsteps and when the food gets lifted
  740. 30:09up we can figure out where it's going to
  741. 30:11land and we get we can figure out if we
  742. 30:13want to land there or maybe a little
  743. 30:14different place so now we can have
  744. 30:16arbitrary steps staircases I mean and we
  745. 30:21can have arbitrary scale of the
  746. 30:22character and he will still walk I mean
  747. 30:24it's just depending on his height he
  748. 30:26will be missing stairs the steps or
  749. 30:29maybe he will step on each of them just
  750. 30:30like we do because we have different
  751. 30:33scales and that's how we behave and
  752. 30:37since we generate this animation on the
  753. 30:40fly I mean we can have any type of steps
  754. 30:42that we want for any character scale
  755. 30:45that we want yes we need to polish this
  756. 30:47but this is already better than what we
  757. 30:49normally have with just flipping through
  758. 30:52the stuff final test of this continuous
  759. 30:54and even Turing conventionally we would
  760. 30:57have a minigame for this because you
  761. 31:00can't really move cap unless you mock up
  762. 31:02for just this specific set of obstacles
  763. 31:04and just way this one animation
  764. 31:06but again I mean if if in real life a
  765. 31:09five-year-old would have fun doing this
  766. 31:10then our hero should be able to walk
  767. 31:13through this as well just by pressing
  768. 31:15the button without no minigames so I
  769. 31:18know it's a lot to take him let me show
  770. 31:20you the combined result of these rules
  771. 31:22please welcome the marching band this
  772. 31:25operates directly from the guy with the
  773. 31:27controller all right then we added Ikea
  774. 31:32we have different proportions in scale
  775. 31:34remember that was another guy right even
  776. 31:36though they're all skilled they work in
  777. 31:38perfect sync remember we have the
  778. 31:40footstep scaling remember our IKEA rule
  779. 31:43for crouching notice that the tall guys
  780. 31:45and short guys crouch differently
  781. 31:47because they need to go to different
  782. 31:48height as a result I mean some of the
  783. 31:51male some of them female because it was
  784. 31:53easy and a brilliant single one of them
  785. 31:56carries his or her own musical
  786. 31:58instrument and plays it to some tune
  787. 32:01that I will expose weights wrong and one
  788. 32:07more fun part there is this waving brown
  789. 32:10demeanor you see that we're gonna go
  790. 32:12there because they're the water you like
  791. 32:15I call it the cheese's test
  792. 32:17it's the ultimate thing I mean if I can
  793. 32:19work on this I can work on anything plus
  794. 32:22an asteroid I must move for the steps so
  795. 32:25this is one source animation right
  796. 32:28everything else generated per frame
  797. 32:30right here controlled separately this
  798. 32:36nice visualization for the curves that I
  799. 32:38threw in for them to play so each of
  800. 32:40those characters uses one of these
  801. 32:42curves to play his or her musical
  802. 32:44instrument so there is the drum the
  803. 32:46dishes the tambourine the violin and you
  804. 32:51know what fräulein oh I could just throw
  805. 32:52in actual musical piece and take the
  806. 32:55curves from different musical
  807. 32:56instruments and freedom here and see the
  808. 32:58result not sure it would be super cool
  809. 33:00from the start but I can try and yeah i
  810. 33:04scaled them all differently because well
  811. 33:06because I could human height usually
  812. 33:10like 1.7 meters male 1.6 female plus
  813. 33:13minus 10 15 % wrote different and I
  814. 33:16choose to respect that because it's very
  815. 33:18small and cheap wait
  816. 33:19add realism to this so marching band
  817. 33:25marching band is one single actor turned
  818. 33:28into nine characters some males and
  819. 33:31female nine different scales and
  820. 33:33proportions nine animated props synced
  821. 33:36to the tune controlled separately they
  822. 33:39can Crouch they can climb time to make
  823. 33:42all of this I had the rules ready
  824. 33:44remember one day took me several months
  825. 33:48to realize one more thing so crouching
  826. 33:50is actually just a subset of a bigger
  827. 33:52thing of avoiding and if we can avoid we
  828. 33:56can attract as well so we start ray
  829. 33:59casting in two sides we can have a lot
  830. 34:02of fun with character just walking
  831. 34:03around simply by the level and coolest
  832. 34:08part is I've created these rules for
  833. 34:10avoidance and for traction and I can
  834. 34:13apply them so my Crouch in zombie a mean
  835. 34:15female carrying whatever and I can tell
  836. 34:19the different characters will do
  837. 34:21different things maybe somebody will
  838. 34:22reach further maybe somebody will be
  839. 34:24recasting into other characters and
  840. 34:26touching other characters maybe somebody
  841. 34:28will be touching him as he goes on I
  842. 34:30don't know so let's have some more fun
  843. 34:36the big section the quadrupeds first
  844. 34:39thing of course I have the 4c I turn a
  845. 34:42horse into IKEA rig for C because I
  846. 34:44can't work with bones so once I turn the
  847. 34:4814 to Ikea rig for C I just have those
  848. 34:50nodes now I can play with it but the
  849. 34:52thing is there's less to do with
  850. 34:53quadrupeds conceivably they don't
  851. 34:55operate with props but what they do
  852. 35:00operate with is other characters so I
  853. 35:03put an Ikea rig and an Ikea and we can
  854. 35:06tell this rider what to do we can give
  855. 35:09them props and so on you know as much as
  856. 35:11we want as for the horsey we don't
  857. 35:13usually distinguish between with or
  858. 35:15without ride your animation we never
  859. 35:18really mocap for with rider without
  860. 35:21rider it doesn't seem like we need to
  861. 35:24question of course like would there be a
  862. 35:26need to modify the horse animation in
  863. 35:29here well does the player need visual
  864. 35:31feedback that the horsey
  865. 35:33is that he's overloading the right right
  866. 35:36maybe there is an extreme case where we
  867. 35:38want to tell them that this horse is not
  868. 35:40a happy horse and it's nice to be able
  869. 35:44to do this fun stuff on the fly of
  870. 35:45course I exaggerated but you know what I
  871. 35:47mean guys and if you don't have the
  872. 35:50horsey with a heavy rider mocap you're
  873. 35:54still fine in fact I didn't have horsey
  874. 35:57mocap at all and I'm still fine because
  875. 35:59I had Jerry and Jerry has been my
  876. 36:02champion for the past year so you know
  877. 36:07if you're still feeling bad for the
  878. 36:08green horse II don't because none of
  879. 36:11them exist but Jerry does and through my
  880. 36:14test Jerry has been several breeds of
  881. 36:17dogs capped mountain lion a bear horse
  882. 36:21elephant and even more bizarre things
  883. 36:23like this so in all honesty he deserves
  884. 36:26an Oscar and yes I was not here I scaled
  885. 36:29this animation made it slower made sense
  886. 36:32in this case so at least as far as the
  887. 36:35locomotions go yes I can share but then
  888. 36:38certain extent of course the elephant
  889. 36:42would still piss with his leg lifted we
  890. 36:44wouldn't do that but happily we have
  891. 36:47talented animators and of course all of
  892. 36:50this is only possible because we can
  893. 36:51scale the footsteps quadrupeds are super
  894. 36:54different in our proportions as we go
  895. 36:56from breed to breed what else is good
  896. 36:59about IKEA rigged for quadrupeds I guess
  897. 37:01yes maybe this maybe didn't even terrain
  898. 37:05for horse for the rider slope speed any
  899. 37:08direction as we please not only that we
  900. 37:12remember we did this Nostradamus thing
  901. 37:14right for foot placement you probably
  902. 37:18know it's coming
  903. 37:19another thing that you will not and see
  904. 37:22at least I didn't see it anywhere and as
  905. 37:26I said Jerry is amazing let me talk
  906. 37:31about main reasons to introduce the
  907. 37:33systemic animation solution to the
  908. 37:36pipeline which I carried or any other
  909. 37:38one first of all it's about character
  910. 37:41design character design that is driven
  911. 37:44by the character artist and concept
  912. 37:47not by the rig that we share and we want
  913. 37:50to add versatility to sizes we want to
  914. 37:54add versatility to proportions of our
  915. 37:56characters we want to add different
  916. 37:59behaviors as they move around to show
  917. 38:01that they move differently and we want
  918. 38:04to provide visual clues whenever working
  919. 38:05with props to show it's heavy that his
  920. 38:07limping is hurt we can show it in the
  921. 38:10animation content on demand that means
  922. 38:15generating animations right as we play
  923. 38:18right as we need them so for this
  924. 38:21specific guy in this specific case in a
  925. 38:23specific level right now I need this and
  926. 38:26we make it so hence the term systemic
  927. 38:29animation that I like so much we don't
  928. 38:31pick from the pool of stuff we pre
  929. 38:33created we make it on the fine first
  930. 38:38iterations and more important fast
  931. 38:42prototypes anytime you want to add
  932. 38:45umbrellas to your game you just throw in
  933. 38:47a prop and you create a cure group now
  934. 38:49I'm not saying this is going to be the
  935. 38:51perfect umbrella carrying animation I'm
  936. 38:53saying you can do it within one day and
  937. 38:55see the result and play with it and
  938. 38:57figure out what else do you want you
  939. 39:00don't need to mocap shoot this off line
  940. 39:02a loop of retargeting for your female
  941. 39:04rigs carrying umbrellas and stuff like
  942. 39:06that import expert now right there right
  943. 39:09now fast and furious final reason I
  944. 39:13first called this saving money but I
  945. 39:17know you guys we get ten million dollar
  946. 39:20envelope we spent when you ask for more
  947. 39:22so whatever we save here we would still
  948. 39:26waste in some other place so I'm calling
  949. 39:28it cost allocation let's save some time
  950. 39:31we let's save some money let's invest
  951. 39:33this time and money into maybe
  952. 39:34generating more content for the game
  953. 39:36maybe investing it into the rendering
  954. 39:38maybe investing it into the sound and
  955. 39:40whatnot we will figure that out I know
  956. 39:45what are the pipeline changes so
  957. 39:49characters yes they're created based on
  958. 39:51concept art and common sense of course
  959. 39:53not on based on the rig
  960. 39:55basically we're cutting away a part of
  961. 39:57the pipeline where your curve
  962. 39:58just made this wonderful model and now
  963. 40:01technical animator comes and says now
  964. 40:04you have to adjust it to this rig and
  965. 40:05he's crying rigs can be unique but for
  966. 40:10the most human cases it's like you know
  967. 40:13with any bugs in your Mme image they
  968. 40:16have this screen at the start where they
  969. 40:17say that height weight which changes
  970. 40:21those are within centimeters they're
  971. 40:23super important for the fight and for
  972. 40:24the fighters but they are not too far
  973. 40:26away so normally I would say character
  974. 40:29artist can just modify the rig on his
  975. 40:31own if you trust him enough just to
  976. 40:32scale things up and down as he pleases
  977. 40:35and in engine riggers and tech guys map
  978. 40:38this incoming rig to the unified AI
  979. 40:40clerics structure and they define which
  980. 40:43parts of the bones we want to each to
  981. 40:46which chain in full body i key and yeah
  982. 40:50they also set up the constraints for
  983. 40:52secondary things like muscles and
  984. 40:54whatnot
  985. 40:56animators they work with the IKEA rig
  986. 40:58rules there are two very important
  987. 41:01things here first of all to work with
  988. 41:04this stuff you need the real-time
  989. 41:05preview so if you build something like
  990. 41:08this make sure your animator sees the
  991. 41:10changes and can experiment with them
  992. 41:12second of all there is in need and we're
  993. 41:15actually discussing it right now I need
  994. 41:17to connect the animation engine of your
  995. 41:20game engine with motion builder or any
  996. 41:23other software of choice for the
  997. 41:24animator so he can go back and forth and
  998. 41:27set the pose for this particular trumpet
  999. 41:30if he wants to that's the simplest thing
  1000. 41:32and because he would be doing this a lot
  1001. 41:35with trumpets there is a need to to have
  1002. 41:38this process simple and fast but the
  1003. 41:42largest largest difference of all is
  1004. 41:44actually for creative directors for game
  1005. 41:47designers because the holy moment
  1006. 41:50happens when you realize you can spam
  1007. 41:53these marching bands on the fly as much
  1008. 41:55as you want that you can write different
  1009. 41:58animals that you can Telegraph the
  1010. 42:00characters state and health through the
  1011. 42:02animation without this extra cost of no
  1012. 42:05capital that you can have cover system
  1013. 42:08destructible covers and characters of
  1014. 42:10different scale will use those cover
  1015. 42:12different ways they get destroyed that
  1016. 42:15you can have some very interesting fun
  1017. 42:17with AI and I will talk about this maybe
  1018. 42:21next time
  1019. 42:22and yeah that you can have characters of
  1020. 42:26different sizes and have this
  1021. 42:28versatility in your virtual city or
  1022. 42:30whatnot and that all of these things can
  1023. 42:35be connected to your game design because
  1024. 42:38now you're showing way more maybe you
  1025. 42:40want the player to be noticed in this
  1026. 42:41for a particular reason when to
  1027. 42:47introduce systemic animation solution to
  1028. 42:49the pipeline as early as possible I
  1029. 42:52would say if you had your first mocap
  1030. 42:54shoot probably it is too late because
  1031. 42:57there is a lot of things to consider
  1032. 42:58first of all you need to decide what is
  1033. 43:00it specifically that you want to do do
  1034. 43:03you just want to have different
  1035. 43:04proportions of humans or do you want to
  1036. 43:07be writing quadrupeds or maybe you have
  1037. 43:09a game with focus on proper interaction
  1038. 43:12and you want this interaction to be
  1039. 43:13realistic so you need to decide how much
  1040. 43:16of it you need to do because there is no
  1041. 43:18need to build the full shebang from the
  1042. 43:20start we need to build something simple
  1043. 43:22to see how it works also there are
  1044. 43:24things in pipeline which will be cut out
  1045. 43:26and a lot of this is about iTunes and a
  1046. 43:30lot of this is about motion capture for
  1047. 43:34every possible Crouch with every
  1048. 43:35possible weapon because probably you
  1049. 43:37don't really need this anymore you focus
  1050. 43:39your animation on things that matter on
  1051. 43:42cutscenes on the character of main
  1052. 43:44characters but not on making endless
  1053. 43:46variations for male and female rig for
  1054. 43:49several different props yeah also you
  1055. 43:53need to think about your levels because
  1056. 43:55if you start discarding the metrics of
  1057. 43:58the levels that changes things a little
  1058. 44:01you can start thing and you start
  1059. 44:03thinking about dynamics in their proper
  1060. 44:05collisions with dynamics it's
  1061. 44:07interesting but whenever you do this I
  1062. 44:12suggest you guys do it soon because
  1063. 44:15couple years from now systemic animation
  1064. 44:18stuff will start shipping and it's going
  1065. 44:21to be hard to keep up with this
  1066. 44:24it's so good but I also want to be clear
  1067. 44:28when not to use anything like this and
  1068. 44:30first example is the
  1069. 44:32obsessive-compulsive game mechanics like
  1070. 44:33Mortal Kombat for example they have a
  1071. 44:36number of characters yes but every
  1072. 44:38single animation every single keyframe
  1073. 44:40of every single animation has been
  1074. 44:42visited in revisited million times
  1075. 44:43because it's super important the reach
  1076. 44:45of the sub zero's punch the speed of
  1077. 44:48this punch this is the game mechanic you
  1078. 44:50can't allow this to be controlled by
  1079. 44:52some arbitrary system you want this to
  1080. 44:54be specific so in this case you don't
  1081. 44:56need any solution like that especially
  1082. 44:58because in Mortal Kombat you're not
  1083. 44:59really working with props or navigation
  1084. 45:01and even terrain as much a massive
  1085. 45:05strategy games conceivably I mean the
  1086. 45:07games where you have 10,000 characters
  1087. 45:08on the screen even if you had the
  1088. 45:11fastest fullbodyik a solution ever if
  1089. 45:15the character size is 10 pixels in the
  1090. 45:17screen just there is no reason to go too
  1091. 45:19deep with fine-tuning the foot placement
  1092. 45:23of him so of course we want to keep it
  1093. 45:26smart and solo games meaning games where
  1094. 45:28you only have one character or the
  1095. 45:30amount of character animation is low in
  1096. 45:34such cases maybe you want to invest in
  1097. 45:36some sort of systemic animation solution
  1098. 45:38but only if only if that's the key part
  1099. 45:42of your game and there are games where
  1100. 45:43there's one character but dynamically
  1101. 45:45interacting with environment it's very
  1102. 45:47smart
  1103. 45:47unless that's the case of course there
  1104. 45:51is no need to invest in a humongous
  1105. 45:53system if the total time of animated
  1106. 45:56character on screen is 30 minutes so let
  1107. 45:59me answer the three main questions you
  1108. 46:02guys probably have what stage are we at
  1109. 46:05with IKEA Alex nice videos how usable is
  1110. 46:09it so I came up with this idea about a
  1111. 46:11year ago as I said I spend some time
  1112. 46:14bouncing it around in my head and with
  1113. 46:17my friends at Ubisoft and back in the
  1114. 46:20day we were only interested in about 10%
  1115. 46:22of what I'm showing today because
  1116. 46:25frankly we didn't know all of this as
  1117. 46:27possible I did I built the first
  1118. 46:30prototype in maxscript
  1119. 46:32and that was a proof of concept stage we
  1120. 46:36were playing with it we were seeing what
  1121. 46:38can happen dogs two cats
  1122. 46:40I remember the challenge from Christian
  1123. 46:43and that was fun but then my friend
  1124. 46:46Michael Butner took interest in it and
  1125. 46:49he built the runtime part of it and he
  1126. 46:51keeps building it as we speak
  1127. 46:53like right now in Toronto and yeah we we
  1128. 46:57keep developing it further to be honest
  1129. 46:59the list of complete features is now 10
  1130. 47:01percent of the new 10 times increase of
  1131. 47:05the dream and I don't know how much do
  1132. 47:07we need right now but we'll see and the
  1133. 47:13key parts are there right now namely
  1134. 47:16they're optimized for body and mechanics
  1135. 47:19for creating and sharing Nike rules
  1136. 47:21between different characters and seeing
  1137. 47:23it in the engine main road yeah resource
  1138. 47:28heavy expensive main road the expense
  1139. 47:31goes on your full body a key solution
  1140. 47:34all the IKEA rules they have very
  1141. 47:37noticeable results right but in fact
  1142. 47:40they're very short in simple lines of
  1143. 47:42math this is what I liked a lot I mean
  1144. 47:45it's simple mathematics
  1145. 47:46they're independent of the game engine
  1146. 47:48or the programming language it's very
  1147. 47:51simple move rotate constrain you may
  1148. 47:56think of the IKEA rules as motion
  1149. 47:57shaders but with way less instructions
  1150. 47:59in way were more output so after this
  1151. 48:03math is done then a full body a key
  1152. 48:05starts working and you can use any full
  1153. 48:10body a cake you want and that is your
  1154. 48:12cost the good part is that full body a
  1155. 48:16cake can be optimized very far in case
  1156. 48:19you wanted to and depends of course on a
  1157. 48:22rig complexity so it can be L Odede
  1158. 48:24things like great casts you understand
  1159. 48:27how to control those so up to you
  1160. 48:32finally working I downloaded the
  1161. 48:37reaction I got a lot from the moment
  1162. 48:40that I did the original IKEA reveal
  1163. 48:42speech was this and
  1164. 48:47let me ask you what do you download the
  1165. 48:50normal Maps you don't you can introduce
  1166. 48:55the feature to your engine yes or you
  1167. 48:57can purchase an engine that has supports
  1168. 49:00normal Maps but the reason I keep
  1169. 49:02calling this is just one of the possible
  1170. 49:04systemic animation solutions is that
  1171. 49:07it's not a software piece it's a concept
  1172. 49:10and it's in development that Ubisoft yes
  1173. 49:14but you don't have to wait and wonder if
  1174. 49:17we revisit and when if I if I did a good
  1175. 49:21job explaining idea you know how to
  1176. 49:25build it with blackjack and whatever you
  1177. 49:27want in the recent years we had very
  1178. 49:31many advancements in rendering in in AI
  1179. 49:34an amount of content on the screen and
  1180. 49:37in the game we got amazing evolution of
  1181. 49:40dynamics we evolved the streaming of
  1182. 49:43data and a bunch of other things so it
  1183. 49:46feels like now is the time that the
  1184. 49:49animation is taking this step to the
  1185. 49:50next gen as well and there are amazing
  1186. 49:53developments out there there's cool
  1187. 49:56stuff there is human NK by Autodesk
  1188. 49:58there's euphoria by natural motion final
  1189. 50:00okay bye finally K by root motion
  1190. 50:03runtime by a Kinema I like to think that
  1191. 50:06if we share the ideas and developments
  1192. 50:09we can contribute to the industry as a
  1193. 50:12whole and that would be cool traded you
  1194. 50:15this smiling person is Michael partner
  1195. 50:18decklid of animation in physics of
  1196. 50:20Ubisoft Toronto he's the mind the father
  1197. 50:22of motion fields tack motion matching
  1198. 50:25tech and he's also the father of runtime
  1199. 50:28implementation of the IKEA rig
  1200. 50:29so whatever runs now and whatever we'll
  1201. 50:33keep running
  1202. 50:34I would not be possible without my phone
  1203. 50:37and of course my gratitude to Ubisoft
  1204. 50:40because this is the the craziest family
  1205. 50:43I had for employer ever and we are
  1206. 50:46shipping kick-ass games and you know
  1207. 50:48it's coming yes to ship today's games we
  1208. 50:51give money to smart people so if you
  1209. 50:53want to work on epic stuff and if the
  1210. 50:56dev force is strong with you
  1211. 50:58there's a team that could welcome you
  1212. 51:00there is Ubisoft booth on the premises
  1213. 51:02second floor wait right outside here go
  1214. 51:06talk to them figure out maybe it's
  1215. 51:07interesting for you maybe it's not but
  1216. 51:09don't be shy just give it a try
  1217. 51:10it's fun or catch me up I can give you a
  1218. 51:13shortcut to them why not two things I
  1219. 51:19want you guys to I want to suggest you
  1220. 51:21guys to do
  1221. 51:22first thing tomorrow 11:30 there's a
  1222. 51:26talk about motion measuring by saman
  1223. 51:28trivia go there and listen to him listen
  1224. 51:31to what he has to say if you don't have
  1225. 51:33time make time because this is one of
  1226. 51:37the coolest things in animation I've
  1227. 51:39seen so far and I've seen a lot second
  1228. 51:42thing we will have an extended Q&A
  1229. 51:44session tomorrow I'm going to keep this
  1230. 51:45fight for a while so you can take a
  1231. 51:47picture so you don't forget West's whole
  1232. 51:49second floor tomorrow 3:00 to 4:00 p.m.
  1233. 51:52come over we can chat we can have some
  1234. 51:55laughs somebody may try to recruit you
  1235. 51:57I'm sorry it's going to be fun so thank
  1236. 52:02you that's it
  1237. 52:11who wants to ask something guys
  1238. 52:13microphone don't be shy questions
  1239. 52:16questions what middleware products are
  1240. 52:24you using to achieve this you mentioned
  1241. 52:26a few for body IT solutions are you
  1242. 52:29using one in particular no throne
  1243. 52:31blackjack and first thanks for sharing
  1244. 52:38the idea I think we need more of this in
  1245. 52:41game development why do you like
  1246. 52:43defensive videos thanks videos but idea
  1247. 52:47is much more important what I want to
  1248. 52:49ask how much time and effort does it
  1249. 52:52take to configure one character with all
  1250. 52:56the parameters that you mentioned like
  1251. 52:58how it moves and which depends from
  1252. 53:00which part okay so how much time does it
  1253. 53:04take to basically define a motion
  1254. 53:07capture akin to the psyche with chains
  1255. 53:09is that what you're asking yeah like how
  1256. 53:13much time does it you create a new
  1257. 53:14character using already ready they mock
  1258. 53:21up I would say like way less than a day
  1259. 53:26there is there a couple of crazy
  1260. 53:29characters like you saw in one of the
  1261. 53:31videos this guy with multiple legs and
  1262. 53:33hands taken out of him that took me more
  1263. 53:34time because well most of this time I
  1264. 53:36was trying to figure out where just take
  1265. 53:38an extra hand but if we're talking about
  1266. 53:40bipeds yeah that's that's fast and
  1267. 53:43simple actually because yes I have a
  1268. 53:45different bones coming in but I know
  1269. 53:47where my legs are I might even have a
  1270. 53:50naming convention and streamline if I
  1271. 53:51could just script it okay and all those
  1272. 53:55definitions do you define them in the
  1273. 53:57code or you made some kind of UI which
  1274. 53:59is usable by artists so right now it's
  1275. 54:03not as friendly but of course we need
  1276. 54:06the UI we're thinking an old based
  1277. 54:07system and yeah at the moment it's lines
  1278. 54:13of code with some nodes in place but
  1279. 54:16we're not complete yet we're not
  1280. 54:18shipping it tomorrow
  1281. 54:20but yeah whatever we do we have to make
  1282. 54:22sure that like people working with this
  1283. 54:24some of them are nerdy technical artists
  1284. 54:27yes but a lot of them are animators and
  1285. 54:29animators need to have nice interface
  1286. 54:31ideally resembling something that they
  1287. 54:33have experienced working with before
  1288. 54:35Kansai mention the MotionBuilder ugly
  1289. 54:38strips okay thanks
  1290. 54:40thank you this is very cool you showed
  1291. 54:44some examples where you said that like
  1292. 54:47this is good initially but you would
  1293. 54:48want to polish it can you talk about how
  1294. 54:50you would polish these sorts of things
  1295. 54:52like if an animator looks at something
  1296. 54:54and says oh that's really good when the
  1297. 54:56character crouches but it should look a
  1298. 54:57little bit more like this is there some
  1299. 54:59key framing like way to tweak it and
  1300. 55:02polish it so yes it should that that's
  1301. 55:06why I was talking about the
  1302. 55:07MotionBuilder connection right directly
  1303. 55:09because animators like to tweak things
  1304. 55:11but to be honest this thing you're not
  1305. 55:16you you're not supposed to modify this
  1306. 55:19particular pose if it's broken you need
  1307. 55:22to figure out why because at the end of
  1308. 55:24the day we're generating we're
  1309. 55:26generating the content as you play you
  1310. 55:28never know what's going to be happening
  1311. 55:29so if all of a sudden your leg that
  1312. 55:32overstretched that means you need to
  1313. 55:35introduce a rule to keep the leg within
  1314. 55:37the limits you know how to do this so
  1315. 55:39ideally I would say you try to fix by
  1316. 55:42that now if my enemy juror comes to me
  1317. 55:44and says you know what this female works
  1318. 55:46looks like crap my first intention is
  1319. 55:49okay I need to open a video female walk
  1320. 55:51female walk that he likes and I want to
  1321. 55:55try to parameterize what's happening
  1322. 55:57because when I was keyframe animating
  1323. 56:01stuff I was doing pretty much the same
  1324. 56:02thing right I mean in the mind of
  1325. 56:04enemies right you open the reference and
  1326. 56:06you see what happens now I'm not just
  1327. 56:08going frame by frame adjusting to the
  1328. 56:10background image I'm trying to figure
  1329. 56:11out what exactly is happening maybe
  1330. 56:13there is a curve maybe every time the
  1331. 56:14leg is lifted there's an extra X
  1332. 56:16rotation in local of the hips I'm gonna
  1333. 56:20do that and see this hope that it works
  1334. 56:23thank you thank you when you're doing
  1335. 56:28your Nostradamus footfall determination
  1336. 56:32and you're under control of let's say
  1337. 56:34the player who's you know constantly
  1338. 56:36changing with the joystick which way
  1339. 56:38they're going are you
  1340. 56:40[Music]
  1341. 56:42recalculating the footfalls like as you
  1342. 56:44are moving your foot in the arc or do
  1343. 56:47you lay in that foot and then just do
  1344. 56:48your calculation off of the next
  1345. 56:50footfall and account for that so if the
  1346. 56:53foot is like if the food is in here my
  1347. 56:57incoming stuff just from the blend
  1348. 56:59machine spit out it already has the idea
  1349. 57:02of the position and I also have my
  1350. 57:04Nostradamus nodes and they're telling me
  1351. 57:06I'm like 50% in there now if I start
  1352. 57:09moving to a different direction I have
  1353. 57:12to modify my target vending position but
  1354. 57:15again if I if the direction I'm moving
  1355. 57:19in is controlled by the blend machine
  1356. 57:20not by some artificial leaning these new
  1357. 57:23animations will have this target
  1358. 57:26position relative to them so as my
  1359. 57:29animation changes my target position
  1360. 57:31also is grabbed from the new animations
  1361. 57:34that I just walked into am I making
  1362. 57:36sense yes okay okay thank you I heard
  1363. 57:43another talk from Ubisoft about motion
  1364. 57:48matching it's let relate to I can be so
  1365. 57:53these two texts are different I started
  1366. 57:57working on this taking the input from
  1367. 58:00motion fields motion matching there was
  1368. 58:02a rename but it's the same thing and
  1369. 58:04that's why I advertised Simone's talk
  1370. 58:07tomorrow so much I think everybody
  1371. 58:09should do this but these two text they
  1372. 58:13do different things so motion matching
  1373. 58:15is all about a natural human motion with
  1374. 58:18very effective use of mocap time so you
  1375. 58:22create the motion I can rig is about
  1376. 58:25modification I can rig is not about
  1377. 58:27gesture this is the animators the mocap
  1378. 58:30I can rig is about modification of walk
  1379. 58:33into crouch simplest example for
  1380. 58:35carrying something right so these things
  1381. 58:37they sort of work one after another and
  1382. 58:40they contemplate they add up
  1383. 58:45Thanks thank you your encoding of the
  1384. 58:49foot animation looked like it was
  1385. 58:52distanced from hip to ankle with the
  1386. 58:53angle of the knee or something like that
  1387. 58:55I was curious if you ran into an
  1388. 58:57animation where let's say it's like a
  1389. 58:58Dick Van Dyke jumping up the air and
  1390. 59:00clicking his heels together type
  1391. 59:02animation where the distance between the
  1392. 59:03heels was critical does that require you
  1393. 59:06to modify your animation rig so you now
  1394. 59:08have an encoding of the distance between
  1395. 59:10the heels and have you run into cases
  1396. 59:12where that happens a lot based on
  1397. 59:14different content going into the game
  1398. 59:15and does it is that important to your
  1399. 59:18pipeline being able to kind of change
  1400. 59:19the definition on the fly or is this
  1401. 59:21very specific to like basic locomotion
  1402. 59:23so any type I will try to turn this into
  1403. 59:28a bigger question and you'll let me know
  1404. 59:29if I got it right anytime our character
  1405. 59:32has self collision of any sort or a
  1406. 59:35collision with a prop of any sort how do
  1407. 59:38we compensate for it in this system
  1408. 59:41right yes so first of all of course we
  1409. 59:44have the physical representation of the
  1410. 59:45character I mean we have the full body
  1411. 59:47okay but we still keep our red doll and
  1412. 59:49stuff we need this what I really like
  1413. 59:53and what I didn't have the time to do at
  1414. 59:56the moment but what I really want to do
  1415. 59:58is if we mow cap the guy going over a
  1416. 1:00:01box for example an example of the proper
  1417. 1:00:04interaction right
  1418. 1:00:05what I do is in a small cap file I place
  1419. 1:00:09the actual box and I detect where there
  1420. 1:00:11was a correct collision
  1421. 1:00:13now if the box is scaled my animation
  1422. 1:00:16knows that here's the place where I
  1423. 1:00:18collide but this place is inside
  1424. 1:00:21something I can find the new placement
  1425. 1:00:23for the leg basically if the guy was
  1426. 1:00:26scaled but the box remained the same if
  1427. 1:00:28I know where it's gonna happen
  1428. 1:00:30I can try to get it out it's not going
  1429. 1:00:32to work out of the box
  1430. 1:00:33instantly when the character self
  1431. 1:00:36collides if I scale them just uniformly
  1432. 1:00:40it's going to be the same you understand
  1433. 1:00:42but if I do the proportion scale I of
  1434. 1:00:45course need to be smart about what's
  1435. 1:00:48happening I need to make sure that I
  1436. 1:00:50don't let him cross the new bounding
  1437. 1:00:52volume so yes there's physics in it but
  1438. 1:00:55as I was talking about the soft
  1439. 1:00:57collisions and hurtful
  1440. 1:00:58I also like to slow down before before I
  1441. 1:01:00hit
  1442. 1:01:01so I'm actually I need to keep this in
  1443. 1:01:04mind I don't have this feature like
  1444. 1:01:07fully developed so I'm talking from the
  1445. 1:01:08top of my head but I hope this idea
  1446. 1:01:12makes sense
  1447. 1:01:13thanks thank you stat all alright thank
  1448. 1:01:19you so much have a good day

About this transcript

This page contains the full transcript of IK Rig: Procedural Pose Animation by GDC Festival of Gaming, generated from the public captions YouTube serves with the video. The transcript has 10,329 words across 1,448 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.