애니메이션 커브 채널 가져오기
이 문서는 애니메이션 커브 자산에서 특정 채널의 데이터를 가져오는 함수인 animcurve_get_channel에 대한 설명입니다. 이 함수는 애니메이션 커브 자산이나 구조체에 있는 채널 데이터를 포함하는 구조체를 반환합니다.
함수 설명
animcurve_get_channel 함수는 애니메이션 커브의 ID 또는 구조체 및 채널 이름 또는 인덱스를 입력받아 해당 채널 구조체를 반환합니다.
반환되는 구조체 포맷
반환되는 구조체는 다음과 같은 변수를 포함합니다:
| 변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| name | String | 채널의 이름입니다. |
| type | Animation Curve Interpolation Type Constant | 보간 유형으로, animcurvetype_linear (선형 보간), animcurvetype_catmullrom (부드러운 보간), 또는 animcurvetype_bezier (베지어 보간) 중 하나입니다. |
| iterations | Real | Catmull-Rom 보간을 사용하는 경우, 각 곡선 구간에 생성된 포인트 수입니다. 선형 보간의 경우는 무시할 수 있는 값입니다. |
| points | Array pointer | 채널의 모든 포인트를 포함하는 배열입니다. |
사용법
함수의 시그니처는 다음과 같습니다:
animcurve_get_channel(curve_struct_or_id, channel_name_or_index);
인자 설명:
| 인자 | 타입 | 설명 |
|---|---|---|
| curve_struct_or_id | Animation Curve Struct or Animation Curve Asset | 타겟 애니메이션 커브의 ID 또는 구조체 포인터입니다. |
| channel_name_or_index | String or Real | 채널 이름(문자열) 또는 채널 인덱스(정수)입니다. 인덱스 값은 0부터 n까지이며(n은 곡선 자산의 마지막 채널) 채널 이름을 사용하는 것보다 처리 속도가 빠릅니다. |
반환값
- 애니메이션 커브 채널 구조체
예제
아래 코드 예제는 ac_ButtonTween 자산의 채널 0에 대한 채널 구조체를 가져오고, 그 포인트 곡선의 값에 1을 추가하는 작업을 수행합니다:
var _channeldata = animcurve_get_channel(ac_ButtonTween, 0);
var _points = _channeldata.points;
for (var i = 0; i < array_length(_points); ++i) {
_points[i].value += 1;
}
포인트 배열 수정
포인트 배열을 수정할 때는 직접적으로 points 배열에서 작업할 수 없습니다. 대신, points 배열을 변수에 저장하여 복사본을 만들고, 수정 후 다시 적용해야 합니다.
예제:
var _points_copy = channel_struct.points;
array_delete(_points_copy, 0, 1); // 첫 번째 포인트 삭제
channel_struct.points = _points_copy; // 수정된 포인트 배열 다시 설정
결론
animcurve_get_channel 함수는 애니메이션 효과를 조정할 때 유용하게 사용됩니다. 이 문서에서는 함수의 사용법과 반환 구조체에 대한 설명, 그리고 활용 예제를 제공하였습니다. 더 많은 정보는 애니메이션 커브 문서의 다음 부분을 참조하십시오.
© Copyright YoYo Games Ltd. 2023 All Rights Reserved