사용자의 Aseprite 창에서 라이브 작업하기
aseprite MCP 서버에는 두 가지 모드가 있으며, 호출 시마다 선택합니다.
- 라이브: Aseprite MCP Live 확장 프로그램이 설치된 Aseprite가 실행 중이며, 서버에 연결됩니다. 모든 도구가 해당 창 안의 열린 스프라이트에서 스크립트를 실행하고, 캔버스가 즉시 다시 그려집니다.
- 배치: 연결된 창이 없습니다. 각 도구가 숨겨진 Aseprite를 시작하고, 디스크의 파일을 편집한 후 종료합니다. 열린 창은 파일을 다시 열기 전까지 변경 사항을 표시하지 않습니다.
모든 세션은 live_status로 시작하세요
| 결과 | 수행할 작업 |
|---|---|
connected; active tab: <path> + saved | 모든 도구에 대해 해당 경로를 filename으로 사용합니다. |
... UNSAVED | 저장 위치를 물어본 후, save_active_sprite("<dir>/<name>.aseprite")를 호출하고 해당 경로를 사용합니다. |
connected; no sprite is open | create_canvas가 창에 새 탭을 엽니다. |
Aseprite is not connected ... | 사용자에게 알립니다. 사용자가 동의하는 경우에만 배치 모드로 작업합니다. |
항상 사용자가 열어놓은 파일에 그리기 (엄격)
모든 그림은 live_status가 보고하는 활성 스프라이트, 즉 사용자가 열어놓은 탭에 들어갑니다. 작업을 별도의 파일에 넣지 마세요.
- 두 번째 스프라이트를 절대 만들지 마세요. 사용자가 탭을 열어놓은 동안에는
create_canvas를 호출하거나run_lua_script에서Sprite(w, h)를 호출하지 마세요.live_status에 스프라이트가 열려 있지 않다고 표시될 때만create_canvas를 사용하세요. Lua에서는app.activeSprite를 편집하세요. - 캔버스가 너무 작으면 같은 파일의 크기를 조정하세요. 예를 들어, 열린 탭이 64×64이고 장면에 160×112가 필요하다면, 해당 파일에 대해
resize_canvas(<open file>, 160, 112)를 호출한 다음 그리세요. 프레임 수의 경우도 마찬가지로add_frames로 해당 파일에 프레임을 추가하세요. - 이미 그림이 있는 캔버스는 먼저 물어보세요.
resize_canvas는 기존 픽셀을 크기 조정하므로, 빈 탭에서는 그냥 크기를 조정하면 됩니다. 탭에 이미 그림이 있는 경우에는 사용자에게 먼저 물어보세요. - 탭이 저장되지 않은 경우,
save_active_sprite로 저장하고(저장 위치 물어보기), 계속해서 그 파일에서 작업하세요. 저장했다고 해서 다른 파일을 시작하는 이유가 되지는 않습니다. - 라이브 모드가 연결되지 않은 경우, 작업을 중단하고 사용자에게 알리세요. 사용자가 명시적으로 동의하지 않는 한 디스크의 새 파일로 대체하지 마세요.
확장 프로그램은 서버가 처음 시작될 때 Aseprite에 자동으로 설치됩니다. 그런 다음 Aseprite를 한 번 다시 시작해야 하며, 처음 사용 시 Aseprite에서 스크립트가 네트워크에 연결하거나 파일을 쓸 수 있는지 허용할지 묻습니다. 사용자는 Aseprite에서 이를 허용해야 합니다. 이러한 프롬프트를 사용자 대신 클릭하지 마세요.
라이브로 그리는 동안
- 하나의 도구 호출은 하나의 실행 취소 단계입니다. 사용자는 Ctrl+Z를 눌러 정확히 한 단계를 되돌릴 수 있으므로, 필요할 때 사용자에게 알려주세요.
- 눈에 보이는 단계로 작업하세요 (실루엣, 밑색, 음영, 디테일, 애니메이션). 사용자가 그림이 완성되는 과정을 볼 수 있도록 하고, 각 단계가 무엇을 하는지 설명하세요.
- 호출당 하나의 작은 작업만 하세요. 창은 호출이 반환될 때만 다시 그려지므로, 전체 장면을 그리는 스크립트는 한꺼번에 나타납니다. 각 호출은 하나의 오브젝트, 하나의 레이어, 하나의 음영 작업 또는 하나의 프레임을 추가해야 합니다. 스크립트를 작성하고, 실행하고, 그 다음 스크립트를 작성하세요. 모든 스크립트를 먼저 작성하고 마지막에 실행하지 마세요.
- 전용 도구(
draw_rows,draw_rectangle_at,draw_ellipse_at,fill_area_at등)를 선호하세요. 이 모든 도구는 각각 하나의 보이는 단계입니다. - 라이브 모드에서
run_lua_script는 40줄 이상의 스크립트를 거부합니다. 모든 스크립트는 자체적으로 함수를 재정의해야 하므로 도우미 함수를 짧게 유지하세요. - 64×64 장면은 일반적으로 10~25번의 호출이 필요합니다. 이는 정상입니다. 사용자가 그림이 만들어지는 과정을 지켜보고 있는 것입니다.
- 전용 도구(
- 모든 단계는 파일에 저장되므로
view_sprite와 내보내기 도구의 동기화가 유지됩니다. 이 도구들은 계속해서 숨겨진 Aseprite를 통해 저장된 파일을 읽습니다. - 사용자도 편집할 수 있습니다. 영역을 다시 그리기 전에
view_sprite나read_rows로 확인하고, 사용자의 변경 사항을 묻지 않고 덮어쓰지 마세요. - 사용자의 보기를 변경하지 마세요. 작업에 필요한 경우가 아니라면 창에서 탭, 프레임 또는 레이어를 전환하지 마세요.
문제 해결
- "대화 상자가 열려 있을 수 있습니다"와 함께 도구가 시간 초과됩니다. Aseprite가 권한 요청과 같은 프롬프트를 기다리고 있습니다. 사용자에게 응답하도록 요청하세요.
- 변경 사항이 창에 나타나지 않습니다.
live_status를 실행하세요. 각 호출은 먼저 다른 Claude 세션에서 보유하고 있는 라이브 링크를 가져오므로, 여전히 연결되지 않았다고 표시되면 Aseprite가 확장 프로그램 설치 전에 열린 것이므로 다시 시작해야 합니다. 작업을 중단하고 사용자에게 알리세요. 디스크의 파일에 계속 그리지 마세요. - 직접 Aseprite를 실행하지 마세요. 셸 명령으로 파일을 새 창에서 열지 마세요. 같은 파일에 대해 두 개의 창이 열리면 동기화가 깨지고, 스크립트는 마지막으로 연결된 창으로만 전달됩니다. 열린 탭이 오래된 경우 사용자에게 파일 → 되돌리기를 사용하라고 요청하세요.
- 스프라이트와 같은 이름의 탭이 나타났다가 닫힙니다. 이는 정상입니다. 일부 분석 도구는 임시 복사본에서 작업한 후 닫습니다.