Godot 스프라이트 셰이더 플러그인 개요
요약
Godot 엔진용 스프라이트 전용 셰이더 플러그인 개요를 다룹니다. 이 플러그인은 복잡한 설정 없이도 SShader를 통해 스프라이트에 다양한 셰이더 효과와 애니메이션을 쉽게 적용할 수 있도록 돕습니다. 사용자는 노드 구조를 이해하고 Viewport 도구를 활용하여 시트 이미지 기반의 스프라이트에도 셰이더를 안정적으로 적용할 수 있습니다.
핵심 포인트
- Godot용 스프라이트 전용 셰이더 플러그인입니다.
- SShader를 통해 복잡한 설정 없이 애니메이션과 셰이더 효과 구현 가능합니다.
- 노드 구조(SShaderContainer, SShader) 이해가 필수적입니다.
- 시트 이미지 사용 시 Viewport 도구를 활용하여 문제를 해결할 수 있습니다.
개요
Godot의 스프라이트를 위한 셰이더 모음입니다. 버전 0.1에는 20개 이상의 셰이더가 포함되어 있습니다.
만약 셰이더 경험이 있고 단순히 몇 가지 셰이더를 참고하고 싶다면, 다음 경로에서 file.shader 파일을 찾을 수 있습니다:
res://addons/godot_sprite_shader/assets/shader/
만약 셰이더 경험이 없거나 간단한 경우에만 사용하고 싶다면, 이 플러그인은 SShader (스프라이트 셰이더)를 제공하여 셰이더를 사용하고 애니메이션을 빠르게 실행할 수 있도록 도와줍니다. 노이즈 텍스처를 위한 설정을 할 필요가 없습니다. 모든 것이 이미 설정되어 있으므로, 원하는 유형의 셰이더를 드래그 앤 드롭하고 파라미터를 변경하기만 하면 됩니다.
![]()
![]()
위 데모에서는 링크에서 가져온 로봇 아트 에셋을 사용했습니다.
설치 및 사용법
튜토리얼 비디오 시청: 비디오 링크
설치
플러그인의 addons 폴더 내용을 프로젝트에 복사하고 GodotSpriteShader를 활성화하세요.
참고:
core/script_language.cpp:232오류가 발생하면 링크를 확인하세요.
더 자세한 내용은 위의 비디오를 시청할 수 있습니다.
GodotSpriteShader 사용 방법
- 먼저, 노드 SShaderContainer를 추가하고 node path를 셰이더를 적용하려는 노드(Sprite, RectTexturem, ViewportContainer 등)로 설정해야 합니다.
- 사용하려는 SShader 유형을 추가합니다. SShader는 SShaderContainer의 자식 노드가 됩니다.
- 사용 방법:
- SShader를 사용하여 스프라이트에 셰이더를 적용하거나 제거하기 위해 활성화(activate) 또는 비활성화(inactive)할 수 있습니다.
- SShaderInterval (주황색) 유형은 애니메이션을 수행하기 위해 process_value 변수를 업데이트해야 합니다. 이는 AnimationPlayer나 play 함수를 사용하여 할 수 있습니다.
예시:
$SShaderContainer/SSDisovelFlash.play(0.1)
더 자세한 내용은 위의 비디오를 시청할 수 있습니다.
문서 (Docs)
- docs에 대한 더 많은 정보가 필요하면 링크를 참조하세요.
Viewport 도구 사용
SShader는 단일 이미지 텍스처를 사용하는 경우 잘 작동합니다.
하지만 스프라이트가 시트 이미지를 사용할 때는 일부 SShader가 제대로 작동하지 않습니다.
이 문제를 해결하는 방법은 Viewport를 사용하는 것입니다:
생성 (Create):
- Viewport에 가져오고 싶은 스프라이트 또는 노드를 선택합니다.
- GSS Extensions 섹션에서 크기를 입력하고 OK 버튼을 누릅니다.
- SShaderContainer를 선택하고 node path를 ViewportContainer로 업데이트합니다 (이 단계를 잊지 마세요).
![]()
업데이트 (Update):
- Viewport의 크기를 업데이트하려면, ViewportContainer를 선택한 다음 크기를 조정하고 Update 버튼을 클릭합니다.
![]()
참고: 이 "Viewport에 노드 추가" 도구는 아직 테스트 중이므로 예상대로 작동하지 않을 수 있습니다. 이 도구에 문제가 있다면 풀 리퀘스트(pull request)를 생성하여 제가 수정할 수 있도록 도움을 주거나, 이슈를 생성해 주시면 제가 나중에 수정하겠습니다.
여러 셰이더 사용하기:
- 사용할 Viewport를 더 많이 만들 수 있습니다 (각 Viewport는 1개의 셰이더를 사용합니다).
MultipleShader
QA:
플러그인을 설치했을 때 sprite_language.cpp 오류 메시지가 나타났습니다:
core/script_language.cpp:232 - Condition "!global_classes.has(p_class)" is true. Returned: String()
이 오류는 플러그인을 처음 설치할 때 발생할 수 있습니다.
왜 그런지는 모르겠지만, 프로젝트를 닫았다가 다시 열면 오류가 해결됩니다 :(.
셰이더의 동작이 예상과 다릅니다:
- 스프라이트에 시트 이미지를 사용하는 경우 Viewport를 사용해야 합니다.
- Viewport를 사용할 때는 SShaderContainer가 Sprite가 아닌 ViewportContainer로 node path를 가지고 있는지 확인하세요. 이전 셰이더 파일이 여전히 스프라이트에 남아 있다면 삭제해 주세요.
기여 (Contribution)
기여는 환영하며 풀 리퀘스트(pull request)를 통해 접수됩니다.
코드에 기여하거나 풀 리퀘스트를 제출할 수 있으며, 아이디어나 자료가 있다면 이슈(issue)를 생성하여 제공해 주셔도 됩니다. :)
저를 지원해주세요 (Support Me)
이 플러그인이 유용했다면, 커피 한 잔을 사주세요.
이는 제가 이 플러그인에 더 많은 셰이더를 만들 동기 부여가 됩니다.
라이선스
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기