콘텐츠로 이동

3D 조형 — 내 머릿속 그림을 명세로 바꾸기 (차시 1-2)

트랙 A · 차시 1-2: 귀여운 캐릭터로 시작하는 3D 조형 (2시간)

섹션 제목: “트랙 A · 차시 1-2: 귀여운 캐릭터로 시작하는 3D 조형 (2시간)”

“내 머릿속 그림을 명세로 바꾸기”

섹션 제목: ““내 머릿속 그림을 명세로 바꾸기””

항목내용
차시트랙 A — 1~2/8차시 (도입부 이후 첫 트랙)
주제VPython 3D 조형: 기본 도형으로 캐릭터 만들기
핵심 루프손으로 그리기 → 직접 코딩 → AI에게 시키기 → 복잡한 것을 AI에게
학습목표학생은 모호한 요청과 정밀한 명세의 결과 차이를 직접 체험하고, VPython 3D 규칙을 3개 이상 규칙 파일에 추가한다
규칙 파일도입부에서 가져온 510개 → 이 차시 후 +35개
준비물교사: GlowScript 데모 4종(캐릭터별), 치트시트 인쇄물, 샘플 프롬프트 테스트 완료 / 학생: 노트북, 종이, 연필
플랫폼GlowScript (glowscript.org) — 설치 없이 브라우저에서 바로 실행

🎯 이 차시에서 다루는 교육 목표

섹션 제목: “🎯 이 차시에서 다루는 교육 목표”
목표이 차시에서의 구체적 활동
1. AI 생성물 한계 식별AI가 만든 3D 캐릭터에서 위치·비율·대칭 오류를 찾는다
2. 활용 방식별 품질 차이”커비 만들어줘” vs 좌표 명세 요청의 결과를 나란히 비교한다
4. 구조화된 명세 변환”커비”를 도형·좌표·크기·색상으로 분해한다
5. 수용 기준 사전 정의”몸통과 팔이 관통하지 않는다” 같은 기준을 결과 보기 전에 세운다
6. 실패 기반 규칙 구축AI의 3D 실수에서 규칙을 뽑아 규칙 파일에 추가한다

1️⃣ 도입: “이 라이언, 도형 몇 개일까?” (10분)

섹션 제목: “1️⃣ 도입: “이 라이언, 도형 몇 개일까?” (10분)”

학생에게 “3D라고 해서 어려운 게 아니다, 공 몇 개면 캐릭터가 된다”는 걸 보여주는 것이 목적입니다. 동시에 “그런데 어디에 놓느냐가 결정적이다”라는 복선을 깔아 둡니다. 이 복선이 활동 3(AI에게 시키기)에서 회수됩니다.

“여러분, 화면 좀 볼까요.” (GlowScript에서 미리 만든 라이언을 화면에 띄운다 — 3D이므로 마우스로 회전해서 여러 각도로 보여준다)

“이거 뭔지 알아요?”

예상 반응:

  • “라이언이요!” / “카카오프렌즈!” / “귀엽다!”

“맞아요, 라이언이에요. 그런데 이 라이언, 코드로 만든 거예요. 프로그램 딱 몇 줄로 된 코드요. 3D 도형 몇 개로 만들었을까요? 맞혀보세요.”

예상 반응:

  • “5개?” / “10개?” / “많을 것 같은데요”

“정답은… 8개입니다. 전부 sphere(공)예요.” (손가락으로 화면의 각 부위를 짚으며) “주황 공 하나가 몸통, 작은 주황 공 2개가 귀, 흰 공 2개가 눈 흰자, 검은 공 2개가 눈동자, 작은 검은 공 1개가 코. 끝이에요.”

(코드를 보여주며) “sphere 8개. 이게 전부예요. 그런데 중요한 건 어디에 놓느냐예요. 위치를 조금만 잘못 잡으면 귀가 턱에 붙거나, 눈이 뒤통수에 박혀요.”

선생님이 보여줄 코드 (라이언 — sphere 8개)

섹션 제목: “선생님이 보여줄 코드 (라이언 — sphere 8개)”
GlowScript 3.2 VPython
# 라이언 — sphere 8개
sphere(pos=vector(0, 0, 0), color=color.orange, radius=1) # 몸통(얼굴)
sphere(pos=vector(0.8, 0.8, 0), color=color.orange, radius=0.2) # 오른쪽 귀
sphere(pos=vector(-0.8, 0.8, 0), color=color.orange, radius=0.2) # 왼쪽 귀
sphere(pos=vector(0.1, 0.25, 0.95), color=color.white, radius=0.15) # 오른눈 흰자
sphere(pos=vector(-0.1, 0.25, 0.95), color=color.white, radius=0.15) # 왼눈 흰자
sphere(pos=vector(0, 0.4, 1), color=color.black, radius=0.05) # 코
sphere(pos=vector(0.3, 0.5, 0.8), color=color.black, radius=0.1) # 오른눈 동공
sphere(pos=vector(-0.3, 0.5, 0.8), color=color.black, radius=0.1) # 왼눈 동공
라이언 — sphere 8개로 완성! 마우스로 돌려보세요

더 복잡한 예시 (춘식이 — 도형 10개)

섹션 제목: “더 복잡한 예시 (춘식이 — 도형 10개)”

“이번엔 춘식이예요. 라이언보다 도형이 2개 더 많은 10개인데, 볼터치랑 빨간 머리띠까지 표현했어요.”

GlowScript 3.2 VPython
# 춘식이 — sphere 9개 + ellipsoid 1개
sphere(pos=vector(0, 0, 0), color=vector(1, 0.8, 0.4), radius=1) # 몸통(얼굴)
sphere(pos=vector(0.6, 0.64, 0), color=vector(1, 0.8, 0.4), radius=0.25) # 오른쪽 귀
sphere(pos=vector(-0.6, 0.64, 0), color=vector(1, 0.8, 0.4), radius=0.25) # 왼쪽 귀
sphere(pos=vector(0.07, 0.23, 0.95), color=color.white, radius=0.15) # 오른눈 흰자
sphere(pos=vector(-0.07, 0.23, 0.95), color=color.white, radius=0.15) # 왼눈 흰자
sphere(pos=vector(0.28, 0.5, 0.8), color=color.black, radius=0.1) # 오른눈 동공
sphere(pos=vector(-0.28, 0.5, 0.8), color=color.black, radius=0.1) # 왼눈 동공
sphere(pos=vector(0.3, 0.15, 0.78), color=vector(1, 0.6, 0.6), radius=0.25) # 오른쪽 볼
sphere(pos=vector(-0.3, 0.15, 0.78), color=vector(1, 0.6, 0.6), radius=0.25) # 왼쪽 볼
ellipsoid(pos=vector(0, 0.1, 0), size=vector(2.14, 0.6, 0.6), color=vector(0.8, 0, 0)) # 머리띠
춘식이 — 도형 10개, 볼터치와 머리띠까지! 돌려보세요

“자, 오늘 여러분은 이런 캐릭터를 만들 거예요. 근데 세 가지 방법으로요.”

오늘의 흐름: ① 종이에 손으로 그리기 → ② 직접 코딩해보기 → ③ AI에게 시켜보기

“먼저 손으로 그리고, 그 다음 직접 코딩하고, 마지막으로 AI에게 시켜볼 거예요. 세 가지 방법으로 같은 걸 만들어보면… 뭔가 느끼는 게 있을 거예요.”

교사 유의사항:

  • 커비를 못 알아보는 학생이 있으면 괜찮습니다. 핵심은 “간단한 도형 몇 개로 캐릭터가 된다”는 것입니다.
  • 코드를 자세히 설명하지 마세요. “sphere는 공, ellipsoid는 타원, pos는 위치, size는 크기, color는 색” 정도만. 나머지는 학생이 직접 해보면서 알게 됩니다.
  • GlowScript 접속이 안 되는 학생이 있으면 즉시 해결하세요. 전원이 GlowScript를 열 수 있어야 다음으로 넘어갑니다.
  • 코드에서 첫 줄 GlowScript 3.2 VPython은 “이 코드가 VPython임을 알려주는 선언문”이라고만 설명하세요. 학생이 직접 칠 필요 없이, GlowScript에서 새 프로그램을 만들면 자동으로 들어갑니다.

2️⃣ 치트시트 배부 + 캐릭터 선택 + 종이에 그리기 (15분)

섹션 제목: “2️⃣ 치트시트 배부 + 캐릭터 선택 + 종이에 그리기 (15분)”

“코딩하기 전에, 이 치트시트를 먼저 나눠줄게요. VPython에서 쓸 수 있는 기본 도형 4가지예요. 한번 훑어보세요.”

학생용 VPython 치트시트 (인쇄하여 배부하거나 화면에 상시 표시)

도형코드주요 속성
sphere(pos=vector(x,y,z), radius=r, color=...)pos, radius, color
타원ellipsoid(pos=vector(x,y,z), size=vector(가로,세로,깊이), color=...)pos, size, color
상자box(pos=vector(x,y,z), size=vector(가로,세로,깊이), color=...)pos, size, color
원뿔cone(pos=vector(x,y,z), axis=vector(방향), radius=r, color=...)pos, axis, radius
원기둥cylinder(pos=vector(x,y,z), axis=vector(방향), radius=r, color=...)pos, axis, radius
**색상**: `color.red`, `color.blue`, `color.green`, `color.white`, `color.orange`, `color.yellow`, `color.cyan`, `color.magenta` 또는 `vector(R, G, B)` (각각 0~1, 예: 분홍 = `vector(1, 0.6, 0.7)`)

“치트시트 아래쪽에 좌표가 있죠? 간단해요. 교실에서 생각해보세요 — x는 좌우 (왼쪽이 마이너스, 오른쪽이 플러스), y는 상하 (아래가 마이너스, 위가 플러스), z는 앞뒤 (뒤가 마이너스, 앞이 플러스). 마인크래프트 좌표 아는 사람? 비슷해요.”

예상 반응:

  • “마크에서는 y가 높이인데 같네요” / “게임이랑 비슷한 거예요?”

“맞아요, 게임에서 캐릭터 위치 잡는 것과 비슷해요. 숫자 하나만 바꾸면 도형이 확 움직이니까 나중에 직접 해보면서 감 잡을 거예요.”

교사 유의사항:

  • 치트시트는 코딩 전에 배부합니다. 학생이 도형 이름과 속성을 미리 알아야 종이에 그릴 때 “이건 sphere로 만들 수 있겠다”는 연결이 됩니다.
  • 외울 필요 없다고 말하세요. “보면서 하면 돼요. 시험 안 봐요.”
  • 좌표 설명에 시간을 많이 쓰지 마세요. 직접 코딩해보면서 “아, y를 줄이면 아래로 가는구나”를 체험하는 것이 훨씬 효과적입니다.

캐릭터 선택 + 종이에 그리기 (13분)

섹션 제목: “캐릭터 선택 + 종이에 그리기 (13분)”

“자, 종이를 꺼내세요. 네 가지 중 하나를 골라서 따라 그려보세요. 치트시트를 보면서 ‘이건 어떤 도형으로 만들 수 있을까’ 생각하면서요.”

캐릭터 선택지 4종 (선생님이 학생 취향에 맞게 2~3개를 골라 제시할 수 있음)

캐릭터 미리보기 — 커비

커비 — 도형 6개로 완성! 마우스로 돌려보세요
선택지 A: 별의 커비선택지 B: 눈사람선택지 C: 마크 크리퍼선택지 D: 펭귄
구성분홍 공 1 + 빨간 타원 2(발) + 파란 타원 2(눈) + 빨간 공 1(입)흰 공 3(대중소) + 주황 원뿔 1(코) + 검은 공 2(눈)초록 상자 1(머리) + 초록 상자 1(몸통) + 초록 상자 4(발) + 검은 상자 2(눈) + 검은 상자 1(입)검은 타원 1(몸) + 흰 타원 1(배) + 주황 원뿔 1(부리) + 검은 공 2(눈) + 주황 타원 2(발)
도형 수6개6개9개 (전부 box!)7개
핵심 연습sphere + ellipsoid수직 정렬 (y축)box의 size 속성다양한 도형 혼합
난이도★★★★★★
매력 포인트둥글둥글 귀여움단순명쾌게임 캐릭터 인기도형 종류 다양

“그리면서 생각해보세요: ① 어떤 도형이 필요한가? (공? 타원? 원뿔?) ② 각 도형이 어디에 있어야 하는가? ③ 크기는 어느 정도? ④ 은?”

예상 반응:

  • (열심히 그리는 학생) → 좋습니다, 그대로 두세요.
  • “저 그림 못 그리는데요” → “괜찮아요, 대충 그려도 돼요. 중요한 건 어떤 도형이 어디에 있는지 표시하는 거예요.”
  • “다른 캐릭터 그려도 돼요?” → “기본 도형 5~7개로 만들 수 있는 거면 돼요.”

“다 그렸으면, 그림 옆에 이렇게 적어보세요: ‘몸통: 공, 가운데, 크기 크게, 분홍색’ ‘왼발: 타원, 왼쪽 아래, 크기 작게, 빨간색’ 이런 식으로요.”

교사 유의사항:

  • 이 종이가 나중에 “수용 기준”의 원본이 됩니다. “네가 그린 그림이랑 AI가 만든 거랑 비교할 거니까, 잘 보관하세요.”
  • 그림 실력은 전혀 중요하지 않습니다. 도형의 종류, 위치, 크기, 색상을 표시했는지가 중요합니다.
  • 10분이 넘어가면 멈추세요. “나머지는 코딩하면서 정리해도 돼요.”

3️⃣ 활동 2: 직접 코딩해보기 (15분)

섹션 제목: “3️⃣ 활동 2: 직접 코딩해보기 (15분)”

“자, GlowScript에 가서 새 프로그램을 만드세요. 치트시트를 옆에 펴놓으세요. 먼저 공 하나만 만들어볼게요. 이것만 치세요:”

sphere()

“실행 누르면 뭐가 보이나요?”

예상 반응:

  • “하얀 공이요!” / “공이 나왔어요!”

“좋아요. 이제 치트시트를 보세요. 색을 바꾸려면 color=을 쓰면 돼요:”

sphere(color=vector(1, 0.6, 0.7))

“분홍색 공이 됐죠? 그럼 크기도 바꿔봅시다. radius=를 추가해요:”

sphere(radius=1, color=vector(1, 0.6, 0.7))

“radius를 2로 바꾸면? 더 커지죠. 0.5로 바꾸면? 작아져요. 이렇게 숫자를 바꿔보면서 감을 잡는 게 가장 빠른 방법이에요.”

“이제 도형을 하나 더 추가해볼게요. 두 번째 도형을 놓으려면 위치를 정해야 해요. pos=를 써요:”

sphere(radius=1, color=vector(1, 0.6, 0.7))
ellipsoid(pos=vector(-0.5, -0.9, 0.3), size=vector(0.6, 0.3, 0.5), color=color.red)

“두 번째 줄이 왼발이에요. pos의 숫자가 뭐냐면 — 치트시트 아래쪽 보세요 — x는 좌우, y는 상하, z는 앞뒤예요. vector(-0.5, -0.9, 0.3)은 ‘왼쪽으로 0.5, 아래로 0.9, 앞으로 0.3’이라는 뜻이에요.

직접 확인해볼까요? -0.5를 +0.5로 바꿔서 실행해보세요. 발이 어디로 갔나요?”

예상 반응:

  • “오른쪽으로 갔어요!” / “반대쪽으로 이동했어요!”

“맞아요. 이렇게 숫자를 바꿔가며 실험하면 돼요. 실수해도 괜찮아요, 금방 되돌릴 수 있으니까요.

자, 이제 여러분이 그린 그림과 치트시트를 보면서 나머지 도형을 직접 추가해보세요. 10분 줄게요. 완벽하지 않아도 괜찮아요. 도형 3개만 놓아도 훌륭해요!”

예상 반응과 교사 대응:

학생 반응교사 대응
”공이 안 보여요""pos 값을 확인해보세요. 공이 다른 공 안에 숨어있을 수 있어요. z값을 바꿔보세요."
"발이 몸통 안으로 들어가요""pos의 y값을 더 작게 해보세요. 음수가 아래쪽이에요."
"좌표가 너무 어려워요""괜찮아요, 숫자를 바꿔가며 실험해보세요. 0.1씩 바꾸면 어디로 움직이는지 보여요."
"색이 이상해요""vector(R,G,B)에서 각 값은 0~1 사이예요. vector(1,0,0)은 빨강이에요."
"완성 못했어요""괜찮아요! 3개 이상 도형을 놓았으면 충분해요. AI에게 시킬 때 비교하면 돼요.”

(10분 후) “자, 멈추세요. 완성 못 해도 괜찮아요. 방금 경험한 거 있죠? 좌표 맞추는 게 생각보다 어렵다는 거. 도형 하나 추가할 때마다 위치, 크기, 색을 일일이 정해야 했죠? 이게 바로 코드로 3D를 만드는 엄격함이에요.”

교사 유의사항:

  • 이 활동의 목적은 VPython을 마스터하는 것이 아닙니다. “좌표를 맞추는 게 힘들다”는 체감이 목적입니다. 이 체감이 있어야 다음 단계(AI에게 시키기)에서 “아, AI가 이걸 대신 해주는구나”를 느낍니다.
  • 완성 못 한 학생에게 압박을 주지 마세요. 3개 도형만 놓았어도 충분합니다.
  • 코드를 통째로 복사해서 붙여넣는 학생: “코드를 복사하지 말고, 한 줄씩 치면서 뭐가 바뀌는지 보세요.”

4️⃣ 활동 3: AI에게 같은 것을 시켜보기 (25분)

섹션 제목: “4️⃣ 활동 3: AI에게 같은 것을 시켜보기 (25분)”

이 활동이 이 차시의 핵심입니다. 두 라운드로 진행합니다.

“자, 이제 AI에게 시켜볼 거예요. AI 채팅을 열어주세요. 그런데 일부러 대충 시켜볼 거예요. 이렇게요:”

VPython으로 커비 만들어줘

“AI가 뭘 만들어주는지 봅시다. AI가 준 코드를 복사해서 GlowScript에 붙여넣고 실행해보세요. 단, AI가 from vpython import * 같은 줄을 넣어줄 수 있는데, GlowScript에서는 그 줄이 필요 없어요. 에러가 나면 그 줄만 지우고 다시 실행하세요.”

(학생들이 실행하면 — 대부분 “이건 커비가 아닌데…”라는 반응)

“자, 여러분이 아까 종이에 그린 커비랑 비교해보세요. 3D 화면을 마우스 오른쪽 버튼으로 드래그해서 이리저리 돌려보세요. 뒤쪽도 봐야 해요.”

“같은가요? 다른가요? 뭐가 다른지 종이에 적어보세요. 이렇게요:”

AI 결과 비교 메모:
- 발이 __________________
- 눈이 __________________
- 색이 __________________
- 있어야 하는데 없는 것: __________________
- 없어야 하는데 있는 것: __________________

예상 AI 실패 패턴 (실제로 자주 발생하는 것들):

AI 실수학생이 발견할 수 있는 표현
발이 몸통 안으로 관통”발이 몸통 속에 들어가 있어요”
좌우 비대칭”왼발이랑 오른발 위치가 달라요”
비율 무시 (머리가 몸통보다 큼)“머리가 너무 커요” / “눈이 얼굴 밖으로 나왔어요”
색상 오류”커비는 분홍인데 빨간색이에요”
y축/z축 혼동”눈이 뒤통수에 있어요” / “발이 옆으로 나왔어요”
불필요한 도형 추가”팔이 없는데 팔을 만들었어요”

“방금 여러분이 한 것이 AI 결과를 검증하는 것이에요. 종이에 그린 그림이 기준이고, AI 결과가 그 기준에 맞는지 판정한 거예요.

그런데 생각해보세요. 만약 여러분이 처음에 종이에 그리지 않았다면? AI가 만든 결과를 보고 ‘음 뭐 이런가 보다’ 하고 넘어갔을 거예요. 내 머릿속에 기준이 있어야 비로소 판단이 가능한 거예요.”

라운드 2: 정밀한 명세로 재요청 (15분)

섹션 제목: “라운드 2: 정밀한 명세로 재요청 (15분)”

“이번에는 AI에게 정확하게 시켜볼 거예요. 아까 종이에 적었던 거 기억하죠? ‘몸통: 공, 가운데, 크기 크게, 분홍색’ — 이걸 AI가 알아들을 수 있게 바꿔야 해요.”

모호한 요청 vs 정밀한 명세 비교 (선생님이 화면에 띄워줌):

❌ 모호한 요청:
"VPython으로 커비 만들어줘"
✅ 정밀한 명세:
"GlowScript VPython으로 커비를 만들어줘. 다음 명세를 정확히 따라줘:
1. 몸통: sphere, 위치 (0, 0, 0), 반지름 1, 색상 분홍(1, 0.6, 0.7)
2. 왼발: ellipsoid, 위치 (-0.5, -0.9, 0.3), 크기 (0.6, 0.3, 0.5), 빨간색
3. 오른발: ellipsoid, 위치 (0.5, -0.9, 0.3), 크기 (0.6, 0.3, 0.5), 빨간색
4. 왼눈: ellipsoid, 위치 (-0.25, 0.25, 0.85), 크기 (0.25, 0.35, 0.1), 남색
5. 오른눈: ellipsoid, 위치 (0.25, 0.25, 0.85), 크기 (0.25, 0.35, 0.1), 남색
6. 입: sphere, 위치 (0, -0.05, 0.95), 반지름 0.12, 빨간색
주의사항:
- 도형끼리 관통하지 않게 배치할 것
- 좌우 대칭을 유지할 것 (x좌표의 부호만 반전)
- 위에 명시하지 않은 도형을 추가하지 말 것"

“느낌이 오죠? 대충 시키면 대충 나오고, 정확히 시키면 정확히 나온다. 이게 앞으로 30시간 내내 반복될 핵심이에요.”

“자, 이제 여러분이 직접 명세를 써서 AI에게 시켜보세요. 여러분이 선택한 캐릭터를 명세로 바꿔서 보내보세요.

명세 쓰는 순서를 알려줄게요:

  1. 아까 종이에 적은 도형 목록을 꺼내세요
  2. 각 도형마다 종류, 위치, 크기, 색을 한 줄씩 적으세요
  3. 마지막에 주의사항을 추가하세요 (관통 금지, 대칭 유지, 추가 도형 금지 등)
  4. 그 전체를 AI에게 보내세요”

“위치 숫자를 정확히 몰라도 괜찮아요. ‘왼쪽 아래’라고 적어도 돼요. 다만, 숫자로 적을수록 AI가 더 정확하게 만들어준다는 걸 경험하게 될 거예요.”

교사 유의사항:

  • “코드를 달라”가 아니라 **“명세를 따라 만들어달라”**고 시키는 것이 핵심입니다. 학생이 “VPython 코드 짜줘”라고만 하면: “도형 종류, 위치, 크기, 색상을 하나하나 적어서 보내보세요. 아까 종이에 적은 그거요.”
  • 학생마다 명세의 정밀도가 다를 수 있습니다. “몸통: 분홍 공, 가운데, 크게”도 괜찮고, “몸통: sphere, pos=(0,0,0), radius=1”도 괜찮습니다. 정밀도에 따라 결과가 달라진다는 것 자체가 학습입니다.
  • 정밀 명세를 보냈는데도 AI가 틀리면 → 이것이 규칙의 씨앗입니다. “AI가 뭘 틀렸어요? 그걸 규칙으로 적어봅시다.”

5️⃣ 활동 4: 수용 기준 세우기 + 판정 (15분)

섹션 제목: “5️⃣ 활동 4: 수용 기준 세우기 + 판정 (15분)”

“방금 AI 결과를 보면서 ‘이건 돼’, ‘이건 안 돼’ 판단했죠? 그 판단 기준을 미리 적어놓는 것을 ‘수용 기준’이라고 해요. 결과를 보기 전에 세워야 해요. 왜냐면, 결과를 보고 나서 세우면 기준이 결과에 끌려가거든요.”

“예를 들어볼게요. AI가 커비를 만들었는데 팔이 생겼어요. 결과를 보고 나서 기준을 세우면 ‘음… 팔이 있어도 귀엽네, 통과!’ 이렇게 되기 쉬워요. 그런데 미리 ‘도형 6개만, 추가 없음’이라고 적어놨으면? 불합격이 명확하죠. 이게 바로 기준을 먼저 세워야 하는 이유예요.”

[필수] 반드시 통과해야 하는 기준

  • 도형 개수가 내 명세와 일치한다 (추가/누락 없음)
  • 도형끼리 관통하지 않는다
  • 좌우 대칭이 유지된다 (좌우 대칭 캐릭터인 경우)
  • ______________________________

[선호] 되면 좋지만 필수는 아닌 기준

  • 색상이 원래 캐릭터와 비슷하다
  • 비율이 자연스럽다 (머리가 몸통보다 크지 않다 등)
  • ______________________________

[판정] AI 결과가 필수 기준을 모두 통과했는가?

  • 통과 못 한 기준: __________________________
  • 규칙 파일에 추가할 내용: ____________________

“필수 기준 3개, 선호 기준 2개 정도 적어보세요. 그 다음에 아까 AI 결과를 이 기준으로 판정해보세요.”

모범 답안 예시 (커비):

구분기준AI 결과판정
필수도형 6개 (추가 없음)8개 (팔 2개 추가)❌ 불합격
필수발이 몸통 바깥에 위치왼발이 몸통 내부 관통❌ 불합격
필수좌우 대칭대칭 유지✅ 합격
선호분홍색 몸통분홍색 맞음✅ 합격
선호눈이 몸통 앞면에 위치눈이 옆면에 위치❌ 불합격

부족한 예시 (이렇게 쓰면 기준이 아님):

이것은 기준이 아닙니다왜?이렇게 바꾸세요
”이쁘게 만들어야 함”주관적, 검증 불가”좌우 대칭이 유지된다"
"커비처럼 생겨야 함”모호함”도형 6개, 명세와 동일한 종류"
"잘 만들어야 함”기준이 아님”도형끼리 관통하지 않는다”

교사 유의사항:

  • 학생이 “필수”와 “선호”를 구분하는 것이 어려우면: “만약 이걸 안 지키면 완전 다른 캐릭터가 되는 거면 필수, 좀 아쉽지만 알아볼 수는 있으면 선호예요.”
  • “수용 기준을 결과 보기 전에 세운다”는 원칙을 강조하세요. 이미 AI 결과를 본 학생은 다음 과제에서 먼저 세우도록 유도합니다.

6️⃣ 활동 5: 복잡한 것을 AI에게 — “명세의 위력” (15분)

섹션 제목: “6️⃣ 활동 5: 복잡한 것을 AI에게 — “명세의 위력” (15분)”

앞선 활동에서 학생들은 “간단한 캐릭터도 위치 잡기가 꽤 어렵다”를 체감했습니다. 이 활동에서는 한 단계 더 나아가서 “직접 코딩하기엔 너무 복잡하지만, 명세를 잘 쓰면 AI가 만들어준다”를 경험합니다. 이를 통해 “명세 작성 능력 = 새로운 실력”이라는 이 과정 전체의 핵심 메시지를 첫 차시부터 심어줍니다.

“자, 마지막 활동이에요. 아까는 커비나 눈사람 같은 단순한 캐릭터를 만들어봤죠? 도형 6~7개 정도였어요. 이번에는 직접 코딩하기엔 너무 어렵지만, 명세를 잘 쓰면 AI가 만들어줄 수 있는 것을 해볼 거예요.”

선생님이 보여줄 복잡한 예시:

"GlowScript VPython으로 다음을 만들어줘:
나무가 있는 작은 공원 장면:
1. 바닥: 초록색 box, 크기 (10, 0.1, 10), 위치 (0, -1, 0)
2. 나무 줄기: 갈색 cylinder, 위치 (0, 0, 0), 높이 2, 반지름 0.2
3. 나무 잎: 초록색 sphere, 위치 (0, 2, 0), 반지름 1
4. 벤치: 갈색 box, 크기 (1.5, 0.5, 0.5), 위치 (3, -0.5, 0)
5. 해: 노란색 sphere, 위치 (-4, 5, -3), 반지름 0.8
6. 구름 3개: 흰색 ellipsoid, 각각 다른 위치에 랜덤 크기
주의:
- 모든 물체가 바닥(y=-1) 위에 있어야 함
- 나무 잎이 줄기 위에 자연스럽게 얹혀야 함
- 구름은 해보다 아래에 위치할 것"

“이거 직접 코딩하려면 얼마나 걸릴 것 같아요?”

예상 반응:

  • “한참…” / “30분?” / “못 할 것 같은데요”

“맞아요. 하지만 명세를 정밀하게 쓰면 AI가 꽤 잘 만들어줘요. 여기서 핵심은 뭘까요? AI가 코드를 대신 쳐주는 것이 중요한 게 아니라, 내가 뭘 원하는지 정확히 아는 것이 중요한 거예요.

Fowler라는 사람이 이런 말을 했어요: ‘예전에는 코드를 정확히 치는 게 실력이었는데, 이제는 뭘 시킬지 정확히 정하는 게 실력이다.’

“자, 여러분도 해보세요. 뭘 만들지는 자유예요. 단, 순서를 꼭 지켜주세요:

1단계: 뭘 만들지 정하고, 필요한 도형 목록을 종이에 적는다 2단계: 각 도형의 위치·크기·색을 적어서 명세를 완성한다 3단계: 수용 기준을 먼저 적는다 (이번엔 결과 보기 전에!) 4단계: AI에게 명세를 보낸다 5단계: 결과를 수용 기준으로 판정한다”

“주제가 안 떠오르는 사람은 여기서 골라도 돼요.”

추천 주제 (학생이 고르기 어려울 때):

주제도형 수난이도
눈 내리는 풍경 (집 + 나무 + 눈)8~10개★★
미니 도시 (건물 3개 + 도로 + 차)10~15개★★★
우주 장면 (행성 3개 + 우주선 + 별)8~12개★★
놀이터 (미끄럼틀 + 그네 + 시소)10~15개★★★

교사 유의사항:

  • 이 활동에서도 “명세 먼저, AI 요청 나중”을 지키게 하세요. 명세 없이 바로 AI에게 시키는 학생: “종이에 먼저 뭘 만들 건지 적으세요. 도형 종류, 위치, 크기, 색상이요.”
  • AI 결과가 좋아서 규칙을 추가할 게 없는 학생도 있을 수 있습니다. 그래도 괜찮습니다. “수용 기준은 세웠는지”를 확인하세요.

7️⃣ 정리: 규칙 파일 업데이트 + 성찰 (5분)

섹션 제목: “7️⃣ 정리: 규칙 파일 업데이트 + 성찰 (5분)”

“오늘 AI에게 VPython 3D를 시켜보면서, AI가 어떤 실수를 했나요? 몇 명만 발표해볼까요?”

예상 발표:

  • “발이 몸통 안에 들어갔어요” / “요청 안 한 팔을 추가했어요” / “좌우가 안 맞았어요”

“좋아요. 그 실수들에서 규칙을 뽑아봅시다. 규칙 만드는 공식은 이거예요:”

[AI가 뭘 했다] → [그래서 앞으로 이렇게 한다]
← 사건: [구체적으로 뭐가 어떻게 잘못됐다]

“예를 들면: ‘AI는 명세에 없는 도형을 추가한다 → 요청에 추가 도형 금지를 명시한다, 사건: 커비에 팔이 생김’ 이런 식으로 여러분 규칙 파일에 3개 이상 추가해보세요. 도입부에서 만든 규칙 파일 열어서 아래에 적으면 돼요.”

도입부에서 가져온 규칙 (5~10개):

## 어떤 AI 작업에든 적용되는 규칙 (공통)
- 모르면 모른다고 해 ← 사건: 급식 봇이 모르는 메뉴를 아는 척 추천함
- 가정하지 말고 물어봐 ← 사건: 봇이 내 취향을 마음대로 가정함
- 범위 밖의 요청은 거절해 ← 사건: 급식 봇에게 코딩을 시켰더니 해줌

이 차시에서 추가할 규칙 (3~5개):

## 3D 창작/시뮬레이션에서의 규칙
- 좌표를 명시하지 않으면 AI가 임의로 배치한다 → 모든 도형의 pos를 반드시 명세에 포함할 것
← 사건: "커비 만들어줘"라고 했더니 발이 머리 위에 나옴
- AI는 명세에 없는 도형을 임의로 추가한다 → "명시하지 않은 도형은 추가하지 마"를 요청에 포함할 것
← 사건: 커비인데 팔을 두 개 추가해줌
- AI는 y축과 z축을 혼동할 수 있다 → 결과를 3D로 회전시켜 확인할 것
← 사건: 눈이 앞이 아니라 위에 달려 있었음
- 좌우 대칭은 x좌표 부호 반전으로 확인한다 → 대칭 도형의 x좌표를 명세에서 명시적으로 ±로 표기할 것
← 사건: 왼발과 오른발의 x좌표가 달라서 비대칭이 됨

“오늘 규칙 파일이 몇 개 자랐나요? 도입부 때랑 합치면 총 몇 개예요?”

예상 반응:

  • “3개 추가해서 이제 8개요” / “4개 더 생겼어요, 총 12개”

“오늘 배운 걸 한 문장으로 정리하면요: ‘AI에게 대충 시키면 대충 나오고, 정확히 시키면 정확히 나온다. 그리고 정확히 시키려면 내가 먼저 뭘 원하는지 정확히 알아야 한다.’ 이게 앞으로 28시간 동안 계속 반복될 핵심이에요.”

“좋아요. 다음 시간에는 이 캐릭터를 움직이게 만들 거예요. 걷고, 돌고, 점프하는 거요. 그런데 움직임을 AI에게 시키면… AI가 또 새로운 방식으로 실수하기 시작할 거예요. 그때 규칙 파일이 또 자랄 거예요. 기대하세요.”


이번에는 거꾸로. 결과를 보고 명세를 작성해 보세요.

장면: 흰 공 세 개가 수직으로 쌓여 있고, 가장 위 공 앞쪽에 주황색 뿔이 달려 있습니다.

이게 뭘까요? 돌려보세요!

생각의 순서:

  1. 물체는 몇 개? → 6개
  2. 종류는? → sphere 4개, cone 1개, sphere 2개(눈)
  3. 배치는? → 수직으로 대·중·소 쌓기
  4. 색상은? → 흰색, 주황(코), 검정(눈)
정확한 숫자는 달라도 괜찮습니다!
핵심은 **"세 공이 관통 없이 쌓이고, 코가 앞쪽으로 나온다"**는 구조를 맞추는 것입니다.

부록 1: 눈사람 예제 코드 (선택지 B)

섹션 제목: “부록 1: 눈사람 예제 코드 (선택지 B)”
GlowScript 3.2 VPython
# 눈사람 — 기본 도형 6개
# 몸통 (아래: 큰 공)
body = sphere(pos=vector(0, 0, 0), radius=1, color=color.white)
# 가슴 (중간: 중간 공)
chest = sphere(pos=vector(0, 1.5, 0), radius=0.7, color=color.white)
# 머리 (위: 작은 공)
head = sphere(pos=vector(0, 2.5, 0), radius=0.5, color=color.white)
# 코 (주황 원뿔)
nose = cone(pos=vector(0, 2.5, 0.5), axis=vector(0, 0, 0.5),
radius=0.08, color=color.orange)
# 왼눈 (검은 공)
left_eye = sphere(pos=vector(-0.15, 2.65, 0.4), radius=0.06, color=color.black)
# 오른눈
right_eye = sphere(pos=vector(0.15, 2.65, 0.4), radius=0.06, color=color.black)
눈사람 — 도형 6개, 마우스로 돌려보세요

부록 1-2: 마인크래프트 크리퍼 예제 코드 (선택지 C)

섹션 제목: “부록 1-2: 마인크래프트 크리퍼 예제 코드 (선택지 C)”
GlowScript 3.2 VPython
# 마인크래프트 크리퍼 — 기본 도형 9개 (전부 box!)
# 머리 (큰 초록 상자)
head = box(pos=vector(0, 2, 0), size=vector(1.2, 1.2, 1.2),
color=vector(0.2, 0.7, 0.2))
# 몸통 (세로로 긴 초록 상자)
body = box(pos=vector(0, 0.5, 0), size=vector(0.8, 1.5, 0.5),
color=vector(0.3, 0.8, 0.3))
# 왼앞발
left_front = box(pos=vector(-0.25, -0.5, 0.15), size=vector(0.3, 0.5, 0.3),
color=vector(0.2, 0.7, 0.2))
# 오른앞발
right_front = box(pos=vector(0.25, -0.5, 0.15), size=vector(0.3, 0.5, 0.3),
color=vector(0.2, 0.7, 0.2))
# 왼뒷발
left_back = box(pos=vector(-0.25, -0.5, -0.15), size=vector(0.3, 0.5, 0.3),
color=vector(0.2, 0.7, 0.2))
# 오른뒷발
right_back = box(pos=vector(0.25, -0.5, -0.15), size=vector(0.3, 0.5, 0.3),
color=vector(0.2, 0.7, 0.2))
# 왼눈 (검은 상자)
left_eye = box(pos=vector(-0.25, 2.15, 0.61), size=vector(0.25, 0.25, 0.02),
color=color.black)
# 오른눈
right_eye = box(pos=vector(0.25, 2.15, 0.61), size=vector(0.25, 0.25, 0.02),
color=color.black)
# 입 (검은 직사각형)
mouth = box(pos=vector(0, 1.75, 0.61), size=vector(0.4, 0.2, 0.02),
color=color.black)
크리퍼 — box 9개, 전부 상자! 돌려보세요

부록 1-3: 펭귄 예제 코드 (선택지 D)

섹션 제목: “부록 1-3: 펭귄 예제 코드 (선택지 D)”
GlowScript 3.2 VPython
# 펭귄 — 기본 도형 7개
# 몸통 (검은 타원)
body = ellipsoid(pos=vector(0, 0, 0), size=vector(1.2, 1.8, 1),
color=color.black)
# 배 (흰 타원, 몸 앞면에)
belly = ellipsoid(pos=vector(0, -0.1, 0.35), size=vector(0.8, 1.3, 0.4),
color=color.white)
# 부리 (주황 원뿔)
beak = cone(pos=vector(0, 0.5, 0.5), axis=vector(0, 0, 0.4),
radius=0.1, color=color.orange)
# 왼눈 (검은 공)
left_eye = sphere(pos=vector(-0.2, 0.6, 0.45), radius=0.08,
color=color.black)
# 오른눈
right_eye = sphere(pos=vector(0.2, 0.6, 0.45), radius=0.08,
color=color.black)
# 왼발 (주황 타원)
left_foot = ellipsoid(pos=vector(-0.3, -1, 0.3), size=vector(0.35, 0.1, 0.5),
color=color.orange)
# 오른발
right_foot = ellipsoid(pos=vector(0.3, -1, 0.3), size=vector(0.35, 0.1, 0.5),
color=color.orange)
펭귄 — 도형 7개, 다양한 도형 혼합! 돌려보세요

부록 2: AI 실패 사례 모음 (수업 중 활용)

섹션 제목: “부록 2: AI 실패 사례 모음 (수업 중 활용)”

사례 1: “눈사람 만들어줘” (모호한 요청)

섹션 제목: “사례 1: “눈사람 만들어줘” (모호한 요청)”

AI가 만든 코드의 전형적 문제:

# AI가 생성한 코드 (문제 있음)
head = sphere(pos=vector(0, 3, 0), radius=0.5, color=color.white) # 머리가 너무 위에
body = sphere(pos=vector(0, 0, 0), radius=1.5, color=color.white) # 몸통이 너무 큼
chest = sphere(pos=vector(0, 1, 0), radius=0.8, color=color.white) # 가슴이 몸통 안에!
hat = cylinder(pos=vector(0, 3.3, 0), axis=vector(0, 0.5, 0),
radius=0.4, color=color.black) # 요청 안 한 모자 추가

학생이 찾을 수 있는 문제:

  1. 가슴(chest)이 몸통(body) 안으로 관통 (pos.y=1 인데 body radius=1.5)
  2. 요청하지 않은 모자(hat)를 임의 추가
  3. 눈과 코가 없음 (명세에 없었으니까?)

AI가 y축과 z축을 혼동한 경우:

# 눈이 뒤통수에 달린 커비
left_eye = ellipsoid(pos=vector(-0.25, 0.25, -0.85), ...) # z가 음수 → 뒤쪽!

학생에게: “GlowScript에서 3D 화면을 마우스로 돌려보세요. 눈이 어디에 있나요?”

목표수준 0 (미달)수준 2 (기대)수준 3 (우수)
1. AI 한계 식별AI 결과를 그대로 수용위치·비율·대칭 오류를 2개 이상 구체적으로 지목오류 지목 + “왜 AI가 이렇게 했는지” 추론
2. 활용 방식 차이차이를 인식 못함모호한 요청 vs 정밀 명세의 결과 차이를 설명”어떤 정보를 줘야 결과가 좋아지는지” 일반화
4. 구조화된 명세”캐릭터 만들어줘”만 요청도형·좌표·크기·색상을 포함한 명세서 작성주의사항(관통 금지, 대칭 등)까지 명세에 포함
5. 수용 기준사후 감각적 판단필수/선호 구분된 기준 3개 이상 사전 정의기준 미충족 시 구체적 수정 요청까지 포함
6. 규칙 구축규칙 추가 안 함VPython 관련 규칙 2~3개 추가 (사건 포함)규칙을 범주화(좌표, 도형, 대칭 등)

부록 4: GlowScript 환경 세팅 가이드

섹션 제목: “부록 4: GlowScript 환경 세팅 가이드”

환경 세팅 (5분 이내)

  1. 브라우저에서 glowscript.org 접속
  2. “Sign in” → Google 계정으로 로그인
  3. “My Programs” → “Create New” 클릭
  4. 제목 입력 (예: “커비 만들기”)
  5. 코드 영역에 sphere() 입력 → “Run this program” 클릭
  6. 3D 화면에 흰 공이 보이면 성공!

부록 5: 교사용 사전 테스트 프롬프트

섹션 제목: “부록 5: 교사용 사전 테스트 프롬프트”

이 섹션은 교사 전용입니다. 수업 전에 직접 테스트하여 AI 결과를 미리 확인하세요. 학생용 프롬프트는 수업 중 활동 3에서 공개합니다.

수업에서 학생들이 “모호한 요청 → 정밀한 명세”를 체험하기 위해, 교사가 먼저 두 버전의 프롬프트를 직접 돌려보고 AI의 전형적인 실패 패턴을 파악해야 합니다. 이를 통해:

  • 어떤 실수가 나오는지 미리 예상할 수 있고
  • 학생이 오류를 못 찾으면 힌트를 줄 수 있습니다

모호한 버전 (라운드 1에서 학생에게 공개):

VPython으로 커비 만들어줘

정밀한 버전 (라운드 2에서 학생에게 공개):

GlowScript VPython으로 별의 커비를 만들어줘. 다음 명세를 정확히 따라줘:
1. 몸통: sphere, pos=(0, 0, 0), radius=1, color=vector(1, 0.6, 0.7) [분홍]
2. 왼발: ellipsoid, pos=(-0.5, -0.9, 0.3), size=(0.6, 0.3, 0.5), color.red
3. 오른발: ellipsoid, pos=(0.5, -0.9, 0.3), size=(0.6, 0.3, 0.5), color.red
4. 왼눈: ellipsoid, pos=(-0.25, 0.25, 0.85), size=(0.25, 0.35, 0.1), color=vector(0, 0, 0.3) [남색]
5. 오른눈: ellipsoid, pos=(0.25, 0.25, 0.85), size=(0.25, 0.35, 0.1), color=vector(0, 0, 0.3) [남색]
6. 입: sphere, pos=(0, -0.05, 0.95), radius=0.12, color.red
주의사항:
- 위 6개 도형만 사용. 추가 도형 금지
- 도형끼리 관통하지 않게 배치
- 좌우 대칭 유지 (x좌표 부호만 반전)

교사 체크포인트: 모호한 버전에서 관통, 비대칭, 불필요한 도형 추가 중 최소 2가지가 발생하는지 확인. 발생하지 않으면 다른 AI 모델로도 테스트.


모호한 버전:

VPython으로 눈사람 만들어줘

정밀한 버전:

GlowScript VPython으로 눈사람을 만들어줘. 다음 명세를 정확히 따라줘:
1. 몸통(아래): sphere, pos=(0, 0, 0), radius=1, color.white
2. 가슴(중간): sphere, pos=(0, 1.5, 0), radius=0.7, color.white
3. 머리(위): sphere, pos=(0, 2.5, 0), radius=0.5, color.white
4. 코: cone, pos=(0, 2.5, 0.5), axis=(0, 0, 0.5), radius=0.08, color.orange
5. 왼눈: sphere, pos=(-0.15, 2.65, 0.4), radius=0.06, color.black
6. 오른눈: sphere, pos=(0.15, 2.65, 0.4), radius=0.06, color.black
주의사항:
- 위 6개 도형만 사용. 모자, 팔, 단추 등 추가 금지
- 세 공이 수직으로 자연스럽게 쌓여야 함 (관통 없이)
- 코는 머리의 앞면(z 양의 방향)에서 돌출

교사 체크포인트: 모호한 버전에서 모자/팔 추가, 공 관통, 코 방향 오류가 나오는지 확인.


모호한 버전:

VPython으로 마인크래프트 크리퍼 만들어줘

정밀한 버전:

GlowScript VPython으로 마인크래프트 크리퍼를 만들어줘. 다음 명세를 정확히 따라줘:
모든 도형은 box만 사용한다.
1. 머리: box, pos=(0, 2, 0), size=(1.2, 1.2, 1.2), color=vector(0.2, 0.7, 0.2)
2. 몸통: box, pos=(0, 0.5, 0), size=(0.8, 1.5, 0.5), color=vector(0.3, 0.8, 0.3)
3. 왼앞발: box, pos=(-0.25, -0.5, 0.15), size=(0.3, 0.5, 0.3), color=vector(0.2, 0.7, 0.2)
4. 오른앞발: box, pos=(0.25, -0.5, 0.15), size=(0.3, 0.5, 0.3), color=vector(0.2, 0.7, 0.2)
5. 왼뒷발: box, pos=(-0.25, -0.5, -0.15), size=(0.3, 0.5, 0.3), color=vector(0.2, 0.7, 0.2)
6. 오른뒷발: box, pos=(0.25, -0.5, -0.15), size=(0.3, 0.5, 0.3), color=vector(0.2, 0.7, 0.2)
7. 왼눈: box, pos=(-0.25, 2.15, 0.61), size=(0.25, 0.25, 0.02), color.black
8. 오른눈: box, pos=(0.25, 2.15, 0.61), size=(0.25, 0.25, 0.02), color.black
9. 입: box, pos=(0, 1.75, 0.61), size=(0.4, 0.2, 0.02), color.black
주의사항:
- 위 9개 box만 사용. 다른 도형 종류(sphere, cylinder 등) 사용 금지
- 머리와 몸통이 관통하지 않게 배치
- 크리퍼 특유의 각진 느낌 유지

교사 체크포인트: 모호한 버전에서 sphere를 사용하거나, 얼굴 표정을 잘못 배치하거나, 불필요한 디테일을 추가하는지 확인.


모호한 버전:

VPython으로 펭귄 만들어줘

정밀한 버전:

GlowScript VPython으로 펭귄을 만들어줘. 다음 명세를 정확히 따라줘:
1. 몸통: ellipsoid, pos=(0, 0, 0), size=(1.2, 1.8, 1), color.black
2. 배: ellipsoid, pos=(0, -0.1, 0.35), size=(0.8, 1.3, 0.4), color.white
3. 부리: cone, pos=(0, 0.5, 0.5), axis=(0, 0, 0.4), radius=0.1, color.orange
4. 왼눈: sphere, pos=(-0.2, 0.6, 0.45), radius=0.08, color.black
5. 오른눈: sphere, pos=(0.2, 0.6, 0.45), radius=0.08, color.black
6. 왼발: ellipsoid, pos=(-0.3, -1, 0.3), size=(0.35, 0.1, 0.5), color.orange
7. 오른발: ellipsoid, pos=(0.3, -1, 0.3), size=(0.35, 0.1, 0.5), color.orange
주의사항:
- 위 7개 도형만 사용. 날개, 꼬리 등 추가 금지
- 배(흰색)가 몸통(검정) 앞면에 자연스럽게 붙어야 함
- 부리는 앞쪽(z 양의 방향)으로 돌출

교사 체크포인트: 모호한 버전에서 날개 추가, 배 위치 오류, 부리 방향 오류가 나오는지 확인.


🎓 수업 중 프롬프트 공개 타이밍

섹션 제목: “🎓 수업 중 프롬프트 공개 타이밍”
시점공개 내용방법
활동 3 라운드 1 시작 시모호한 프롬프트 한 줄화면에 띄우거나 구두로 안내
라운드 1 결과 확인 후”뭐가 문제인지 찾아보세요” (프롬프트는 추가 제공 안 함)학생이 직접 오류 발견
활동 3 라운드 2 시작 시정밀 명세 예시 (커비 기준) 화면에 띄움학생이 자기 캐릭터 기준으로 직접 명세 작성
수업 종료 후 (선택)정밀 프롬프트 전문을 학습지로 배부학생이 집에서 다른 캐릭터도 시도해볼 수 있도록

핵심: 학생에게 정밀 프롬프트의 완성본을 바로 주지 마세요. 화면에 띄우는 것은 구조 예시이고, 학생이 자기 캐릭터에 맞게 직접 작성해야 학습이 됩니다.


차시 3-4: “움직임까지 명세하기” 오늘 만든 캐릭터에 움직임을 추가합니다. 걷기, 회전, 점프. AI가 애니메이션에서 더 자주 실수합니다: 회전축 오류, 관통하며 움직이기, 속도 불일치. 규칙 파일이 더 빠르게 자랄 거예요.