FX Struct 생성 함수 설명
fx_create 함수는 특정 효과 유형에 대한 새로운 FX 구조체를 생성하는 데 사용됩니다. 이 구조체는 레이어에 적용될 수 있습니다. 이 함수에 전달할 수 있는 필터/효과의 이름은 모든 필터/효과 유형 페이지에서 확인할 수 있습니다.
사용법
생성된 효과의 매개변수는 fx_get_parameter 함수를 호출하여 읽을 수 있으며, fx_set_parameter 함수를 호출하여 새로운 값을 할당할 수 있습니다. 이 함수가 반환하는 구조체는 가시적인 멤버를 포함하지 않으며, 필터/효과 함수 중 하나를 통해서만 수정할 수 있습니다.
함수 실패
구조체 생성에 실패할 경우 함수는 -1을 반환합니다. 이는 지정된 FX 이름이 잘못되었거나 FX가 게임 패키지에 로드되지 않았을 때 발생할 수 있습니다. 이 함수가 제대로 작동하려면 필요한 FX가 게임 패키지에 로드되어 있어야 합니다. 필터 및 효과 함수 페이지에서 이와 관련된 내용을 확인할 수 있습니다. 조건이 충족되지 않으면, 즉 문자열 리터럴을 전달하지 않거나 필터/효과가 어떤 방에도 존재하지 않으면, 함수는 해당 필터/효과를 로드할 수 없으며 -1을 반환합니다.
문법
fx_create(filter_or_effect_name);
인수
| 인수 이름 | 유형 | 설명 |
|---|---|---|
| filter_or_effect_name | String | 생성할 필터/효과의 이름 (모든 필터/효과 유형에서 가져옵니다). |
반환값
- FX 구조체 또는 -1 (실패 시)
예제
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 구조체를 생성합니다. 이는 Room Editor에서 찾을 수 있는 "색상 틴트" 필터입니다. "g_TintCol" 매개변수에 색상 값을 할당하며, 이는 내부적으로 vec4 형식이므로 빨강, 초록, 파랑 및 알파 값에 해당하는 네 개의 값을 포함하는 배열을 사용합니다. 그런 다음 틴트에 대한 FX 구조체가 FX 레이어에 적용됩니다.
활용 예제
- 블러 효과 적용하기
gml var _fx_blur = fx_create("_filter_blur"); fx_set_parameter(_fx_blur, "g_BlurAmount", 5); layer_set_fx("BlurLayer", _fx_blur); - 그림자 효과 적용하기
gml var _fx_shadow = fx_create("_filter_shadow"); fx_set_parameter(_fx_shadow, "g_ShadowColor", [0, 0, 0, 0.5]); layer_set_fx("ShadowLayer", _fx_shadow); - 색상 반전 효과 적용하기
gml var _fx_invert = fx_create("_filter_invert"); layer_set_fx("InvertLayer", _fx_invert); - 그라데이션 효과 적용하기
gml var _fx_gradient = fx_create("_filter_gradient"); fx_set_parameter(_fx_gradient, "g_GradientColors", [[1, 0, 0], [0, 0, 1]]); layer_set_fx("GradientLayer", _fx_gradient); - 투명도 조절하기
gml var _fx_alpha = fx_create("_filter_alpha"); fx_set_parameter(_fx_alpha, "g_Alpha", 0.7); layer_set_fx("AlphaLayer", _fx_alpha);