Unreal Engine MCP TIL 1
시킨 문장에는 늘 빈칸이 있다
큐브 100개를 나선으로 놓아 달라고 했다
언리얼 에디터의 MCP 서버(Model Context Protocol — AI가 프로그램을 직접 조작할 수 있게 이어 주는 연결 규격)를 Claude Code에 붙여 두고 말로 시켰다.
“큐브 100개를 나선으로, 위로 갈수록 작아지게.” 이 한 문장으로 배치가 나왔다. 그런데 나온 결과를 보니 내가 정하지 않은 값이 알아서 들어가 있었다.
나선 반지름 600
네 바퀴
높이 50에서 1250까지
크기 1.0에서 0.2로
내가 말한 건 개수와 “위로 갈수록 작아진다”뿐이었다. 나머지는 전부 채워진 것이다. 심지어 “나선”이 기둥처럼 곧은 나선인지 위로 좁아지는 원뿔인지도 안 정해져 있었다.
빈칸을 못 보면 결과가 취향 차이로 보인다
다른 판에서는 “격자 중 짝수 번째만 빨갛게”라고 했더니 체커보드가 아니라 세로 줄무늬가 나왔다. 처음엔 잘못 만든 줄 알았다.
아니었다. 격자가 열 칸이라 “짝수 번째”를 앞에서부터 세면 모든 줄이 같은 무늬가 된다. 열한 칸이었으면 같은 규칙으로 체커보드가 나왔다. 내 말이 틀린 것도 아니고 구현이 틀린 것도 아닌데, 격자 폭에 따라 결과가 갈린 것이다.
같은 판에서 “절반만 빨갛게” 했더니 나머지 절반이 흰색이 아니라 검정이었다. 내가 “나머지는 흰색”이라고 말한 적이 없다는 걸 그제야 알았다. 안 칠하는 것과 흰색을 칠하는 것은 다른 작업이다.
그래서 무엇을 바꿨나
결과가 예상과 다를 때 “왜 이렇게 했냐”를 묻기 전에 “내가 그걸 말했나”를 먼저 보게 됐다. 열에 예닐곱은 내가 안 말한 것이었다.
반대로 지시할 때도 달라졌다. 애매한 말을 전부 지우는 건 불가능하니, 어디가 애매한지를 같이 듣는 쪽이 낫다. 무엇을 정했는지 결과와 함께 말해 주면 그 자리에서 뒤집을 수 있다. 다 만들고 나서 “그게 아닌데”보다 훨씬 싸다.
대량으로 만든 것은 되돌리는 단위가 다르다
한 번에 만들었는데 한 번에 안 지워졌다
스크립트 한 번으로 큐브 100개를 깔았다. 마음에 안 들어 되돌리기를 눌렀더니 하나만 사라졌다. 100번을 눌러야 원래대로 돌아가는 구조였다.
만드는 쪽은 한 번인데 취소는 100번이다. 이 비대칭을 모르고 대량 작업을 하면 물릴 방법이 없다.
그래서 생긴 습관
대량 작업 전에 되돌릴 방법을 먼저 정한다. 되돌리기에 기대지 않고, 만든 것을 한 묶음으로 지울 수 있게 해 두거나 작업 전 상태를 저장해 둔다.
나중에 궁 담장을 통째로 다른 모양으로 바꿔볼 때 이게 값을 했다. 바꾸기 전에 저장해 두고, 원래 것을 지우는 대신 숨겨만 뒀다. 결과가 마음에 안 들었는데 원상복구가 몇 초였다.
되돌릴 수 있게 만들어 두면 과감하게 시도할 수 있다. 되돌릴 방법이 없으면 시도 자체를 안 하게 된다.
확인할 수 없는 형태로 만들면 맞았는지 모른다
원기둥으로 만들 뻔했다
“기둥 24개를 원형으로, 전부 중심을 바라보게” 놓기로 했다. 기둥이니 원기둥이 자연스럽다.
그런데 원기둥은 축이 대칭이라 어느 방향을 봐도 똑같이 생겼다. 중심을 바라보게 돌렸는지 아닌지를 눈으로도 스크린샷으로도 확인할 수 없다. 그래서 사각기둥으로 바꿨다. 단면이 네모라 방향이 보인다.
판단에 쓰는 방식
결과를 확인할 수 있는 형태를 고르는 것도 설계다. 확인이 안 되는 형태로 만들면 맞았는지 틀렸는지 영영 모른 채로 다음 단계로 간다.
같은 이유로 담장 높이를 정할 때도 애매한 값을 피했다. 사람 눈높이에 딱 맞추면 넘겨다볼 듯 말 듯 해서 미로도 아니고 트인 것도 아니다. 확실히 위나 확실히 아래로 두는 게 낫다. 애매한 값은 결과도 애매하게 만든다.