fx_get_parameters 함수 설명
fx_get_parameters 함수는 주어진 FX 구조체에 대한 모든 매개변수를 포함하는 구조체를 검색하는 데 사용됩니다. 이 함수는 fx_create() 또는 layer_get_fx()에서 반환된 FX 구조체를 지정하면, 해당 필터/효과에 적용 가능한 모든 매개변수의 변수를 포함하는 구조체를 반환합니다. 벡터를 사용하는 매개변수는 배열로 나타납니다.
매개변수의 이름을 별도의 배열로 얻으려면 fx_get_parameter_names()를 호출하거나, FX Types & Parameters 페이지에서 확인할 수 있습니다. 이 구조체에서 값을 변경해도 필터/효과에 그 변경 사항이 적용되지 않으며, 변경된 구조체를 필터/효과에 다시 적용하려면 fx_set_parameters()를 호출해야 합니다.
문법
fx_get_parameters(filter_or_effect);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| filter_or_effect | FX Struct | 매개변수가 반환될 FX 구조체 |
반환 값
- 구조체 (실패 시 -1)
예제 코드
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 구조체에 다시 적용됩니다.
활용 예제
예제 1: 색상 변화 애니메이션
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);
}
예제 2: 블러 효과 조정
var _fx_struct = layer_get_fx("BlurEffect");
if (_fx_struct != -1) {
var _params = fx_get_parameters(_fx_struct);
_params.g_BlurAmount = 5; // 블러 양을 5로 설정
fx_set_parameters(_fx_struct, _params);
}
예제 3: 투명도 애니메이션
var _fx_struct = layer_get_fx("OpacityEffect");
if (_fx_struct != -1) {
var _params = fx_get_parameters(_fx_struct);
_params.g_Opacity = abs(sin(current_time / 500)); // 투명도를 애니메이션
fx_set_parameters(_fx_struct, _params);
}
예제 4: 그라데이션 효과 적용
var _fx_struct = layer_get_fx("GradientEffect");
if (_fx_struct != -1) {
var _params = fx_get_parameters(_fx_struct);
_params.g_GradientColors = [[1, 0, 0], [0, 0, 1]]; // 빨간색에서 파란색으로 그라데이션
fx_set_parameters(_fx_struct, _params);
}
이와 같이 fx_get_parameters 함수를 활용하여 다양한 효과를 조정하고 애니메이션을 적용할 수 있습니다.