역기구학 : 뼈와 관절구조를 사용하여 객체나 객체집합이 서로 유기적으로 움직이도록 애니메이션 처리하는 방법.
역기구학에 흥미를 느껴 플래시로 역기구학(fl.ik 패키지)을 테스트해 보았다.
하지만 처음부터 막혔다.
툴 상자에서 Bone Tool(뼈 모양 툴)을 사용하여 IK Armature를 만들었다.
그리고 Armature객체를 참조하기 위하여 IKManager.getArmatureByName()를 사용하였다.
분명 fla상에는 IK Armature이름이 "ArmatureTest"로 잘 되어있다.
하지만 곧 죽어도 null이다.
ArmatureTest가 fla에 존재한단 말이다!
이때는 Type을 Authortime이 아닌 Runtime으로 설정해 주어야한다.
Runtime으로 설정해주면 타임라인의 점 위에 사람표시가 뜬다.
그리고 컴파일하면 드디어 ArmartureTest객체가 참조된다.
Authortime과 Runtime에 대해 알아보자.
(Authortime은 저작자 관점, Runtime은 사용자 관점에서 애니메이션을 표현하는것이라 보면 된다.
즉, BoneTool을 이용하여 타임라인 애니메이션을 주려면 Authortime을 선택하고, 액션스크립트를 이용하여 사용자 인터렉션을 통해 애니메이션을 주려면 Runtime을 선택하면 된다.)
Type이 Authortime일때 타임라인에 Insert Pose를 통해 프레임 애니메이션을 넣었다.
그리고 Type을 Runtime으로 바꾸려고 하면 인서트된 Pose때문에 경고창이 뜨면서 Runtime으로 바뀌지 않는다.
Type을 Runtime으로 바꾼후에는 타임라인에 Insert Pose메뉴가 비활성화 되어있다.
이것은 샘플.
Amarture의 Type을 Runtime으로 설정하면 별다른 액션스크립트없이 Properties도구 상자를 이용하여 훌륭한 관절꺾기를 구현할 수 있다.