3D 애니메이션
우린 3D스프라이트가 게임에선 매우 중요하다는것을 알고있습니다.
어떻게 컨트롤하는지도 말이죠.
하지만 우린 더욱더 많은 효과를 원합니다.
그럼 애니메이션을 추가해보죠!
3D애니메이션을 구현하기 위해선 당신은 먼저 Animation3D 개체와 Animate3D 개체를 사용해야 합니다.
먼저 Animation3D 개체로 애니메이션 파일을 읽어오고 그다음 Animate3D 개체를 사용하여 추가합니다.
예시:
C++
// the animation is contained in the .c3b file
auto animation = Animation3D::create("orc.c3b");
// creates the Action with Animation object
auto animate = Animate3D::create(animation);
// runs the animation
sprite->runAction(RepeatForever::create(animate));
본 도큐멘트의 코드예시를 실행해보고 어떤 효과가 있는지 보세요.
3D애니메이션 이랑 2D애니메이션이랑 기본적으로 같습니다.
2D애니메이션은 본 도큐멘트의 제4장 을 보세요
다중 애니메이션
여러개의 애니메이션을 동시에 실행하고 싶을땐 어떻게 할까요?
당신은 여러개의 애니메이션을 생성하고 지정된 시작시간과 애니메이션 길이를 매개변수로 설정할수 있습니다.
두 매개변수 모두 초 단위입니다.예를들면 아래와 같습니다.
C++
auto animation = Animation3D::create(fileName);
auto runAnimate = Animate3D::create(animation, 0, 2);
sprite->runAction(runAnimate);
auto attackAnimate = Animate3D::create(animation, 3, 5);
sprite->runAction(attackAnimate);
위에 예에서 두개의 애니메이션이 실행됩니다.
첫번째는 애니메이션시작될때 2초간 지속되고 두번째 애니메이션은 3초때부터 시작하여 5초간 지속됩니다.
애니메이션 속도
애니메이션 속도는 하나의 정수로 제어합니다.
정수의 절대값이 애니메이션의 지속시간을 의미합니다.
정수값이 0보다 클경우 정상적으로 재생되고 0보다 작을때 반대로 재생합니다.
속도를 10으로 설정해놓으면 애니메이션은 10초내에 정상재생이 완료된다는 소리입니다.
애니메이션 블렌딩
여러 애니메이션을 사용할때 애니메이션간의 자동으로 블렌딩됩니다.
블랜딩의 목적은 원활한 전환을 위한것입니다.
두개의 애니메이션을 A와 B라고 합시다 A의 마지막순간의 여러 프레임과 B의 시작순간 여러 프레임이 중첩되어 자연스러운 애니메이션 전환이 가능하게 합니다.디폴드 블렌딩시간은 0.1초 입니다.
당신은 Animate3D::setTransitionTime 메서드를 사용하여 블렌딩 시간을 변경할수 있습니다.
Cocos2d-x는 키프레임간의 선형보간을 지원하여 곡선상의 공백을 메꾸고 부드러운 경로를 보장합니다.
만약 모델을 구성할때 다른 보간방법을 지정한다면 우리의 내장툴인 fbx-conv는 다른 키프레임을 생성하게 됩니다.fbx-conv에 대한 정보를 보고싶다면 이 도큐멘트의 끝부분을 보시면 됩니다.
출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/3d/animation.html>
'Cocos2d-x v3.17 > 고급 기능' 카테고리의 다른 글
[Cocos2d-x 고급기능]TextureCube (0) | 2018.08.11 |
---|---|
[Cocos2d-x 고급기능]카메라 (0) | 2018.08.11 |
[Cocos2d-x 고급기능]3D 지원 및 3D Sprite (0) | 2018.08.11 |
[Cocos2d-x 고급기능]마우스 이벤트,커스텀 이벤트 (0) | 2018.08.11 |
[Cocos2d-x 고급기능]키보드 이벤트,가속도계 이벤트 (0) | 2018.08.11 |