필터 및 효과
필터/효과 레이어
룸 에디터에서 새로운 필터/효과 레이어를 추가하려면 버튼을 클릭하여 새로운 레이어를 추가하고 그 아래에 속성을 열 수 있습니다. 필터/효과(FX) 레이어는 일부 레이어에 시각적 필터나 효과를 적용하는 데 사용됩니다. "효과 유형" 드롭다운 목록에서 효과를 선택하면 레이어 속성 창에서 해당 효과의 매개변수를 수정할 수 있습니다.
예를 들어, "스크린 흔들림" 효과를 선택하면 그 크기, 흔들림 속도 및 노이즈 텍스처로 사용할 스프라이트를 변경할 수 있습니다.
FX 레이어를 추가하면 선택한 효과가 FX 레이어 아래에 있는 모든 다른 레이어에 적용됩니다. 이는 모든 "영향을 받는" 레이어가 FX 레이어 아래에 있기 때문에 선택한 필터가 적용된다는 것을 의미합니다. FX 레이어 위에 있는 레이어는 영향을 받지 않습니다. 레이어는 레이어 순서의 어디에든 존재하는 여러 효과 레이어의 영향을 받을 수 있습니다.
특정 레이어에만 적용되는 필터/효과를 만들려면 "단일 레이어 FX"를 참조하세요.
주의사항
런타임에서 레이어나 인스턴스의 깊이를 수정하면 어떤 FX 레이어가 적용되는지가 변경될 수 있습니다. 깊이를 FX 레이어의 깊이보다 높게 설정하면 FX 레이어 아래로 가서 영향을 받게 되고, 깊이를 FX 레이어의 깊이보다 낮게 설정하면 FX 레이어 위로 가서 영향을 받지 않게 됩니다.
필터와 효과의 차이
- 필터: 셰이더만 사용하며 룸 에디터에서 미리 볼 수 있습니다.
- 효과: 셰이더 외에도 내부 코드가 있어 자체적으로 관리됩니다. 이로 인해 룸 에디터에서 미리 볼 수 없으며, 런타임(게임 내)에서만 기능합니다.
예를 들어, "컬러화"는 필터이고, "바람에 날리는 입자"는 효과입니다.
효과 유형
"효과 유형" 드롭다운 목록에 있는 모든 필터와 효과는 이 페이지에서 문서화되어 있습니다: FX 유형 및 매개변수.
단일 레이어 FX
FX 레이어를 생성하여 여러 레이어에 필터를 적용할 수 있지만, 특정 레이어에만 필터를 할당할 수도 있습니다. 인스펙터에서 레이어를 선택하면 해당 레이어에 필터/효과를 적용할 수 있으며, 그 레이어가 비-FX 레이어(예: 인스턴스 레이어, 자산 레이어 등)인 경우 효과는 그 레이어에만 적용되고 아래의 다른 레이어에는 적용되지 않습니다.
선택한 레이어에 대해 FX를 활성화/비활성화하려면 아이콘을 클릭할 수 있습니다. 일부 필터/효과는 단일 레이어에만 적용될 수 있으며("혼합"과 같은), 비-FX 레이어에만 나타납니다.
런타임 사용
런타임에서 필터/효과를 추가하고 제어하려면 필터/효과 GML 함수를 사용할 수 있습니다. 더 많은 정보는 필터 및 효과 함수 문서를 참조하세요.
항목 | 설명 |
---|---|
필터/효과 레이어 추가 | 버튼 클릭 |
효과 선택 | "효과 유형" 드롭다운 목록 |
FX 레이어의 영향 | FX 레이어 아래의 모든 레이어에 적용 |
단일 레이어 FX | 특정 레이어에만 필터 적용 |
필터 vs 효과 | 필터는 셰이더만, 효과는 내부 코드 포함 |
런타임 제어 | 필터/효과 GML 함수 사용 |
활용 예제
// 스크린 흔들림 효과 적용
var shakeEffect = instance_create_layer(x, y, "FX Layer", obj_shake);
shakeEffect.magnitude = 10;
shakeEffect.speed = 5;
// 단일 레이어에 필터 적용
var filterLayer = layer_get_id("MyLayer");
layer_set_filter(filterLayer, "Blend");
// 런타임에서 효과 추가
if (condition) {
var effectInstance = instance_create_layer(x, y, "FX Layer", obj_effect);
effectInstance.parameter = value;
}