fx_set_parameters 함수 설명
fx_set_parameters 함수는 필터 또는 효과의 매개변수를 변경하는 데 사용됩니다. 이 함수는 fx_create() 또는 layer_get_fx()에서 반환된 FX 구조체와 해당 매개변수를 포함하는 구조체를 지정합니다. 이렇게 하면 FX 구조체가 할당된 레이어에서 변경 사항이 표시됩니다.
구문
fx_set_parameters(filter_or_effect, parameter_struct);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| filter_or_effect | FX 구조체 | 수정할 FX 구조체 |
| parameter_struct | 구조체 | 필터/효과의 매개변수를 포함하는 구조체 |
반환값
이 함수는 반환값이 없습니다.
예제 코드
아래 코드는 "TintEffect"라는 이름의 레이어에서 FX 구조체를 가져오고, 해당 구조체의 매개변수를 수정한 후 다시 적용하는 예제입니다.
var _fx_struct = layer_get_fx("TintEffect");
if (_fx_struct != -1) {
var _params = fx_get_parameters(_fx_struct);
var _osc = sin(current_time / 1000);
_params.g_TintCol = [_osc, 0.3 + _osc, 0.6 + _osc, 1];
fx_set_parameters(_fx_struct, _params);
}
위 코드에서는 "Colour Tint" 필터가 적용된 레이어의 FX 구조체를 가져오고, fx_get_parameters()를 호출하여 해당 매개변수 구조체를 검색합니다. 그 후, sin() 함수와 current_time을 사용하여 진동하는 값을 생성하고, 이 값을 RGBA 값으로 사용하여 색조 효과를 애니메이션화합니다. RGBA 배열은 매개변수 구조체의 g_TintCol 변수에 할당되고, 구조체는 다시 fx_set_parameters()를 호출하여 FX 구조체에 적용됩니다.
활용 예제
- 효과의 색상 변경
gml var _fx_struct = layer_get_fx("ColorEffect"); if (_fx_struct != -1) { var _params = fx_get_parameters(_fx_struct); _params.g_Color = [1, 0, 0, 1]; // 빨간색으로 변경 fx_set_parameters(_fx_struct, _params); } - 효과의 투명도 조절
gml var _fx_struct = layer_get_fx("FadeEffect"); if (_fx_struct != -1) { var _params = fx_get_parameters(_fx_struct); _params.g_Alpha = 0.5; // 50% 투명도 fx_set_parameters(_fx_struct, _params); } - 효과의 크기 조절
gml var _fx_struct = layer_get_fx("ScaleEffect"); if (_fx_struct != -1) { var _params = fx_get_parameters(_fx_struct); _params.g_Scale = [1.5, 1.5]; // 크기를 1.5배로 조정 fx_set_parameters(_fx_struct, _params); } - 효과의 회전 애니메이션
gml var _fx_struct = layer_get_fx("RotateEffect"); if (_fx_struct != -1) { var _params = fx_get_parameters(_fx_struct); _params.g_Rotation = current_time / 100; // 시간에 따라 회전 fx_set_parameters(_fx_struct, _params); } - 효과의 밝기 조절
gml var _fx_struct = layer_get_fx("BrightnessEffect"); if (_fx_struct != -1) { var _params = fx_get_parameters(_fx_struct); _params.g_Brightness = 0.8; // 밝기를 80%로 설정 fx_set_parameters(_fx_struct, _params); }