layer_set_fx 함수 설명
layer_set_fx 함수는 FX 구조체를 방 레이어에 할당하는 데 사용됩니다. 수정하려는 레이어의 ID 또는 이름을 지정한 후, 해당 레이어에 적용할 FX 구조체를 지정합니다. 이 FX 구조체는 fx_create() 또는 layer_get_fx()에서 반환된 것입니다. 이 함수를 사용하면 방에서 효과를 시각적으로 확인할 수 있습니다.
주요 사항
- 필터/효과 레이어가 아닌 다른 유형의 레이어(예: 인스턴스 레이어, 자산 레이어, 타일 레이어 등)를 지정하면 해당 레이어의 내용과 그 아래의 레이어에도 효과가 적용됩니다.
- 지정한 레이어에 이미 FX 구조체가 할당되어 있는 경우, 새로운 FX 구조체로 교체됩니다.
- 스크립트의 루트 레벨에서 이 함수를 호출하면 아무런 효과가 없습니다. 스크립트는 첫 번째 방이 로드되기 전에 실행되기 때문입니다. 먼저 목표 방을 설정한 후 이 함수를 호출해야 합니다.
문법
layer_set_fx(layer_name_or_id, filter_or_effect);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| layer_name_or_id | String 또는 Layer ID | 수정할 레이어의 이름 또는 ID |
| filter_or_effect | FX Struct | 레이어에 적용할 FX 구조체 |
반환값
N/A
예제
var _fx_tint = fx_create("_filter_tintfilter");
fx_set_parameter(_fx_tint, "g_TintCol", [1, 0, 0, 1]);
layer_set_fx("EffectLayer", _fx_tint);
위 코드는 "_filter_tintfilter" 효과에서 새로운 FX 구조체를 생성합니다. 이 구조체의 "g_TintCol" 매개변수에 색조의 값을 할당합니다. 이 값은 내부적으로 vec4 형식으로, 빨강, 초록, 파랑, 알파 값에 해당하는 네 개의 값을 포함하는 배열을 사용합니다. 이후 이 색조 FX 구조체가 FX 레이어에 적용됩니다.
활용 예제
예제 1: 색상 조정 효과 적용
var _fx_color_adjust = fx_create("_filter_color_adjust");
fx_set_parameter(_fx_color_adjust, "g_Brightness", 0.5);
layer_set_fx("ColorLayer", _fx_color_adjust);
예제 2: 블러 효과 적용
var _fx_blur = fx_create("_filter_blur");
fx_set_parameter(_fx_blur, "g_BlurAmount", 10);
layer_set_fx("BlurLayer", _fx_blur);
예제 3: 그레이스케일 효과 적용
var _fx_grayscale = fx_create("_filter_grayscale");
layer_set_fx("GrayscaleLayer", _fx_grayscale);
예제 4: 여러 효과 조합 적용
var _fx_tint = fx_create("_filter_tintfilter");
var _fx_blur = fx_create("_filter_blur");
fx_set_parameter(_fx_tint, "g_TintCol", [0, 1, 0, 1]);
layer_set_fx("EffectLayer", _fx_tint);
layer_set_fx("BlurLayer", _fx_blur);
이와 같이 layer_set_fx 함수를 활용하여 다양한 효과를 방의 레이어에 적용할 수 있습니다.