Work 02 · Deep dive

animclip — หัวข้อเดียว กลายเป็นคลิปแอนิเมชัน

animclip — one topic in, an animated short out

สกิลของ Claude Code · สั่งผ่านแชท ยังไม่มีหน้าแอป
Claude Code skill · run from chat, no app screen yet

พิมพ์ /animclip ตามด้วยหัวข้อใน Claude Code แล้ว AI จะเขียนบท จัดซีนแอนิเมชันพิกเซลผสมกระดาษปะติด พากย์เสียงไทย ใส่เพลงและเสียงประกอบให้ตรงคำพูด แล้วเรนเดอร์เป็นคลิปแนวตั้ง ไม่ต้องมีกล้อง ไม่ต้องมีคนออกหน้ากล้อง

Type /animclip and a topic in Claude Code, and the AI writes the script, builds pixel-art and paper-collage animated scenes, records a Thai voice-over, syncs music and sound effects to the words, and renders a vertical video. No camera, no one on screen.

How it works

ระบบทำงานยังไง

How it works

01
พิมพ์หัวข้อType a topicเช่น "สอนใช้ Claude Code จากมือถือ"e.g. "Using Claude Code from your phone"
02
AI เขียนบทAI writes the scripthook 2 วินาทีแรก ซีนละประโยคสั้น ปิดด้วย CTAA 2-second hook, one short line per scene, a closing CTA
03
คนรีวิวบทHuman reviews the scriptแก้คำ แก้มุก ก่อนเสียเวลาเรนเดอร์Fix words and jokes before spending time on rendering
04
เสียงพากย์ไทยThai voice-overได้เวลาทีละคำ ใช้ผูกภาพให้โผล่ตรงคำWord-level timing, used to make visuals appear on cue
05
จัดซีนตามบีทScenes on the beatความยาวแต่ละซีนปัดลงจังหวะเพลงEach scene's length is snapped to the music
06
พรีวิวภาพนิ่งStill-frame previewภาพท้ายซีนละรูป เช็คข้อความล้นหรือทับกันOne frame per scene to catch overflow or overlap
07
เรนเดอร์Rendermp4 1080×1920 พร้อมเพลง 8-bit และเสียงประกอบ1080×1920 mp4 with 8-bit music and sound effects

ขั้นที่มีคนเป็นผู้ตัดสินใจหรือใช้งานSteps where a person decides or uses it

คลิปทดสอบที่ได้จากระบบ (ปิดเสียง)

A test video produced by the system (muted)

My calls

ส่วนที่ผมเป็นคนตัดสินใจ

Decisions I made

AI เขียนโค้ดให้ แต่โจทย์ เกณฑ์ และสิ่งที่ยอมไม่ได้ ผมเป็นคนกำหนด

The AI writes the code; the problem, the criteria and the non-negotiables are mine.

คลิปแรกจืด เลยเขียนกฎบทใหม่The first video was bland, so I rewrote the script rules

เวอร์ชันแรกเป็นแค่การเล่าข้อมูล ดูแล้วไม่มีอารมณ์ร่วม ผมเลยตั้งกฎให้ AI: เปิดด้วยคำถามใน 2 วินาที เว้นจังหวะก่อนตบมุก และถ้าเป็นคลิปเปรียบเทียบต้องปูพื้นก่อนว่าแต่ละฝั่งคืออะไร

Version one just recited information and had no emotional pull. I set rules for the AI: open with a question within 2 seconds, pause before the punchline, and in comparison videos explain what each side is before comparing.

ต้องมีเพลงและเสียงตรงคำMusic and on-cue sound are non-negotiable

คลิปที่ไม่มีเพลง หรือของบนจอโผล่ไม่ตรงคำพูด จะดูเหมือนสไลด์ ผมเลยให้ระบบลดเสียงเพลงลงตอนมีคนพูด ตัดซีนตามบีท และผูกของบนจอเข้ากับคำ

Without music, or with visuals that don't land on the words, it looks like a slideshow. The system ducks the music under speech, cuts on the beat and ties on-screen items to specific words.

เซฟโซน TikTokTikTok safe zone

ปุ่มและแคปชันของ TikTok บังขอบจอ ระบบจะดันข้อความและตัวละครให้อยู่ในพื้นที่ปลอดภัยเอง และจำกัดขนาดตัวละครไม่ให้บังเนื้อหา

TikTok's buttons and captions cover the edges. The system keeps text and characters inside the safe area and caps character size so nothing important is hidden.

ภาพจริงต้องเบลอก่อนใส่Real screenshots get blurred first

ซีนที่ต้องโชว์หน้าจอจริง ระบบจะทำรายการภาพที่ต้องแคป แล้วเบลอชื่อคน ยอดเงิน หรือเลขบัญชีก่อนใส่ลงคลิปทุกครั้ง

When a scene needs a real screen, the system lists the shots to capture and blurs names, amounts and account numbers before they go into the video.

Code

โค้ดจริงบางส่วน

Real code excerpts

โค้ดทั้งหมดเขียนโดย Claude Code ตามที่ผมสั่ง ผมอ่านแล้วอธิบายได้ว่าแต่ละท่อนทำอะไร และทำไมต้องเขียนแบบนี้ (ข้อมูลลับอย่างรหัสผ่านและที่อยู่เครื่องถูกตัดออก)

All code was written by Claude Code under my direction. I can explain what each part does and why it's written that way. (Secrets such as keys and machine paths are removed; code comments are in Thai.)

บทเขียนเป็นข้อมูล ไม่ใช่ไฟล์ตัดต่อ

The script is data, not an edit file

AI เขียนบทออกมาเป็นไฟล์ JSON ซีนละก้อน ในก้อนบอกว่าพูดอะไร ฉากไหน ตัวละครท่าไหน และข้อความหรือไอคอนจะโผล่ตรงคำไหน คนแก้ไฟล์นี้ได้โดยไม่ต้องเปิดโปรแกรมตัดต่อเลย (ตัวอย่างย่อ)

The AI writes the script as JSON, one block per scene: what is said, which background, the character's pose, and which word triggers each text or icon. Anyone can edit it without opening editing software. (Shortened example.)

{
  "id": "test01",
  "voice": {"engine": "edge", "name": "th-TH-NiwatNeural", "rate": "+15%"},
  "scenes": [
    {"say": "คลิปนี้ AI ทำเองทั้งคลิป", "bg": "kraft", "transition": "cut",
     "char": {"outfit": "tee", "pose": "wave", "enter": "drop"},
     "headline": ["คลิปนี้", "AI ทำเอง"], "fx": ["burst"]},
    {"say": "ตั้งแต่เขียนบท วาดภาพ ยันใส่เสียง", "bg": "grid", "transition": "slide",
     "char": {"outfit": "hoodie", "pose": "type", "enter": "slide_left"},
     "icons": [{"name": "bulb", "x": 0.78, "y": 0.42, "delay": 0.3}],
     "headline": ["บท", "ภาพ", "เสียง"], "sfx": [{"name": "typing", "at": 0.2}]}
  ]
}
examples/hello.jsonexamples/hello.json · เขียนโดย Claude Codewritten by Claude Code

ตัดซีนให้ลงจังหวะเพลง

Cutting scenes to the music

ความยาวแต่ละซีนเริ่มจากความยาวเสียงพากย์ บวกช่วงเว้นจังหวะก่อนตบมุก (lead) แล้วปัดขึ้นให้ลงตารางบีทของเพลง ซีนเลยเปลี่ยนตรงจังหวะเสมอ เป็นเหตุผลที่คลิปดูมีจังหวะแม้ไม่มีคนตัดต่อ

Each scene starts from the voice-over length plus the pause before a punchline (lead), then is rounded up to the music's beat grid, so scene changes always land on the beat. That's why the videos feel edited even though no one edited them.

bpm = float(spec.get('bpm', 130))
beat_f = FPS * 60 / bpm                  # จำนวนเฟรมต่อหนึ่งบีท
grid = beat_f / 2                        # ตัดได้ทุกครึ่งบีท
...
lead = float(sc.get('lead', 0))          # เว้นเงียบก่อนพูด (จังหวะตบมุก)
hold = float(sc.get('hold', 0))          # เว้นหลังพูด
need = max(float(sc.get('min', 1.0)), lead + dur_voice + 0.06 + hold) * FPS
dur_f = math.ceil(need / grid - 0.15) * grid   # ปัดให้ลงตารางบีท
scripts/build.pyscripts/build.py · เขียนโดย Claude Codewritten by Claude Code
Problems solved

ปัญหาที่เจอ และวิธีแก้

Problems and fixes

ปัญหาProblem

เสียงพากย์อ่านแท็กอารมณ์ออกมาเป็นคำ

The voice engine read emotion tags aloud

แก้ยังไงFix

ถอดเสียงคลิปที่ได้กลับมาเช็คทุกครั้ง ถ้าเจอก็ตัดแท็กตัวนั้นออก

Transcribe every finished video to check, and drop any tag that gets spoken

ปัญหาProblem

ตัวละครใหญ่จนบังจอ

Characters so big they covered the screen

แก้ยังไงFix

ตั้งขนาดเริ่มต้นและเพดานขนาด และเช็คจากเฟรมจริงขนาดเต็ม ไม่ใช่จากภาพย่อ

Set a default and a maximum size, and check full-size frames rather than thumbnails

ปัญหาProblem

พื้นหลังซ้ำจนน่าเบื่อ

Repetitive backgrounds

แก้ยังไงFix

สุ่มพื้นหลังเองโดยไม่ให้ซ้ำกับซีนติดกัน

Randomize backgrounds so neighbouring scenes never repeat

ปัญหาProblem

เสียงไทยไม่เป็นธรรมชาติ

Unnatural Thai voice

แก้ยังไงFix

ทดลองหลายเสียงรวมถึงเสียงที่โคลนเอง สุดท้ายเลือกเสียงคนไทยจริงเป็นค่าเริ่มต้น

Tried several voices including my own cloned voice; settled on a real Thai speaker's voice as default

← clipcutclipcutแดชบอร์ดยอดขายและลูกค้าSales & customer dashboard →