From 0c5b031977da5e46480d60121ca70434ecc1f4dc Mon Sep 17 00:00:00 2001 From: xiaobian-bot Date: Tue, 5 May 2026 08:10:01 +0800 Subject: [PATCH] auto backup 2026-05-05 08:10:01 --- logs/backup.log | 10 +++ memory/2026-05-04.md | 67 +++++++++++++++ output/U18_L2_第2幕剩余剧本.xlsx | Bin 0 -> 6439 bytes output/U18_L2_第3幕剧本.xlsx | Bin 0 -> 7035 bytes output/U18_L2_第3幕剧本_v2.xlsx | Bin 0 -> 7460 bytes output/U18_L2_第4幕剧本.xlsx | Bin 0 -> 5939 bytes output/U18_L3_第1段剧本.xlsx | Bin 0 -> 6680 bytes output/U18_L3_第2段剧本.xlsx | Bin 0 -> 6362 bytes output/U18_L3_第3段剧本.xlsx | Bin 0 -> 6904 bytes output/U18_L3_第4段剧本.xlsx | Bin 0 -> 5896 bytes scripts/export_L3_act1.py | 70 +++++++++++++++ scripts/export_L3_act2.py | 64 ++++++++++++++ scripts/export_L3_act3.py | 74 ++++++++++++++++ scripts/export_L3_act4.py | 48 +++++++++++ scripts/export_act2.py | 64 ++++++++++++++ scripts/export_act3.py | 96 +++++++++++++++++++++ scripts/export_act3_v2.py | 114 +++++++++++++++++++++++++ scripts/export_act4.py | 45 ++++++++++ 18 files changed, 652 insertions(+) create mode 100644 memory/2026-05-04.md create mode 100644 output/U18_L2_第2幕剩余剧本.xlsx create mode 100644 output/U18_L2_第3幕剧本.xlsx create mode 100644 output/U18_L2_第3幕剧本_v2.xlsx create mode 100644 output/U18_L2_第4幕剧本.xlsx create mode 100644 output/U18_L3_第1段剧本.xlsx create mode 100644 output/U18_L3_第2段剧本.xlsx create mode 100644 output/U18_L3_第3段剧本.xlsx create mode 100644 output/U18_L3_第4段剧本.xlsx create mode 100644 scripts/export_L3_act1.py create mode 100644 scripts/export_L3_act2.py create mode 100644 scripts/export_L3_act3.py create mode 100644 scripts/export_L3_act4.py create mode 100644 scripts/export_act2.py create mode 100644 scripts/export_act3.py create mode 100644 scripts/export_act3_v2.py create mode 100644 scripts/export_act4.py diff --git a/logs/backup.log b/logs/backup.log index 7a6db45..70d4975 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -1583,3 +1583,13 @@ To https://git.valavala.com/ai_member_only/ai_member_xiaobian.git From https://git.valavala.com/ai_member_only/ai_member_xiaobian * branch master -> FETCH_HEAD Already up to date. +[master f03a04a] auto backup 2026-05-04 08:10:01 + 1 file changed, 10 insertions(+) +remote: . Processing 1 references +remote: Processed 1 references in total +To https://git.valavala.com/ai_member_only/ai_member_xiaobian.git + c91c1c6..f03a04a master -> master +{"code":0,"data":{"body":{"content":"{\"text\":\"✅ 小编Workspace每日自动备份完成(2026-05-04 08:10)\\n提交哈希:f03a04a\\n所有Workspace变更已同步到远程Git仓库\"}"},"chat_id":"oc_056898e8cc3689d305b4c69f7178ca27","create_time":"1777853402599","deleted":false,"message_id":"om_x100b504a736a9ca4b4bbb9f804a1bf5","msg_type":"text","sender":{"id":"cli_a9311be796f85cbd","id_type":"app_id","sender_type":"app","tenant_key":"176b7bf89fc6d75e"},"update_time":"1777853402599","updated":false},"msg":"success"}✅ 备份完成:Mon May 4 08:10:02 AM CST 2026 +From https://git.valavala.com/ai_member_only/ai_member_xiaobian + * branch master -> FETCH_HEAD +Already up to date. diff --git a/memory/2026-05-04.md b/memory/2026-05-04.md new file mode 100644 index 0000000..b439a62 --- /dev/null +++ b/memory/2026-05-04.md @@ -0,0 +1,67 @@ +# 2026-05-04 工作日志 + +## U18 L2 剧本创作进度同步(林逸瀚提供) + +### 当前进度(截至4/30) +- ✅ 故事大纲:已优化确认 +- ✅ 第1幕剧本:已完成初稿,已导出Excel给林逸瀚,林逸瀚正在修改中 +- ⏳ 第2幕剧本:待开始 +- ⏳ 第3幕剧本:待开始 +- ⏳ 第4幕剧本:待开始 + +### 本课基本信息 +- **课程:** U18 L2 舞龙初体验 +- **Unit主题:** 中国文化周 +- **场景:** 课室内 +- **出场人物:** User、Ben、Leo、Vicky、Sue、Sunny、11号机器人、Justin +- **知识点:** + - 单词:Blackboard、Read、Line、Example + - 句型:(v.) in line、Take...as an example. + +### 创作关键经验 +1. 剧本格式是4列表格(类型/剧情描述/名字/台词) +2. User对话互动不能无意义重复知识点,必须有剧情推进意义 +3. 台词必须Pre-A1/A1水平,极简英文短句 +4. 所有对话互动必须包含本课知识点 +5. 11号没有额外造型(无美术资源) +6. Justin是Vicky的Grandpa,不是11号的 + +### 大纲四幕结构 +- 第1幕:奇怪的黑板图谱(11号代班,触发Blackboard、Read) +- 第2幕:Leo的变身大乌龙(Leo误解图谱,触发Example、Read复现) +- 第3幕:爷爷的正确解法(Justin登场,触发Line、句型(v.) in line) +- 第4幕:我当上龙头啦(触发Line复现、句型Take...as an example.) + +### L2 剧本已完成 ✅(全4幕,221行,16个中互动+1核心互动) + +--- + +## U18 L3 剧本创作准备(与林逸瀚协作) + +### 基本信息 +- **课程:** U18 L3 造龙身 +- **场景:** 承接L2学完龙舞,大家动手造纸龙 +- **出场人物:** User、Vicky、Ben、Sunny、Matt + - Sunny:班花,不喜欢劳动但喜欢美丽的东西 + - Matt:偏执狂,所有东西都想做完美 + +### 知识点 +- 单词:Chinese(adj. 中国的)、Paper(adj. 纸制的)、Eraser、Ruler +- 句型:It is too (adj.)、We can use... to... +- ⚠️ Chinese在本课指"中国的"(形容词),Paper指"纸制的"(形容词),注意词性 + +### 故事大纲(4段) +1. 纸张很弱?Justin用纸盒证明纸制品很坚硬。Paper是Chinese的东西,正确排列就很坚固 +2. 造龙骨需要把纸折好,但龙骨很长一个人做不完,需要Ruler量度 +3. 剪纸折叠做龙身、用纸杯餐具造龙头、用Ruler量各部位、用Eraser擦掉画错的地方重画 +4. 把各部位合体,请Rock老师涂上红色(Chinese的颜色) + +### 林逸瀚指示 +- 本课较多互动和玩法,故事感可偏弱 +- 节奏表会由林逸瀚在下一步指引 + +### L3 剧本已完成 ✅(全4段,198行,16个中互动+1核心互动) +- 飞书文档:https://makee-interactive.feishu.cn/wiki/LuD4wFRaoi0HrMkeAaRcUaFlnGe +- 内嵌电子表格 token:SOn6s7DINh3orvtVIgLcbJCsnqd,sheet: wMQVyV +- 第4段结尾 Justin 铺了L4悬念:学写“Loong” +- 特别注意:Paper=纸制的(adj),Chinese=中国的(adj),始终搭配名词使用 diff --git a/output/U18_L2_第2幕剩余剧本.xlsx b/output/U18_L2_第2幕剩余剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..426da83e3731600c868f5c97b9afee54d88579ac GIT binary patch literal 6439 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 Ac>n+a literal 0 HcmV?d00001 diff --git a/output/U18_L2_第3幕剧本.xlsx b/output/U18_L2_第3幕剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f1add7c0c03e4df538efee6f5452f00800953e1b GIT binary patch literal 7035 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 literal 0 HcmV?d00001 diff --git a/output/U18_L2_第3幕剧本_v2.xlsx b/output/U18_L2_第3幕剧本_v2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0b21170c3d45dc7c6af474a712e3dc4cfab55d50 GIT binary patch literal 7460 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 R0N@}`F=S<5`yEJt{{hD@fVThu literal 0 HcmV?d00001 diff --git a/output/U18_L3_第1段剧本.xlsx b/output/U18_L3_第1段剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1b20388f9af766e5f9ba3be35336cac67d3abfcb GIT binary patch literal 6680 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 literal 0 HcmV?d00001 diff --git a/output/U18_L3_第2段剧本.xlsx b/output/U18_L3_第2段剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e63f5685e341c1d34618f3eff404b4542bd7e2aa GIT binary patch literal 6362 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 Vqz6eG06={>#U4s~1kvxO{{tmZGX4Mn literal 0 HcmV?d00001 diff --git a/output/U18_L3_第3段剧本.xlsx b/output/U18_L3_第3段剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6373479ab82ec8bd81e57f961b777f72b4388de3 GIT binary patch literal 6904 zcmZ`;1yCGYvtB${a9dmg!QCAK!2<+$Sv0t_xI4j}CAhOV!QEwp!x9L=2_aYl36@80 z>izfLy#LMAoT;gruV?zJ?sNKlt*(rOOb7q~9s!b4N{r-3RTa`7o~9oz+=mO~Y^m<% z?BdR8?&8AX|<6aMmZvf(yP*Wid7C9~lM{r{aO>MQ+ zA1-jn+jzn?e8|1=@G)39n5OFk*s+hDQU`k5L zLf#^NvO!#HS2R?yzBV6OOAv~-NqPg@hou-&hF{{D7U7VNTXc{cFEbSm=1|6j0u-*J z)k@uzzP@xnDSpW(zKsw%$K)whA#55Vt0|uxN~RYcF$Q|o{0@)khfhCw_vWC@XPznB zzQ>f8X>V9q&D8D2%1sT(N3Fn)4Dj1{smb3G%EDN2@8ikN6xjS*WE{N0UXlIh?zsboq%A?0c1pxAx004pqa(o;(J#4KUt$vT(zvwwOFm#6t5eA+>-}%^F zI%19pgtRsjxZ8QHHD`w(t5HYb=_NS$f|A37dY=p6PG(>qr>J)1iXpQd-pt57-#-xY zz4*dmaS$1ucJ5=g%DJ}G*~YoCsmsHFC(T7x4n6I|C{;0OF|Y#+3I&W4;19kJjeDf* zLpZr)v}p+Bq+j~fytb|rZs$-)`W$2yV8UiA^-fE}z}b|hd6$~^JJF<8f>kjBfvz-T zdvx>p4~OAf_=bcP>`;V~C&Y=1T#qJb#<_e)%^>=t*1%Aoy^W;KtI^pxh2YTffHag2 z#mnM(qDMT~q9XZvGhY6eL&pX26L1ecN8sl6nU7HG8|co$sw_=jQsWy7@w$RS8ARHpy%SXG&P5mVZwavnFd^?>|B>NI@S9k9D{d1GK{=r zH%FGiC-0V@gz^|5I5exG?hlo2jolnbnKMdSf-$$K10Us#g?xJ+N;~`>diO1}bG(EX zoF5=E^C~UKt{S2IxHA`)dh33$Q&66|tSU3((#3{;c0+Gy9>wG&O5i3!VI$)YySz*; zeZm7f`GIkyCT2selTmLBgY7`#-RL{lFZBX0Up#lBU#{$HqFYXrXOJrxWAE6(6KYY! z<{^-LlpmR8uTFtjg3g^$82P<ewaTB-c(rFPf*;!HgvgiO*8d{z8x!%IHteP^|KVw42<(`lHf(vg`AjQEwpfvO4w z_pGJx`@DIn(=<+oYo+AZc1`r<9*olmyuf~WD7j~p?VK3+9_2?KKL$lIIVGYEd6PVC zxLxNd6_g<{r*;63RYt;sOaSQCLLAcSS{ZI;fIl+pqc+!!cdK8+pDJNC_IWzlb7m>| zF!*%Qns-pNLDyVocP|n(^BzD0*7=jriUFvnAeh5Ej;erFz-$VO^gE#_U zr6=uQ#S7=!1nC28`sd>eH{_iRhi>Y);mdp+Pc3!brpHFLpsCC&!UcVw?`$O?XUEs8 z4B^lmeRg`{B;}AMX@Kun%xccon%lAWPSAe`R*|X1`yfzW78e zgK{+byomNoVPqC;P&Uff&os*>eMFs)(9xlWfla>6?CtUy8{sC%jQtH-7*qrCTvOYO z+i(PlHL1v7C0_2pWk1u%bbB^sd#%i>#RHFuT2TlHaxHI zu@`S9QiI*=*Nzon;i(a0;wxCDk(4PFU68%(*=JQ8(iZBK<88&yB<0y;HanY{hL;cK(4K3!Tj{S|5K))%bXEKR2%qOy_l->D_O3e&;g&9A{T_-}I}o zY+c~x`u4R`s;GiWp6@Uof`=R;eL4jyF$vF(`j?a>R04$QwDD)Bh@qe|ir}nk%eZWSorQNs{>e}95qKQNT|@i?v*;ol1gcaDVuCprMo^8^4O{k?#A zJG;Gdx3#kJaOeE%_SY&>Yp~|FCWL=SG*mg!rJ_F+(ROAv>Ge6LEk(tCD|7bO8Lo&}Wo51Meq9*v}BB2U$q%{$F`}DlAM@TW(`rD*~4(z2q z!?#Lz zy3C`S8%F@1llU&~r$l~d=H=U?1liGDy=}PG>|d|BXdJ`PU&>}te3D7Rr293~56>QH zeha4J^r`>nv!ID$P1yBbpsVZFVKj(iKfx=xZ@056*|$zynj%QJoXNNV?(#k8=x)Ye z%zw&KbCNtgXp&eJ?24bC6k)`8)b+#IQ9|KLy5~|**VpkrCBad-@XX&>u*ziwS2{WU zGUwI>iJPkr&btgbZZ4;?=*vftT#yn%YOvhAi4Hlzx?QK@3hN_7j=IDZ2|In~9Gxfa zVXM%<8;uS8{588hsDN*L*SA!lWUjV9_kI*GrZ<>oQ#x|JTo&3!w!)uzvf&0q`MBEI z7LTq3o3X+6Sv;|J-~R}P58mD2<>q#G^L*r8uO6)kX2r3qDc)o=b6|_T@)HM3Pqm;) z#>ekJJs;$L(RL%o{b{)8l4d~N57cw=@>n?f8Qfe#fJXl4BV>WKROxPNe}Gq~!A7F57(#_#MV)s?u4Ab4Nr$a6jRJbjs?`Nx9#>SGSjeD+trvfA`(4OOKWO=0-%zOTHTops0 zB@bBqCXP)=glB5NQ+co5fHTmk*tQ%BVQQ}_x4>A-a*{2Hf*v)#x36;FIlLhrm9VrX z@^Ljgr5w!VZ8Ebow`1ZvxyzE@YqweI|H4w_N+BObBmPOAGbh%=;gl=PnafF0af!=} ztNc_jbKG11RXx#o6Dn}Zq0y;vSEK+q^cIs{9(-M#v8V^qyMe`KL49Q<;7KVM#G&?& zL&&~?DKA|tzKKn+QcT+X(HZ@V0j|Nn-1#W%paEZn&SY~%@y(_Pyw1SVd<-GFaS%+= z4!WZCv0T6Y4!K_5PwcjOxI@yTkHYMB2TVRTAQ%GLLlm>0DI722pekX$!@85rinydx z;#Pguj?(fr>}Gy`e!X4AO1RXdnM5=8aI1wP{ZaFspo`7BYgHiNbpoyZ*{k%lIPIcUhr)>hVB^$z zC}GYPgTe^LXL-Wc(3y$1-nY&jkSiRIfD#Bl-vf8m6J3iskTTH@5(^hFCT|cC; z((-0MQFrkmCBC*#Ft-SWGE8k%F*GXC@aE;ECFVm(selkDlx)j&KvpiL1b7tWIblNBxOxzlqEE!R7P< z+Lavbpcc|7j`dm6!~`gP7z~l&eJzk4m8>g6Yy@PuV6OHKJ^t!S#3d?1;~e_ze(zV4}bOw z?#l*R>-JHMQM@%c4HfJ>Tn%0Ac3$)5QKV(d#EF!xZyb|9?&}H?bgj?#si7%EEl5YL zQNzS+ankJ0ukhw!383SPSvScQV&t>ss^AfSqA#4^cG`3L@udYHoYR1rUmuctVlr;e zyq^jh4+|_cQ?hWiV~x%D8jR>@{BDW*3&gMR3XyZbSuVBxD@)^dq@d9xij$*9iFT+W zS{41R+8HX&!_1l_F=U<7J6Yd$kwyuTuu*v5BBXZ;y0tCJ9cf_Kr3f?Ri>GvJu(|3W-HOx}D)T(XW(MecB=#$h!& zF{u8;_?LXIrDyuh$36BB=f-LM58*+6(JgpD2fU#GweS|cq*6G)onfNPfT<@ z%Xg}b4k}G*bMvPi0L6jMtw4N>;qcWFe z8mt#cAEk2Z{BHEmUYkesvQP4dj1IdcailXsKL|nLB4Rr006Lm7g_Ee zz7AIIzxL3LRxk`V7{w zUn~zr+!mH_ZyWQfC+Ua0h+o}divU)A1v&oAPWtF#k@C2}1C}N$;>ghAWS0m!z%D)p zFffmSTUeq?j7mFefx9MfTHynYRTkq?P}^~{0pAhd)Au?o`sYe==}TItBQCv}N*o;0 z-KfLTn2z{IGUnPjA=clCHrZ-uCdLzYl*rXnHfhCj?QXC)O~cmuBHq59V)j~t7)-{) zJ0tdec153N?_?^U$cO^L<4ZV)GN+vTC9`E#)?TTlx{FS%dN!2(r`zZoI#+2`%daN}`nM?_xz(huef!xnUQ@*Hfs z^Ph&+GAg~(-S^lX-|KfYom{rn6c^WX^6Hhw-6pj7r|otfq0i-bv7hT^CDml%gkKD6 zPtMfTmX`_(n5g7!cBzrzZqWG!4dcZV)C(b!?xDp2wvmbV_JbyD!uANb*jiNySKs7e zPoUS3YTl4v5bURYiM27v@HHXSlRFXtN+&GVKHVf~iyTJ9n!@q9ZZg2_C#V!MreAa_CGR~YV1A{|65ppR{sjrZDiS~DdJ&5A4Mf-&`Ge{AeNDF3* zq^e%_QJ&y^PTH_x=HG(b?1LaV`gk8 zMc+dd5%Pe>*B4FuSXa006K(IEwQ-?SAcTES#NR{Ytz9jmZby5cf8Hj9ThCSV>EjQ%kB8 zgC!R1ovPYYb)4|o5%Uh|K14J#mb?J@7B%-7Uiw>?MjJ1F2-)k)9YNM2)vurg%ovue zNpp&*WUC6X`gz%Rm2)nedIU4UqzKsJu9kEa|S z@I7Cb3vS*=1l-www&;z-(s=N03!(9urxqaw{6oqplJJssGMI-^W8JzQ8J2ZlNRmGO zyc>gm5d7`UutE_kCEnC5TAiSM06Ud8%_KIQ$GF)1lwjIr+s?4aP?sl#P9jF*>K#Ni zM)qd`kQv4ufnI8enV3r@o;C3X6D31hPR&qZq2_0R*k$jAq=e~4kI8Fo9$)($erEm8 z`5t>wPmv_2fyK3*SZ*Fk>oI1yCOJy`5><%?<=%m_-D&czBSz@nC)OoR0uDDC+tmN& zoq;O1sP=*H?+@GqfAju3#{S9vU-8zGEdDr*3o8POzYE}3uaremG1g<{z(u*B$HyP8 z!)W7-Ku8ktFmHsg2c3+o71$DbJH2VWV32=>Isuyed;%yjY>wra+2(p-Pg1j`ABoyE z*KLoR^0Y&Gg%en zsDg(qmLM;FVn6^fr3k2P_vKkNZD1&Q?jjDP#{0!jOI| zuZFVDP99cH9;RBpE>`ZwzXGf_RrObZJ$Pqj_=JN^?@bxG8K$udg5?Wf^?j<1!Q2|J z8eHiOK2d~fjn76G43b&1@fxrGAphG+8l{FmA)+>#ngu1DPhB&uu;Oh_E1gnHsv+*x zrxQ@^yMMc!sN=SrVLUvkw`)$BeCeX)drDSIWdVtyt3<>CG#>aY;x;BVj0aOO{p>6#3`9@mJFsvte zdixH`PH-p0LT?ZD-EV~CC;7}7-oTe$$%d{aHDJ(Q+(${1pa&)q5DAg~|1QNt%=~o( zKk)m1dlrA9|7;Na#sUDr2!sDb|8KkCPxzk_`rq))htK~PLH$nye@ZC-F%Uxg=r05R zRZ#iU%AYmDf2<%xK6E`Ee&g?o;ZNwF6Z+p!!UvB3F}?o@{Bwf*8+i8seE8-+6ZTK= ypIQDl*pv7#@c)zZf7MtSIX008I@r^Lh5Uh+$~0{jnvPf^VP literal 0 HcmV?d00001 diff --git a/output/U18_L3_第4段剧本.xlsx b/output/U18_L3_第4段剧本.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a1b2306e3205529b4ee7003225201019849d535b GIT binary patch literal 5896 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 nf8_k1cK%GH-*#*@G++prnDn}1`^;uy{~2E literal 0 HcmV?d00001 diff --git a/scripts/export_L3_act1.py b/scripts/export_L3_act1.py new file mode 100644 index 0000000..6c4978a --- /dev/null +++ b/scripts/export_L3_act1.py @@ -0,0 +1,70 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "L3第1段剧本" + +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + ["TL", None, None, None, "【场景】教室 【角色】User、Vicky、Ben、Sunny、Matt、Justin", None, None, None, None], + [None, None, None, None, "Justin走进教室,带着一个大纸箱。大家看了看——11号不在。", None, None, None, None], + [None, None, None, None, None, "Vicky", "Where is Eleven?", None, None], + [None, None, None, None, None, "Justin", "Eleven is broken. It's getting a repair!", None, None], + [None, None, None, None, None, "Ben", "Too much smoke! Haha!", None, None], + ["TL", None, None, None, "Justin打开纸箱。里面全是纸制品——paper cups、paper spoons、paper plates、还有纸板。", None, None, None, None], + [None, None, None, None, None, "Justin", "Today, we make our dragon! With these!", None, None], + [None, None, None, None, None, "Sunny", "Paper cups? It is too ugly!", None, None], + [None, None, None, None, None, "Matt", "It is too soft. It will break!", None, None], + [None, None, None, None, "Ben用手指戳了一下纸板——戳出个洞。", None, None, None, None], + [None, None, None, None, None, "Ben", "See? One poke!", None, None], + [None, None, None, None, None, "Ben", "A paper dragon? What do you think?", None, None], + ["中互动", None, None, None, None, "User", "A paper dragon? It is too weak!", None, None], + ["TL", None, None, None, "Justin笑了笑,从箱子底下抽出一个网格状的paper box,放在地上。", None, None, None, None], + [None, None, None, None, None, "Justin", "Who wants to try? Stand on it!", None, None], + [None, None, None, None, "Ben第一个踩上去——稳稳的。", None, None, None, None], + [None, None, None, None, None, "Ben", "Wow! It's okay!", None, None], + [None, None, None, None, "Vicky也站上去——没事。", None, None, None, None], + [None, None, None, None, "Matt小心翼翼上去,使劲跺了两脚。Paper box纹丝不动。", None, None, None, None], + [None, None, None, None, None, "Matt", "How? It's a paper box!", None, None], + [None, None, None, None, "Sunny站在旁边。", None, None, None, None], + [None, None, None, None, None, "Sunny", "It is too dirty. I'm not going up.", None, None], + [None, None, None, None, "Sunny偷偷看着paper box上的网格花纹。", None, None, None, None], + [None, None, None, None, None, "Sunny", "Well... the pattern is kind of pretty.", None, None], + [None, None, None, None, None, "Justin", "See? A paper box can be very strong!", None, None], + ["中互动", None, None, None, None, "Justin", "What is this box made of?", None, None], + [None, None, None, None, None, "User", "It is a paper box! But it is so strong!", None, None], + ["TL", None, None, None, None, "Justin", "Paper things are Chinese.", None, None], + [None, None, None, None, None, "Justin", "Chinese people made paper long ago.", None, None], + [None, None, None, None, None, "Justin", "If you fold paper the right way, it is very strong!", None, None], + [None, None, None, None, None, "Matt", "So if I fold it right, it will be perfect?", None, None], + [None, None, None, None, None, "Justin", "Yes!", None, None], + [None, None, None, None, "Sunny翻了个白眼,但手已经在挑好看的彩纸了。", None, None, None, None], + ["中互动", None, None, None, None, "Justin", "Where do paper things come from?", None, None], + [None, None, None, None, None, "User", "Paper things are Chinese! Chinese people made them!", None, None], + ["TL", None, None, None, None, "Justin", "Today, we use paper to make our dragon!", None, None], + [None, None, None, None, "Matt已经在研究paper box的折叠结构。", None, None, None, None], + [None, None, None, None, None, "Matt", "I need to study this first...", None, None], + [None, None, None, None, "Ben搓手。", None, None, None, None], + [None, None, None, None, None, "Ben", "Let's go!", None, None], + [None, None, None, None, "Sunny挑了一张彩色纸板,端详着。", None, None, None, None], + [None, None, None, None, None, "Sunny", "This color is nice. Only this one.", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第1段剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_L3_act2.py b/scripts/export_L3_act2.py new file mode 100644 index 0000000..00c766b --- /dev/null +++ b/scripts/export_L3_act2.py @@ -0,0 +1,64 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "L3第2段剧本" + +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + ["TL", None, None, None, "Justin拿出一张龙骨设计图展开。龙骨很长。", None, None, None, None], + [None, None, None, None, None, "Justin", "Now, we need a dragon bone.", None, None], + [None, None, None, None, None, "Justin", "The bone is paper too. If you fold it right, it is very strong!", None, None], + [None, None, None, None, None, "Justin", "But it is very long. Each of you makes one piece.", None, None], + [None, None, None, None, None, "Justin", "Every piece must be 15cm.", None, None], + [None, None, None, None, None, "Matt", "How do we make sure?", None, None], + [None, None, None, None, "Justin从工具箱拿出一把ruler。", None, None, None, None], + [None, None, None, None, None, "Justin", "We can use a ruler to measure!", None, None], + ["中互动", None, None, None, None, "Justin", "How do we make every piece the same?", None, None], + [None, None, None, None, None, "User", "We can use a ruler to measure!", None, None], + ["TL", None, None, None, "大家开始折龙骨。Matt折得很认真,每一下都量了又量。Ben大大咧咧直接折。Sunny懒洋洋地折了几下就停了。", None, None, None, None], + [None, None, None, None, None, "Justin", "Good work everyone!", None, None], + [None, None, None, None, None, "Justin", "Now, User, take this ruler.", None, None], + [None, None, None, None, None, "Justin", "Check everyone's bone. Is it 15cm?", None, None], + [None, None, None, None, "User拿着ruler,走到Ben面前量。", None, None, None, None], + [None, None, None, None, None, "Ben", "How is mine?", None, None], + [None, None, None, None, "Ben的龙骨明显太长了。", None, None, None, None], + ["中互动", None, None, None, "User量度Ben的龙骨。", None, None, None, None], + [None, None, None, None, None, "User", "It is too long! Cut it!", None, None], + [None, None, None, None, None, "Ben", "Oops!", None, None], + ["TL", None, None, None, "User走到Sunny面前量。Sunny的龙骨很短。", None, None, None, None], + [None, None, None, None, None, "Sunny", "Is mine okay?", None, None], + ["中互动", None, None, None, "User量度Sunny的龙骨。", None, None, None, None], + [None, None, None, None, None, "User", "It is too short! Do it again!", None, None], + [None, None, None, None, None, "Sunny", "But my hands are tired...", None, None], + [None, None, None, None, None, "Vicky", "I'll help you, Sunny.", None, None], + ["TL", None, None, None, "User走到Matt面前量——刚好15cm。", None, None, None, None], + [None, None, None, None, None, "Matt", "How is mine?", None, None], + [None, None, None, None, None, "User", "Perfect! 15cm!", None, None], + [None, None, None, None, None, "Matt", "Of course. I measured it three times.", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + ["TL", None, None, None, "Ben剪掉多余的部分。Vicky拉着Sunny重新折。最后大家的龙骨都是15cm。", None, None, None, None], + [None, None, None, None, None, "Justin", "Well done! Every piece is 15cm now.", None, None], + [None, None, None, None, None, "Justin", "How did you do it?", None, None], + ["中互动", None, None, None, None, "User", "My paper dragon bone is done! I used a ruler!", None, None], + [None, None, None, None, None, "Justin", "Great! Now let's make the dragon body and head!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第2段剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_L3_act3.py b/scripts/export_L3_act3.py new file mode 100644 index 0000000..8707c5f --- /dev/null +++ b/scripts/export_L3_act3.py @@ -0,0 +1,74 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "L3第3段剧本" + +col_widths = {"A": 18, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + ["TL", None, None, None, "龙头用paper cups和paper spoons拼好了。Justin拍拍手。", None, None, None, None], + [None, None, None, None, None, "Justin", "The dragon head is ready!", None, None], + [None, None, None, None, None, "Justin", "Now we need to decorate it.", None, None], + [None, None, None, None, None, "Justin", "But remember, the patterns must be Chinese!", None, None], + [None, None, None, None, None, "Justin", "Chinese cloud, Chinese dragon scales!", None, None], + [None, None, None, None, "Sunny直接把几片叶子放到龙头上。", None, None, None, None], + [None, None, None, None, None, "Sunny", "We can use these leaves to make it beautiful!", None, None], + [None, None, None, None, None, "User", "No Sunny! Leaves are not Chinese!", None, None], + ["中互动", None, None, None, "【教研图】几个装饰选项(叶子❌/Chinese money✅/其他❌),User选择Chinese money。", None, None, None, None], + [None, None, None, None, None, "User", "We can use Chinese money to make it beautiful!", None, None], + ["TL", None, None, None, "Sunny嘟嘴把叶子拿掉,换上Chinese money图案。其实她贴得很好看。", None, None, None, None], + [None, None, None, None, None, "Sunny", "Fine... Chinese money then.", None, None], + [None, None, None, None, None, "Ben", "Wow Sunny, that looks nice!", None, None], + [None, None, None, None, None, "Sunny", "Of course it does.", None, None], + ["TL", None, None, None, "画龙点睛时间。Justin骄傲地让Vicky来画龙的眼睛。他掏出手机准备拍照。", None, None, None, None], + [None, None, None, None, None, "Justin", "Now, the eyes! My Vicky can do it!", None, None], + [None, None, None, None, None, "Justin", "Everyone watch! I need to take a photo!", None, None], + [None, None, None, None, "全班盯着看。Vicky拿起笔,手抖。", None, None, None, None], + [None, None, None, None, None, "Vicky", "Grandpa... don't film me...", None, None], + [None, None, None, None, "Vicky害羞,手一抖——眼睛画歪了。", None, None, None, None], + [None, None, None, None, "【emoji】全班 emoji_shock", None, None, None, None], + [None, None, None, None, None, "Matt", "Oh no! It's wrong!", None, None], + [None, None, None, None, None, "Justin", "Ah... what can we do?", None, None], + [None, None, None, None, "Matt从口袋掏出一块橡皮。", None, None, None, None], + [None, None, None, None, None, "Vicky", "An eraser!", None, None], + ["中互动", None, None, None, None, "User", "We can use an eraser to fix it!", None, None], + ["TL", None, None, None, "Vicky拿起eraser擦掉,重新画。这次画好了。", None, None, None, None], + [None, None, None, None, None, "Vicky", "There... much better.", None, None], + [None, None, None, None, None, "Justin", "Beautiful! That's my girl!", None, None], + [None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None], + ["TL", None, None, None, "Matt帮忙画龙嘴。追求完美——画了擦、擦了画,反复好多次。", None, None, None, None], + [None, None, None, None, None, "Matt", "No... the mouth is not right.", None, None], + [None, None, None, None, None, "Matt", "Again...", None, None], + [None, None, None, None, None, "Matt", "Still not perfect!", None, None], + [None, None, None, None, "Matt的eraser越来越短,快捏不住了。", None, None, None, None], + [None, None, None, None, None, "Matt", "My eraser is too small now!", None, None], + [None, None, None, None, None, "Matt", "Can I use yours?", None, None], + ["中互动", None, None, None, None, "User", "Here! We can use my eraser to help you!", None, None], + ["TL", None, None, None, "Matt终于画出满意的龙嘴。", None, None, None, None], + [None, None, None, None, None, "Matt", "Yes! Perfect! Finally!", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + ["TL", None, None, None, "龙头完成了!大家围着看——Chinese money图案、完美的眼睛和嘴巴、paper cups做的角。", None, None, None, None], + [None, None, None, None, None, "Justin", "Look at this dragon head!", None, None], + [None, None, None, None, None, "Justin", "Tell everyone what we did!", None, None], + ["核心互动(口语)", None, None, None, "【教研图】龙头特写。User口语介绍龙头。", None, None, None, None], + [None, None, None, None, None, "User", "I used a ruler to measure. We used an eraser to fix it. And we put Chinese money on it. It's a paper dragon head!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第3段剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_L3_act4.py b/scripts/export_L3_act4.py new file mode 100644 index 0000000..e572a0f --- /dev/null +++ b/scripts/export_L3_act4.py @@ -0,0 +1,48 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "L3第4段剧本" + +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + ["TL", None, None, None, "大家把龙骨、龙身、龙头合在一起。一条完整的paper dragon拼好了!但全是白色的。", None, None, None, None], + [None, None, None, None, None, "Ben", "It's done! But...", None, None], + [None, None, None, None, None, "Matt", "It's all white. It doesn't look strong.", None, None], + [None, None, None, None, None, "Sunny", "It needs color!", None, None], + [None, None, None, None, "这时Rock老师经过教室门口。气场强烈。", None, None, None, None], + [None, None, None, None, None, "Justin", "Rock! Come here! We need your help!", None, None], + [None, None, None, None, "Rock老师走进来,看了一眼纸龙。", None, None, None, None], + [None, None, None, None, None, "Rock", "Hmm. It needs color.", None, None], + [None, None, None, None, None, "Rock", "Chinese dragons are red.", None, None], + [None, None, None, None, None, "Rock", "What color is a Chinese dragon?", None, None], + ["中互动", None, None, None, None, "User", "Chinese dragons are red! Red is a Chinese color!", None, None], + ["TL", None, None, None, "Rock拿出红色颜料,开始给纸龙涂色。", None, None, None, None], + [None, None, None, None, "纸龙变成了红色——威武极了!大家欢呼。", None, None, None, None], + [None, None, None, None, None, "Ben", "Wow!", None, None], + [None, None, None, None, None, "Matt", "Now that's a real dragon.", None, None], + [None, None, None, None, "Sunny看呆了。", None, None, None, None], + [None, None, None, None, None, "Sunny", "How is it? Do you like it?", None, None], + ["中互动", None, None, None, None, "User", "It is too beautiful!", None, None], + [None, None, None, None, None, "Justin", "Next class, we dance with our dragon!", None, None], + [None, None, None, None, "【emoji】全班 emoji_cheer", None, None, None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L3_第4段剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_act2.py b/scripts/export_act2.py new file mode 100644 index 0000000..3402846 --- /dev/null +++ b/scripts/export_act2.py @@ -0,0 +1,64 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "第2幕剩余剧本" + +# 列宽 +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 45, "F": 15, "G": 45, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +# 表头 +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +# 剧本数据 +rows = [ + ["TL", None, None, None, "【插入图】(复用)黑板图谱,标记1、2、3动作。Leo站在黑板前盯着看。", None, None, None, None], + [None, None, None, None, None, "Leo", "Okay! Number one...", None, None], + [None, None, None, None, "Leo做1号动作,胳膊拧到背后。", None, None, None, None], + [None, None, None, None, None, "Leo", "Number two...", None, None], + [None, None, None, None, "Leo做2号动作,踢腿,身体摇晃。", None, None, None, None], + [None, None, None, None, None, "Leo", "Number three... Hero change!", None, None], + [None, None, None, None, "Leo旋转,失去平衡,一屁股坐在地上。", None, None, None, None], + [None, None, None, None, "【音效】摔倒\"砰\"", None, None, None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + [None, None, None, None, "【镜头】11号从角落探出头,还冒着微弱黑烟。", None, None, None, None], + [None, None, None, None, None, "Eleven", "Bip! Hero change... 37%! Keep going!", None, None], + [None, None, None, None, None, "Leo", "Oww...", None, None], + [None, None, None, None, None, "Leo", "But I did read it right!", None, None], + [None, None, None, None, None, "Ben", "Haha! You look so funny!", None, None], + ["中互动", None, None, None, "【教研图】左:黑板图谱(1/2/3动作)。右:Leo摔倒的滑稽样。题目:\"Leo tried to read the blackboard. Did he do it right?\" 选项:Yes / No。正确答案:No", None, None, None, None], + [None, None, None, None, None, "User", "No! Leo did not read it right.", None, None], + ["TL", None, None, None, None, "Ben", "Your example is so funny!", None, None], + [None, None, None, None, None, "Vicky", "That's not a dragon for sure.", None, None], + [None, None, None, None, None, "Leo", "But the blackboard shows 1, 2, 3!", None, None], + [None, None, None, None, None, "Leo", "I did it as an example!", None, None], + [None, None, None, None, None, "Sue", "Hmm... Maybe you are wrong.", None, None], + [None, None, None, None, None, "Sue", "Hey, what do you think?", None, None], + ["中互动", None, None, None, None, "User", "Leo's example is wrong. That's not a dragon!", None, None], + ["TL", None, None, None, "Leo揉着屁股站起来,嘟囔着不服气。", None, None, None, None], + [None, None, None, None, None, "Leo", "Fine... But then what is it?", None, None], + [None, None, None, None, "大家又看向黑板,还是看不懂。", None, None, None, None], + [None, None, None, None, None, "Vicky", "We still can't read the blackboard...", None, None], + [None, None, None, None, None, "Vicky", "Maybe we need Grandpa.", None, None], + [None, None, None, None, "【音效】门\"砰\"推开", None, None, None, None], + [None, None, None, None, "【镜头】Justin爷爷抱着一摞彩色绸缎出现在门口,看到Leo揉屁股。", None, None, None, None], + [None, None, None, None, "【emoji】Justin emoji_laugh", None, None, None, None], + [None, None, None, None, None, "Justin", "Hahaha! What happened here?", None, None], + ["中互动", None, None, None, None, "User", "We tried to read the blackboard. But we can't!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第2幕剩余剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_act3.py b/scripts/export_act3.py new file mode 100644 index 0000000..bc94ca2 --- /dev/null +++ b/scripts/export_act3.py @@ -0,0 +1,96 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "第3幕剧本" + +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 50, "F": 15, "G": 50, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + # === 桥段1:排队 === + ["TL", None, None, None, "Justin笑着摇头。", None, None, None, None], + [None, None, None, None, None, "Justin", "No no no. This is not hero change.", None, None], + [None, None, None, None, None, "Justin", "This is a dragon dance!", None, None], + [None, None, None, None, None, "Leo", "Dragon dance?", None, None], + [None, None, None, None, None, "Justin", "Yes! But first, you need to stand in a line.", None, None], + [None, None, None, None, None, "Justin", "Come! Everyone, stand in line!", None, None], + [None, None, None, None, "Leo第一个冲到最前面。", None, None, None, None], + [None, None, None, None, None, "Leo", "I'm number 1! I'm first in line!", None, None], + [None, None, None, None, "Ben排到Leo后面,Vicky排第三。", None, None, None, None], + [None, None, None, None, None, "Ben", "I'm number 2.", None, None], + [None, None, None, None, None, "Vicky", "And I'm number 3 in line.", None, None], + [None, None, None, None, None, "Justin", "Good! Now, number 1 does move 1.", None, None], + [None, None, None, None, None, "Justin", "Number 2 does move 2.", None, None], + [None, None, None, None, None, "Justin", "When you all move together, you look like a dragon!", None, None], + # === 中互动8 === + ["中互动", None, None, None, "【教研图】教室场景,同学散乱站着。User需要把Leo拖到位置1、Ben到位置2、Vicky到位置3,排成一条line。完成后队列亮起。", None, None, None, None], + [None, None, None, None, None, "User", "Stand in line! Leo is 1, Ben is 2, Vicky is 3!", None, None], + # === 桥段2:Justin示范,Leo做不好 === + ["TL", None, None, None, "大家排好了。Justin走到队伍前方。", None, None, None, None], + [None, None, None, None, None, "Justin", "Number 1 is the dragon head.", None, None], + [None, None, None, None, None, "Justin", "The head move is very important.", None, None], + [None, None, None, None, None, "Justin", "Take me as an example.", None, None], + [None, None, None, None, None, "Justin", "Watch my head and arms.", None, None], + [None, None, None, None, "Justin做了一个流畅的龙头动作——抬头、双臂向前划。", None, None, None, None], + [None, None, None, None, None, "Leo", "Easy! Watch me!", None, None], + [None, None, None, None, "Leo尝试模仿,但做成了超人变身招式。", None, None, None, None], + [None, None, None, None, None, "Justin", "No no, not hero change!", None, None], + [None, None, None, None, "Leo再试一次,胳膊不协调地乱甩。", None, None, None, None], + [None, None, None, None, "【emoji】Leo emoji_sad", None, None, None, None], + [None, None, None, None, None, "Leo", "Hmm... it's hard.", None, None], + [None, None, None, None, "Justin看了一眼Vicky。", None, None, None, None], + [None, None, None, None, None, "Justin", "My Vicky's move is so good!", None, None], + [None, None, None, None, None, "Justin", "She's always the best!", None, None], + [None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None], + [None, None, None, None, None, "Vicky", "Grandpa... not again...", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + # === 中互动9 === + ["中互动", None, None, None, None, "Justin", "Is Leo in the right place?", None, None], + [None, None, None, None, None, "User", "Leo is number 1 in line. But his move is wrong!", None, None], + # === 桥段3:Leo退出,User接替 === + ["TL", None, None, None, "Leo又试了一次,还是做不好。", None, None, None, None], + [None, None, None, None, None, "Leo", "Ahh... I can't do it.", None, None], + [None, None, None, None, None, "Leo", "I'm a Hero... not a Dragon.", None, None], + [None, None, None, None, None, "Leo", "Hero change is my thing!", None, None], + [None, None, None, None, "Leo从1号位退出来,有点失落。", None, None, None, None], + [None, None, None, None, None, "Ben", "It's okay Leo.", None, None], + [None, None, None, None, None, "Leo", "Someone better can be number 1.", None, None], + [None, None, None, None, "大家看向User。", None, None, None, None], + [None, None, None, None, None, "Justin", "We need a new number 1 in line.", None, None], + [None, None, None, None, None, "Justin", "Who wants to be the dragon head?", None, None], + # === 中互动10 === + ["中互动", None, None, None, None, "User", "I'll stand in line! I'm number 1!", None, None], + # === 桥段4:User做龙头,初次成功 === + ["TL", None, None, None, "User站到队伍最前面。队伍变成:User 1号、Ben 2号、Vicky 3号。", None, None, None, None], + [None, None, None, None, None, "Justin", "Good! Now do the head move.", None, None], + [None, None, None, None, "Justin再次示范龙头动作。User跟着做,比Leo协调。", None, None, None, None], + [None, None, None, None, None, "Justin", "Yes! Very good!", None, None], + [None, None, None, None, "Leo在后面挥拳。", None, None, None, None], + [None, None, None, None, None, "Leo", "Go go go! Dragon head!", None, None], + [None, None, None, None, None, "Justin", "Everyone, follow the head. Move!", None, None], + [None, None, None, None, "大家跟着动起来,歪歪扭扭但有了雏形。", None, None, None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + [None, None, None, None, None, "Vicky", "We look so funny!", None, None], + [None, None, None, None, None, "Ben", "But it's working!", None, None], + # === 中互动11 === + ["中互动", None, None, None, None, "Leo", "How does it feel? Being the dragon head?", None, None], + [None, None, None, None, None, "User", "I'm the head of the line! Let's move together!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第3幕剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_act3_v2.py b/scripts/export_act3_v2.py new file mode 100644 index 0000000..1564bfe --- /dev/null +++ b/scripts/export_act3_v2.py @@ -0,0 +1,114 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "第3幕剧本" + +col_widths = {"A": 12, "B": 8, "C": 10, "D": 10, "E": 50, "F": 15, "G": 50, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + # === 11号耍宝 === + ["TL", None, None, None, "【镜头】11号从角落探出来,黑烟已经散了一些。它挺起胸膛。", None, None, None, None], + [None, None, None, None, None, "Eleven", "Bip Bop! I am a good teacher!", None, None], + [None, None, None, None, None, "Eleven", "I showed an example for my students!", None, None], + [None, None, None, None, None, "Eleven", "Doctor Eleven is the best example! BipBop!", None, None], + [None, None, None, None, None, "Ben", "Haha! You? A good example?", None, None], + [None, None, None, None, None, "Ben", "You can't even read the blackboard!", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + # === 中互动8:Example === + ["中互动", None, None, None, None, "Ben", "Was Eleven a good example?", None, None], + [None, None, None, None, None, "User", "No! Eleven is a bad example!", None, None], + # === 11号冒烟退场 === + ["TL", None, None, None, "【emoji】Eleven emoji_sad", None, None, None, None], + [None, None, None, None, None, "Eleven", "Bip...Bip... I'm a good teacher...", None, None], + [None, None, None, None, "11号又开始冒黑烟,缩回角落。", None, None, None, None], + [None, None, None, None, None, "Eleven", "I need to cool down again... BipBip...", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + # === Justin进入正题 === + [None, None, None, None, "Justin笑着摇头。", None, None, None, None], + [None, None, None, None, None, "Justin", "Okay okay. Let me help.", None, None], + [None, None, None, None, None, "Justin", "This is not hero change.", None, None], + [None, None, None, None, None, "Justin", "This is a dragon dance!", None, None], + [None, None, None, None, None, "Leo", "Dragon dance?", None, None], + [None, None, None, None, None, "Justin", "Yes! But first, you need to stand in a line.", None, None], + [None, None, None, None, None, "Justin", "Come! Everyone, stand in line!", None, None], + [None, None, None, None, "Leo第一个冲到最前面。", None, None, None, None], + [None, None, None, None, None, "Leo", "I'm number 1! I'm first in line!", None, None], + [None, None, None, None, "Ben排到Leo后面,Vicky排第三。", None, None, None, None], + [None, None, None, None, None, "Ben", "I'm number 2.", None, None], + [None, None, None, None, None, "Vicky", "And I'm number 3 in line.", None, None], + [None, None, None, None, None, "Justin", "Good! Now, number 1 does move 1.", None, None], + [None, None, None, None, None, "Justin", "Number 2 does move 2.", None, None], + [None, None, None, None, None, "Justin", "When you all move together, you look like a dragon!", None, None], + # === 中互动9:Line拖拽 === + ["中互动", None, None, None, "【教研图】教室场景,同学散乱站着。User把Leo拖到位置1、Ben到位置2、Vicky到位置3,排成一条line。完成后队列亮起。", None, None, None, None], + [None, None, None, None, None, "User", "Stand in line! Leo is 1, Ben is 2, Vicky is 3!", None, None], + # === Justin示范,Leo做不好 === + ["TL", None, None, None, "大家排好了。Justin走到队伍前方。", None, None, None, None], + [None, None, None, None, None, "Justin", "Number 1 is the dragon head.", None, None], + [None, None, None, None, None, "Justin", "The head move is very important.", None, None], + [None, None, None, None, None, "Justin", "Take me as an example.", None, None], + [None, None, None, None, None, "Justin", "Watch my head and arms.", None, None], + [None, None, None, None, "Justin做了一个流畅的龙头动作——抬头、双臂向前划。", None, None, None, None], + [None, None, None, None, None, "Leo", "Easy! Watch me!", None, None], + [None, None, None, None, "Leo尝试模仿,但做成了超人变身招式。", None, None, None, None], + [None, None, None, None, None, "Justin", "No no, not hero change!", None, None], + [None, None, None, None, "Leo再试一次,胳膊不协调地乱甩。", None, None, None, None], + [None, None, None, None, "【emoji】Leo emoji_sad", None, None, None, None], + [None, None, None, None, None, "Leo", "Hmm... it's hard.", None, None], + [None, None, None, None, "Justin看了一眼Vicky。", None, None, None, None], + [None, None, None, None, None, "Justin", "My Vicky's move is so good!", None, None], + [None, None, None, None, None, "Justin", "She's always the best!", None, None], + [None, None, None, None, "【emoji】Vicky emoji_shy", None, None, None, None], + [None, None, None, None, None, "Vicky", "Grandpa... not again...", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + # === 中互动10 === + ["中互动", None, None, None, None, "Justin", "Is Leo in the right place?", None, None], + [None, None, None, None, None, "User", "Leo is number 1 in line. But his move is wrong!", None, None], + # === Leo退出,User接替 === + ["TL", None, None, None, "Leo又试了一次,还是做不好。", None, None, None, None], + [None, None, None, None, None, "Leo", "Ahh... I can't do it.", None, None], + [None, None, None, None, None, "Leo", "I'm a Hero... not a Dragon.", None, None], + [None, None, None, None, None, "Leo", "Hero change is my thing!", None, None], + [None, None, None, None, "Leo从1号位退出来,有点失落。", None, None, None, None], + [None, None, None, None, None, "Ben", "It's okay Leo.", None, None], + [None, None, None, None, None, "Leo", "Someone better can be number 1.", None, None], + [None, None, None, None, "大家看向User。", None, None, None, None], + [None, None, None, None, None, "Justin", "We need a new number 1 in line.", None, None], + [None, None, None, None, None, "Justin", "Who wants to be the dragon head?", None, None], + # === 中互动11 === + ["中互动", None, None, None, None, "User", "I'll stand in line! I'm number 1!", None, None], + # === User做龙头 === + ["TL", None, None, None, "User站到队伍最前面。队伍变成:User 1号、Ben 2号、Vicky 3号。", None, None, None, None], + [None, None, None, None, None, "Justin", "Good! Now do the head move.", None, None], + [None, None, None, None, "Justin再次示范龙头动作。User跟着做,比Leo协调。", None, None, None, None], + [None, None, None, None, None, "Justin", "Yes! Very good!", None, None], + [None, None, None, None, "Leo在后面挥拳。", None, None, None, None], + [None, None, None, None, None, "Leo", "Go go go! Dragon head!", None, None], + [None, None, None, None, None, "Justin", "Everyone, follow the head. Move!", None, None], + [None, None, None, None, "大家跟着动起来,歪歪扭扭但有了雏形。", None, None, None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + [None, None, None, None, None, "Vicky", "We look so funny!", None, None], + [None, None, None, None, None, "Ben", "But it's working!", None, None], + # === 中互动12 === + ["中互动", None, None, None, None, "Leo", "How does it feel? Being the dragon head?", None, None], + [None, None, None, None, None, "User", "I'm the head of the line! Let's move together!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第3幕剧本_v2.xlsx" +wb.save(output_path) +print(f"OK: {output_path}") diff --git a/scripts/export_act4.py b/scripts/export_act4.py new file mode 100644 index 0000000..a564392 --- /dev/null +++ b/scripts/export_act4.py @@ -0,0 +1,45 @@ +import openpyxl +from openpyxl.styles import Font + +wb = openpyxl.Workbook() +ws = wb.active +ws.title = "第4幕剧本" + +col_widths = {"A": 18, "B": 8, "C": 10, "D": 10, "E": 55, "F": 15, "G": 55, "H": 10, "I": 15} +for col, w in col_widths.items(): + ws.column_dimensions[col].width = w + +headers = ["类型", "ID", "组件配置", "知识点", "剧情描述", "名字", "台词", "角色", "台词润色"] +bold = Font(bold=True) +for i, h in enumerate(headers, 1): + cell = ws.cell(row=1, column=i, value=h) + cell.font = bold + +rows = [ + ["TL", None, None, None, "Justin看着歪扭但在动的小龙,满意点头。", None, None, None, None], + [None, None, None, None, None, "Justin", "Very good! Take you as an example.", None, None], + [None, None, None, None, None, "Justin", "Your move is the best!", None, None], + [None, None, None, None, None, "Justin", "You are the dragon head!", None, None], + [None, None, None, None, None, "Leo", "Yeah! Dragon head!", None, None], + ["中互动", None, None, None, None, "Justin", "Tell everyone. Why are you the head?", None, None], + [None, None, None, None, None, "User", "Take me as an example! My move is the best!", None, None], + ["核心互动-听力拖拽", None, None, None, "【教研图】教室队列场景。Justin语音逐句说指令,User听后操作:① \"Stand in line!\"(拖角色排队)② \"Read the blackboard!\"(点击黑板对应动作)③ \"Take number 1 as an example!\"(选出龙头动作)。全部完成后,小龙动画动起来。", None, None, None, None], + ["TL", None, None, None, "小龙成功动起来!大家欢呼。", None, None, None, None], + [None, None, None, None, None, "Justin", "Well done!", None, None], + [None, None, None, None, None, "Justin", "Next time, we make a real dragon!", None, None], + [None, None, None, None, None, "Justin", "And give it a cool Chinese name!", None, None], + [None, None, None, None, None, "Leo", "I have a name! Earthman Dragon!", None, None], + [None, None, None, None, "【emoji】全班 emoji_laugh", None, None, None, None], + [None, None, None, None, None, "Vicky", "That's not Chinese, Leo...", None, None], + ["中互动", None, None, None, None, "Justin", "What did we learn today?", None, None], + [None, None, None, None, None, "User", "We stand in line and dance like a dragon! Take us as an example!", None, None], +] + +for r_idx, row in enumerate(rows, 2): + for c_idx, val in enumerate(row, 1): + if val is not None: + ws.cell(row=r_idx, column=c_idx, value=val) + +output_path = "/root/.openclaw/workspace-xiaobian/output/U18_L2_第4幕剧本.xlsx" +wb.save(output_path) +print(f"OK: {output_path}")