AnyPortrait > 스크립트 > 본


본을 직접 참조하거나 제어하는 함수들입니다.
​본의 소켓을 참조하거나 IK로 제어하는 함수들을 포함합니다.


public apOptBone GetBone ( string boneName )
public apOptBone GetBone ( int rootUnitIndex, string boneName )
Description

   이름으로 본을 찾아서 리턴합니다.
   ​루트 유닛 인덱스를 지정하지 않는다면 먼저 현재 렌더링되는 루트 유닛부터 전체 검색을 합니다.


Parameters

   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 참조하고자 하는 본의 이름


Return

   apOptBone : 검색된 본. 없을 경우 null 리턴


public Transform GetBoneSocket ( apOptBone optBone )
public Transform GetBoneSocket ( string boneName )
public Transform GetBoneSocket ( int rootUnitIndex, string boneName )
Description

   본의 소켓을 참조합니다.
   소켓에 대해서는 관련 페이지를 참고하시길 바랍니다.


Parameters

   apOptBone optBone : 소켓을 포함하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 참조하고자 하는 본의 이름


Return

   Transform : 본의 소켓 트랜스 폼. 없을 경우 null 리턴


public bool SetBonePosition ( apOptBone optBone, Vector3 position,
                Space space, float weight = 1.0f )
public bool SetBonePosition ( string boneName, Vector3 position,
                Space space, float weight = 1.0f )
public bool SetBonePosition ( int rootUnitIndex, string boneName, Vector3 position,
                Space space, float weight = 1.0f )
Description

   본의 위치를 제어합니다.
   ​가중치를 이용하여 보간할 수 있습니다.
   ​IK는 동작하지 않습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   Vector3 position : 옮기고자 하는 위치
   Space space : 위치 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.
   float weight : 애니메이션되는 본의 위치와의 보간 가중치


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBoneRotation ( apOptBone optBone, float angle,
                Space space, float weight = 1.0f )
public bool SetBoneRotation ( string boneName, float angle,
                Space space, float weight = 1.0f )
public bool SetBoneRotation ( int rootUnitIndex, string boneName, float angle,
                Space space, float weight = 1.0f )
Description

   본의 회전 각도를 제어합니다.
   ​가중치를 이용하여 보간할 수 있습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   float angle : 회전하고자 하는 각도 (Degree)
   Space space : 회전 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.
   float weight : 애니메이션되는 본의 각도와의 보간 가중치


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBoneScale ( apOptBone optBone, Vector3 scale,
                Space space, float weight = 1.0f )
public bool SetBoneScale ( string boneName, Vector3 scale,
                Space space, float weight = 1.0f )
public bool SetBoneScale ( int rootUnitIndex, string boneName, Vector3 scale,
                Space space, float weight = 1.0f )
Description

   본의 크기를 제어합니다.
   ​가중치를 이용하여 보간할 수 있습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   Vector3 scale : 크기 값
   Space space : 크기 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.
   float weight : 애니메이션되는 본의 크기와의 보간 가중치


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBoneIK ( apOptBone optBone, Vector3 position,
                Space space, float weight = 1.0f, bool isContinuous = true )
public bool SetBoneIK ( string boneName, Vector3 position,
                Space space, float weight = 1.0f, bool isContinuous = true )
public bool SetBoneIK ( int rootUnitIndex, string boneName, Vector3 position,
                Space space, float weight = 1.0f, bool isContinuous = true )
Description

   IK 방식으로 본을 이동합니다.
   본의 IK 설정을 하는 방법은 관련 페이지를 참고하세요.
   ​가중치를 이용하여 보간할 수 있습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   Vector3 position : 이동하고자 하는 위치. IK에 따라 해당 위치에 도달하지 못할 수 있습니다.
   Space space : 위치 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.
   float weight : 애니메이션되는 본의 위치와의 보간 가중치
   bool isContiuous : true라면 이전 프레임의 IK 결과를 참고하여 자연스러운 결과가 되도록 합니다.


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBoneLookAt ( apOptBone optBone, Vector3 position,
                Space space, float weight = 1.0f )
public bool SetBoneLookAt ( string boneName, Vector3 position,
                Space space, float weight = 1.0f )
public bool SetBoneLookAt ( int rootUnitIndex, string boneName, Vector3 position,
                Space space, float weight = 1.0f )
Description

   IK 방식과 유사하게 본을 회전하여 요청한 위치를 바라보게 합니다.
   SetBoneIK()와 다르게 1개의 본을 회전시킵니다.
   IK 설정의 영향을 받지 않습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   Vector3 position : 바라보고자 하는 위치
   Space space : 위치 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.
   float weight : 애니메이션되는 본의 회전값과의 보간 가중치


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBonePositionConstraint ( apOptBone optBone, float positionValue,
                ConstraintBound constraintBound, Space space )
public bool SetBonePositionConstraint ( string boneName, float positionValue,
                ConstraintBound constraintBound, Space space )
public bool SetBonePositionConstraint ( int rootUnitIndex, string boneName, float positionValue,
                ConstraintBound constraintBound, Space space )
Description

   본의 위치를 제한합니다.
   각각의 축에 대해서 범위를 설정할 수 있습니다.
   매 업데이트마다 새로 호출해야하며, ConstraintBound 타입을 다르게하여 중복되어 호출할 수 있습니다.


Parameters

   apOptBone optBone : 대상이 되는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 대상이 되는 본의 이름
   float positionValue : 제한하고자 하는 위치의 값
   ConstraintBound constraintBound : X, Y 축에 대해서 각각 "최소, 최대, 권장"의 타입을 가집니다.
   Space space : 위치 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴


public bool SetBonePositionConstraintBySurface ( apOptBone optBone,
                float defaultSurfacePosition, float currentSurfacePosition,
                float minSurfacePosition, float maxSurfacePosition,
                ConstraintSurface constraintSurface, Space space )
public bool SetBonePositionConstraintBySurface ( string boneName,
                float defaultSurfacePosition, float currentSurfacePosition,
                float minSurfacePosition, float maxSurfacePosition,
                ConstraintSurface constraintSurface, Space space )
public bool SetBonePositionConstraintBySurface ( int rootUnitIndex, string boneName,
                float defaultSurfacePosition, float currentSurfacePosition,
                float minSurfacePosition, float maxSurfacePosition,
                ConstraintSurface constraintSurface, Space space )
Description

   X, Y축에 대해서 기준 표면 위치를 설정하고, 현재 표면 위치를 입력하면 그 차이만큼 본의 위치가 보정됩니다.
   ​최소, 최대 범위를 지정하여 위치 보정이 안정적으로 수행되도록 합니다.
   본을 직접 제어하는 것이 아니므로 FK로 작성된 애니메이션이 유지되는 효과가 있습니다.


Parameters

   apOptBone optBone : 제어하고자 하는 본
   int rootUnitIndex : 루트 유닛의 인덱스 (없을 경우 전체 검색)
   string boneName : 제어하고자 하는 본의 이름
   float defaultSurfacePosition : 기준이 되는 표면 위치로, 대체로 일정한 값이 입력되어야 합니다.
   float currentSurfacePosition : 현재 표면의 위치
   float minSurfacePosition : 표면 위치의 최소 값
   float maxSurfacePosition : 표면 위치의 최대 값
   ConstraintSurface constraintSurface : 표면의 축 (X, Y)
   Space space : 위치 매개변수의 좌표계. World는 씬의 좌표계를 의미하며, Self는 apPortrait의 좌표계를 의미합니다.


Return

   bool : 존재하지 않는 본을 참조하고자 했다면 false 리턴