Hf2 Cortex Siggraph 2011

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Using Cortex Open Source to build the Crowd Pipeline for Happy Feet Two

Carsten Kolve Rogier Fransen Moe El Ali Dr. D Studios Daniele Niero Dan Bethell

Dith these s$all additions to Corte' all ele$ents ere in !lace to ani$ate a s)eleton and de*or$ a geo$etry (ound to it !rocedurally. Data anage!ent @ur data needed to (e organised in ays that $a)e it easy and e**icient to access and store: Ani$ation data is stored in a hierarchical structure that allo s *or *ast se4uential as ell as rando$ access o* $ulti!le ani$ation !oses. 2he i$!le$entation is (ased on the FileCnde'edC@ inter*ace !rovided (y Corte'. For *aster re!eated access" $ainly utilised during interactive !lay(ac)" e used the e'isting -RE caching $odule. 2his ena(led us to access $inutes o* uni4ue ani$ation data *or hundreds o* characters at interactive rates. All character related co$!onents ere stored in custo$ Co$!ound@(Aects o!ti$ised *or convenient access. 2hese structures ere (uilt using s$all ,ython scri!ts that analysed asset structures !rior to conversion. -ayout in*or$ation hich re*erences ani$ations" character and terrains as also stored in a si$ilar structure and accessed through a custo$ *unction5set allo ing higher level o!erations such as $erging o* layouts. anual and Procedural Crowd "ayouts Dhile in Maya" cro d layout data as !assed through Corte' ,ython scri!ted o!erator nodes that !rocedurally $odi*y the data" ena(ling o!erations li)e clu$!ing" terrain ada!tion or collision resolving. A custo$ Maya sha!e here each co$!onent re!resented a single character visualised through articulated cut5u! geo$etry as used *or $anual layout. For s!eed reasons a s!ecialised @!enFl dis!lay solution as !re*erred to. the Corte' generic Fl rendering $odule. Cro ds that re4uired a $ore !rocedural a!!roach" li)e *loc)s and s ar$s" ere created in #oudini. 2hese setu!s utili?ed the sa$e o!s in use on the Maya side" (ut this ti$e inter*acing ith native #oudini technology. @! scri!ts ere al ays the sa$e" no $atter the !lat*or$" allo ing *or 4uic) reuse in $ulti!le conte'ts & even in standalone ,ython. #endering $ %& For #F/ all lighting and *' ere done in #oudini" all rendering in %delight. For cro d rendering t o Corte' ,ython scri!ted delayed Render$an !rocedurals ere used: 2he *irst one deter$ined character (ounding (o'es and inAected su(5!rocedurals res!onsi(le *or generating the *inal character data at a given lod at renderti$e. 2he sa$e o!erations generating character geo$etry during rendering ere also used to generate te$!orary geo$etry at runti$e in #oudini" used (y the *' de!art$ent to generate secondary e**ects li)e *oot ste!s and sno )ic)s. Cntegration o* Corte' in #oudini as co5develo!ed ith C$age Engine.

Figure 1: Maya cro d sha!e" #oudini !rocedural geo$etry" %delight render & all utilising identical Corte' driven (ac)end *unctionality +Dr.D Studios ,ty -td. All rights reserved.

Abstract
For Happy Feet Two a tea$ o* % develo!ers (uilt a cro d !i!eline a(le to !roduce a variety o* cro d e**ects *or over ./0 shots ith a 1 $onth $ain !roduction !eriod and a tea$ o* average 1. artists. 2he cro d or)*lo inter*aced ith nearly all !roduction de!art$ents" *ro$ !revis all the ay to lighting" and or)ed across $ulti!le !lat*or$s. 2he $ain *ocus o* this s)etch is not cro d generation3 techni4ues *or this have (een covered in nu$erous !revious or)s 5 instead it is a case study o* using the o!en source so*t are li(rary Cortex1 as a (ase *oundation *or ra!id develo!$ent o* custo$ so*t are solutions" li)e a cro d syste$" in a 6F7 8 *eature ani$ation conte't.

Choosing Cortex

A*ter having co$!leted cro d or)*lo s!eci*ications it (eca$e a!!arent that i$!le$enting all re4uired *eatures ithin the given 9 $onth ti$e*ra$e as not !ossi(le given the availa(le $an!o er. A*ter evaluating the o!en source li(rary Corte' *or its suita(ility as a *oundation o* the cro d syste$" e antici!ated (eing a(le to reduce the develo!$ent ti$e (y over %0: co$!ared to i$!le$enting a co$!lete custo$ in5house solution. 2his allo ed us not only to stay ithin our resource allocation (ut also !ro*it *ro$ e'tra *unctionality not (udgeted *or.

Using Cortex

Dr. D;s cro d syste$ as (ased on the conce!t o* $ass instancing !re5recorded s)eletal ani$ation" ty!ically ac4uired (y $otion ca!turing. For <=: o* all shots no si$ulation techni4ues at all ere used & instead e relied on artists to $anually and !rocedurally !lace cro d characters in a shot. 2he resulting layouts ere then !assed to other de!art$ents *or *urther !rocessing. Based on these layouts cro d character co$!onents ere asse$(led on de$and. Corte' *or$ed the (ac)5end *or all cro d related data and o!erations. Follo ing a (rea)do n o* the $ain co$!onents o* Dr. D;s cro d !i!eline and ho they utilised Corte'. Core Data Types and Operations Character and terrain $eshes are e'!orted *ro$ Maya and stored using Corte'> Mesh,ri$itive ty!e. For ani$ation data e store arrays o* $atrices to descri(e s)eletal !oses. An i$!ortant addition to the already e'isting !ri$itive ty!es in Corte' is a s)eleton re!resentation: Corte'> seriali?a(le Co$!ound@(Aect classes" hich are si$ilar to runti$e asse$(led C structs" allo ed us to !rototy!e a suita(le structure in ,ython" (e*ore i$!le$enting it as a S)eleton,ri$itive in CBB. 2ogether ith C$age Engine 6F7" the initial develo!ers and $ain contri(utors to Corte'" data ty!es and o!erations ere !ut in !lace to handle (ind5in*or$ation *or s$ooth s)inning ty!e de*or$ations.

'

Conclusion

Even though the initially antici!ated *unctionality o* Dr. D>s cro d syste$ di**ered in $any as!ects *ro$ the *inal toolset" Corte' has !roven to (e a *le'i(le (ase *or general 6F7 so*t are develo!$ent and a $ain contri(uting *actor *or delivering the !i!eline in ti$e. Due to its $odular structure" a (road set o* e'isting *eatures and the *act that $ost o* its *unctionality is readily availa(le in ,ython e (elieve it is ell suited *or ra!id !rototy!ing. E'tending Corte' directly did re4uire a longer *a$iliarisation !eriod" (ut using (oth the ,ython or CBB li(raries as straight*or ard. ,artici!ating in the o!en source !roAect develo!$ent and co$$itting code (ac) has ena(led us to receive *eed(ac) and (ug *i'es *ro$ the co$$unity" *oster good coding !ractices and hence develo! higher 4uality code *aster. Con*ronted ith other RGD tas)s in the *uture" e ould not hesitate utilising Corte' again.

1 htt!:88code.google.co$8!8corte'5v*'8

You might also like