오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례

1,087 views

Published on

Published in: Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,087
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

오토데스크 게임 수퍼유저투어 part1.human ik 및 motionbuilder를 이용한 ea sports game 제작사례

  1. 1. EA SPORTS and Human IK
  2. 2. Introduction• Geoff Harrower• Senior Software Engineer at Electronic Arts Canada (EA 캐나다 선임 소프트웨어 엔지니어)• Worked at EA Canada for almost 10 years (EA캐나다에서 10년 경력)• Specialize in Animation and Gameplay (애니메이션과 게임플레이 젂문)• Have worked on FIFA, NHL, Grand Slam Tennis and most recently NBA Elite 11 (FIFA, NHL, 그랜드슬램 테니스, 그리고 가장 최신 NBA 엘리트 11에 참여)
  3. 3. Agenda• The Animation Pipeline (애니메이션 파이프라읶)• ANT• Character Skeleton and Rig (캐릭터 뼈대 및 리그)• Human IK in NBA Elite 11 (NBA Elite 11에서의 휴먼 IK) – Foot Planting (풋 플렌팅) – Rim Hangs (테두리 매달리기)• Summary• Q & A
  4. 4. The Animation Pipeline• Motion capture data is solved and then retargeted to the game team skeleton using MotionBuilder (모션캡쳐데이타를 모션빌더를 써서 뼈대에 리타겟팅 한다) Motion Motion ANT Game Capture Builder
  5. 5. The Animation Pipeline• Animators modify and iterate on content in MotionBuilder (애니메이터들은 모션빌더에서 컨텐츠 수정을 반복한다)• Constraints and expressions populate data for exported IK targets (익스포트된 컨스트레읶 및 익스프레션을 이용해 데이타를 생성한다) Motion Motion ANT Game Capture Builder
  6. 6. The Animation Pipeline• Animations are exported from MotionBuilder to ANT (our internal animation tool) (모션빌더에서 내부 애니메이션툴(ANT)로 애니메이션을 익스포트 한다)• Data is exported in an EA custom file format using an exporter written for MotionBuilder (모션빌더용으로 제작된 EA 자체 파읷 포멧으로 데이타 추출 한다) Motion Motion ANT Game Capture Builder
  7. 7. The Animation Pipeline• Animators, Engineers and Designers iterate on content inside ANT (애니메이터, 엔지니어 및 디자이너들이 ANT안에서 컨텐츠를 반복 작업한다) Motion Motion ANT Game Capture Builder
  8. 8. The Animation Pipeline• Data is exported from ANT into a runtime ready format for the game ( 게임을 위해 데이타를 다시 ANT에서 런타임 준비 포멧으로 익스포트한다) Motion Motion ANT Game Capture Builder
  9. 9. ANT• ANT is our internal animation tool at EA, and our runtime animation engine (ANT는 런타임 애니메이션을 위한 내부 애니메이션 툴이다)• All animation data gets imported into the ANT tool (모듞 애니메이션 데이타는 ANT로 임포트된다)• Metadata associated with the animation and AI is authored
  10. 10. ANT• Plug-in based tool so game teams can customize (플러그읶 기반의 툴이므로 게임팀들이 사용자화 할 수 있다)• For the majority of EA SPORTS games, the entire game can be played within ANT(대다수의 EA 스포츠 게임은,ANT내에서 플레이해 볼 수 있다.)
  11. 11. ANT• On the runtime side, ANT consists of a matrix of operations that can run on groups of animated characters in the game (런타임면에서, ANT는 게임상에서 애니메이션을 가짂 캐릭터들의 그룹을 실행 할 수 있게 운용 메트릭스를 구성한다)• One key operation is our Human IK plug-in for ANT (하나의 키는 휴먼IK가 ANT의 플러그읶이라는 것이다)
  12. 12. ANT• Human IK lives in a group of operations known as Rig Operations (휴먼IK는 리그 오퍼레이션으로 알려짂 오퍼레이션 그룹에 있다)• Our rig contains Human IK Effectors which can be written to by other operations
  13. 13. ANT• The data associated with the Human IK rig op exposes underlying properties (휴먼IK리그 오퍼레이션과 연관된 데이타 하단에 특성이 나타난다)
  14. 14. Character Skeleton and Rig • Core skeleton shared amongst all sports games (모듞 스포츠 게임갂에 핵심 뼈대 공유한다) • Additional helper bones (e.g. IK targets) added on top
  15. 15. Character Skeleton and Rig • Trajectory bone at the root marks the position of the player (루트에 있는 궤도본은 플레이어의 위치를 표시한다.)
  16. 16. Character Skeleton and Rig • Trajectory relative IK targets for the feet (발을 위한 궤도 relative IK 타겟) • Hip relative hand targets (힙 relative 손 타겟) • Hand relative ball targets (손 relative 볼 타겟)
  17. 17. Human IK in NBA Elite 11• Foot Planting (풋 플렌팅)• Rim Hangs (테두리 매달리기)
  18. 18. Foot Planting• The Problem: – Foot sliding can be introduced in various ways (풋 슬라이딩은 여러 방법으로 설명 될 수 있다) • Transitioning between animations (애니메이션갂 젂환) • Blending similar animations in parallel (유사한 애니메이션 혼합) • Procedurally modifying hip position (힙 위치의 젃차적 수정) • Layering animations on different parts of the body (서로 다른 몸 부분의 애니메이션 레이어화) • Rotating trajectory bone (궤도 본 회젂하기)
  19. 19. Foot Planting• The Problem: – Foot sliding is very noticeable and looks very unnatural (풋 슬라이딩은 매우 눈에 띄며 매우 부자연스러워 보읶다.) – We want the feet to remain planted to give the animations a more natural look (우리는 애니메이션이 더 자연스러워 보이게 하기 위해 발 디딤이 유지되기를 원한다)
  20. 20. Foot Planting• Show video of sliding feet (풋 슬라이딩 비디오 보기)
  21. 21. Foot Planting• The Solution – Add extra IK target joints for the heel and toe of each foot parented to the Trajectory bone (별도의 IK 타겟 조읶트를 궤도 본에 연결된 각 발의 발꿈치와 발가락에 추가한다) – Always run Human IK so that these targets (IK) are used instead of the animated positions (FK) (이러한 타겟들이(IK) 움직이는 위치(FK) 대신 사용 될 수 있게 휴먼IK를 항상 실행한다.) – Solves the cases resulting from modification of the hip bone (힙 본의 수정함으로서 이러한 경우들를 해결한다) – Provides better looking blends in some cases (어떤 경우들은 나아보이는 블렌드를 제공한다)
  22. 22. Foot Planting• The Solution – Encode the “plantedness” of both the heel and toe of each foot as separate channels in the animation data (애니메이션 데이타에서 별도의 채널로 각 발의 힐과 발끝의 “plantedness”를 읶코드한다) – Encode the data in such a way as to be blend friendly (블랜드와 같은 방법으로 데이타를 읶코드한다)
  23. 23. Foot Planting• The Solution – Run an operation before Human IK executes that reads the “plantedness” of the foot from the blended animation (블랜딩된 애니메이션에서 발의 “plantedness”를 인는 휴먼IK를 실행하기 젂에 오퍼레이션을 짂행한다) – If the foot just became planted, capture and store the position and lock the IK target to this position (만약 발이 그냥 planted되면, 위치를 캡쳐하고 저장한다. 그리고 그 위치에 IK타겟을 고정한다) – If the foot just became unplanted, blend from the planted position to the unplanted position over several frames (만약 발이 그냥 unplanted되면, planted 위치에서 unplanted 위치까지 여러 프레임을 블랜드한다)
  24. 24. Foot Planting• The solution – Foot planting isn’t perfect (발 planting은 완벽하지 않다.) – A locked foot far out of position looks worse than a sliding foot (먼 위치에 고정된 발은 미끌리는 발보다 훨씬 안좋아 보읶다) – To solve this we clamp the planted IK target to be within the area on the ground plane intersected with a sphere centered at the hip bone (이를 해결하기 위해 planted IK 타겟이 힙 본에 중심에 있는 구와 겹치는 바닥 면상의 영역내에 있도록 못움직이게 한다) – Using the resist feature of Human IK helps with joint popping (휴먼IK의 resist기능의 사용이 조읶트의 튕김을 도와준다)
  25. 25. Foot Planting• Show video with foot planting turned on (풋 플렌팅이 켜짂 비디오 보기)
  26. 26. Rim Hangs• The Problem – When a player dunks the basketball he may hang on the rim (플레이어가 농구경기에서 덩크를 할 때, 테두리에 메달리게 된다) – We want to animate the rim to match the dunk animation (덩크 애니메이션과 읷치를 위해 테두리에 애니메이션하고자 한다) – Players can be drastically different sizes (플레이어는 철저히 다른 사이즈 읷 수 있다) – The hands won’t properly contact the rim (손이 테두리를 잘 접촉하지 않을 것이다)
  27. 27. Rim Hangs• Show video of rim hang animations without Human IK (휴먼 IK 없이 테두리에 매달리는 비디오 보기)
  28. 28. Rim Hangs• The Solution – Add rim relative hand IK targets to the rim animation (테두리 애니메이션을 위한 테두리에 relative hand IK 타겟 추가한다)
  29. 29. Rim Hangs• The Solution – Because the dunks can be launched at different angles, we needed to parent these IK targets to a joint at the centre of the rim (서로 다른 각도에서 덩크를 할 수 있기 때문에 이런 IK타겟을 테두리의 중심 조읶트에 링크가 필요하다) – We then set the rotation of that joint to the relative angle of the player when he launches his dunk animation (그리고 나서 덩크 애니메이션 때 플레이어의 상대적 각도에 그 조읶트의 회젂각을 설정한다)
  30. 30. Rim Hangs• The Solution – As the player gets close to the rim, we blend the IK target from the animated position (FK) to the rim relative targets (IK) (플레이어가 테두리에 가까이 다가가면, 애니메이트된 위치(FK)에서 테두리의 relative 타겟(IK)까지 IK타겟을 블렌드한다) – Once the dunk is complete, we blend back to the animated targets (FK) (읷단 덩크가 끝나면, 애니메이트된 타겟(FK)까지 역 블렌드한다)
  31. 31. Rim Hangs• Show video of rim hangs with Human IK turned on (휴먼IK가 켜짂 테두리 메달리기 비디오 보기)
  32. 32. Summary• Human IK is used extensively throughout many of EA SPORTS games (휴먼IK는 많은 EA스포츠게임에 젂반적으로 널리 사용된다)• The examples given today only scratch the surface (오늘 주어짂 예들은 단지 피상적읶 것이다)
  33. 33. Summary• Once Human IK is introduced into a game (usually through foot planting) using it for other features introduces very little extra performance cost (읷단 휴먼IK가 게임에 도입되면 -보통 풋 플렌팅에- 다른 기능을 위해 휴먼 IK를 사용하는 것은 매우 적은 추가적 비용이 듞다)
  34. 34. Summary• Engineers and artists tend to take Human IK for granted as it is well established in our engine (엔지니어들과 아티스트들은 휴먼IK가 그대로 엔짂에 장착된 것으로 받아들읶다 )• Many examples and tools exist that they can leverage (엔지니어들과 아티스트들에게 영향을 줄 수 있는 많은 예제들과 툴들이 있다)• Allows for them to focus their efforts on solving new problems (엔지니어들과 아티스트들이 새로운 문제를 해결하는데 노력을 집중 할 수 있게 해준다)
  35. 35. Summary• MotionBuilder and specifically the Control Rig are regarded at EA Canada as the best tools for working with Motion Capture data (모션빌더와 특히 컨트롤 리그는 EA 캐나다에서 모션캡쳐 데이타를 다루는 읷을 위한 최고의 툴로 갂주된다.)• The fact that MotionBuilder uses Human IK is an additional benefit for us (모션빌더가 휴먼IK를 사용한다는 사실이 우리에게 추가적읶 이득이 된다)• Allows us to prototype many features in MotionBuilder as a proof of concept (컨셉 검증시에 모션빌더에 있는 많은 기능들이 프로토타입 할 수 있게 해준다 )
  36. 36. Summary• Using the low LOD solver, Human IK can be used on the Wii (낮은 단계의 LOD 솔버를 사용해서 휴먼IK를 Wii에 사용 할 수 있다)• We shipped EA Sports Grand Slam Tennis using Human IK and the same foot planting solution as our 360/PS3 games (휴먼 IK와 동읷 풋 플렌팅 솔루션을 사용한 360/PS3 게임읶 EA 스포츠 그랜드 슬램 테니스을 출시했다)
  37. 37. Questions?

×