animcurve_channel_evaluate 함수 설명 및 예제
animcurve_channel_evaluate 함수는 특정 시간 지점에서 애니메이션 커브 채널의 값을 가져오는 함수입니다. 이 함수는 animcurve_get_channel() 함수를 통해 반환된 채널의 구조체 포인터와 커브 채널을 평가할 "x" (시간) 위치를 입력으로 받습니다. 이 위치는 0과 1 사이여야 하며, 함수는 해당 위치의 커브 값을 반환합니다. 만약 제공된 채널 구조체가 유효하지 않다면 0을 반환합니다.
문법
animcurve_channel_evaluate(channel_struct, posx);
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| channel_struct | Animation Curve Channel Struct | 평가할 채널의 구조체 포인터입니다. |
| posx | Real | 확인할 시간 위치 (0부터 1사이). |
반환값
- Real: 커브 위치에서의 값 또는 0 (유효하지 않은 경우)
사용 예제
아래의 코드는 애니메이션 커브 자산인 ac_AlphaCurve의 채널 구조체를 가져온 후, 현재 시간에 기반하여 이미지의 알파 값을 설정하는 예제입니다.
var _channel = animcurve_get_channel(ac_AlphaCurve, 0);
var _val = animcurve_channel_evaluate(_channel, sin(current_time / 1000));
image_alpha = _val;
활용 및 응용 예제
- 오브젝트의 움직임 조정
gml var _channel = animcurve_get_channel(ac_MoveCurve, 0); var _pos = animcurve_channel_evaluate(_channel, (current_time / 1000) % 1); x = _pos * room_width; // x 좌표 조정 - 사운드 볼륨 조절
gml var _channel = animcurve_get_channel(ac_SoundVolumeCurve, 0); var _volume = animcurve_channel_evaluate(_channel, (current_time / 5000) % 1); audio_sound_gain(sound_id, _volume, 0); // 사운드 볼륨 조절 - 색상 변화
gml var _channel = animcurve_get_channel(ac_ColorCurve, 0); var _colorVal = animcurve_channel_evaluate(_channel, sin(current_time / 2000)); image_blend = make_color_rgb(_colorVal * 255, 0, 0); // 빨간색 변화
이와 같은 방식으로 animcurve_channel_evaluate 함수를 사용하여 다양한 효과와 애니메이션을 구현할 수 있습니다.