fx_get_name 함수 설명
fx_get_name 함수는 필터 또는 효과의 이름을 해당 구조체에서 가져오는 데 사용됩니다. 이 함수는 fx_create() 또는 layer_get_fx()에서 반환된 FX 구조체를 지정하면, 해당 필터/효과의 이름을 문자열로 반환합니다. 이 이름은 이후 fx_create()에 전달되어 동일한 필터/효과 유형을 사용하여 새로운 FX 구조체를 생성하는 데 사용될 수 있습니다.
문법
fx_get_name(filter_or_effect);
인수
| 인수 | 유형 | 설명 |
|---|---|---|
| filter_or_effect | FX struct | 이름을 가져올 FX 구조체 |
반환값
- 필터/효과의 이름을 문자열로 반환합니다.
예제
다음은 모든 레이어를 반복하면서 FX 구조체를 확인하고, 특정 필터의 이름을 비교하여 색상을 변경하는 코드입니다.
var layers = layer_get_all();
for(var i = 0; i < array_length(layers); i++){
var layer_fx = layer_get_fx(layers[i]);
if (layer_fx != -1){
if (fx_get_name(layer_fx) == "_filter_tintfilter"){
fx_set_parameter(_fx_tint, "g_TintCol", [0, 0, 1, 1]);
}
}
}
위의 코드는 현재 방에 있는 모든 레이어를 반복하면서 각 레이어에 FX 구조체가 있는지 확인합니다. 만약 FX 구조체가 있다면, fx_get_name()을 호출하여 해당 필터/효과의 이름을 확인합니다. 이름이 "_filter_tintfilter"인 경우, 즉 "색상 틴트" 필터일 때, 틴트 색상을 파란색으로 변경합니다.
활용 예제
- 효과 이름 확인 후 다른 효과 적용하기
var layers = layer_get_all();
for(var i = 0; i < array_length(layers); i++){
var layer_fx = layer_get_fx(layers[i]);
if (layer_fx != -1){
if (fx_get_name(layer_fx) == "_filter_blurfilter"){
// 블러 효과가 적용된 경우 다른 효과 적용
fx_set_parameter(layer_fx, "g_BlurAmount", 5);
}
}
}
- 특정 효과가 있는 레이어 찾기
var target_layer = -1;
var layers = layer_get_all();
for(var i = 0; i < array_length(layers); i++){
var layer_fx = layer_get_fx(layers[i]);
if (layer_fx != -1 && fx_get_name(layer_fx) == "_filter_sharpenfilter"){
target_layer = layers[i];
break;
}
}
- 모든 효과 이름 출력하기
var layers = layer_get_all();
for(var i = 0; i < array_length(layers); i++){
var layer_fx = layer_get_fx(layers[i]);
if (layer_fx != -1){
var effect_name = fx_get_name(layer_fx);
show_message("Layer " + string(layers[i]) + " has effect: " + effect_name);
}
}
이와 같은 방식으로 fx_get_name 함수를 활용하여 다양한 효과를 관리하고 조작할 수 있습니다.