webtalekit-alpha 0.2.11 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.clinerules +65 -0
  3. package/.history/README_20240812174230.md +193 -0
  4. package/.history/README_20240812175424.md +185 -0
  5. package/.history/README_20240812191012.md +185 -0
  6. package/.history/README_20240812191155.md +185 -0
  7. package/.history/README_20240812191211.md +185 -0
  8. package/.history/README_20240812192035.md +185 -0
  9. package/.history/dist/src/core/index_20240815021552.js +474 -0
  10. package/.history/dist/src/core/index_20240815022042.js +476 -0
  11. package/.history/dist/src/core/index_20240815022206.js +476 -0
  12. package/.history/dist/src/core/index_20240815023104.js +478 -0
  13. package/.history/dist/src/core/index_20240817022019.js +494 -0
  14. package/.history/dist/src/core/index_20240818013827.js +493 -0
  15. package/.history/dist/src/core/index_20240820001418.js +502 -0
  16. package/.history/package_20240812174230.json +45 -0
  17. package/.history/package_20240825011731.json +45 -0
  18. package/.history/package_20240825011739.json +44 -0
  19. package/.history/parser/parser_20240812174230.js +50 -0
  20. package/.history/parser/parser_20240825012739.js +47 -0
  21. package/.history/parser/parser_20240825012835.js +52 -0
  22. package/.history/src/core/drawer_20240813091343.ts +262 -0
  23. package/.history/src/core/drawer_20240815232345.ts +262 -0
  24. package/.history/src/core/drawer_20240815232350.ts +262 -0
  25. package/.history/src/core/drawer_20240816025257.ts +357 -0
  26. package/.history/src/core/drawer_20240816025358.ts +357 -0
  27. package/.history/src/core/drawer_20240816030148.ts +365 -0
  28. package/.history/src/core/drawer_20240816231033.ts +294 -0
  29. package/.history/src/core/drawer_20240816231107.ts +262 -0
  30. package/.history/src/core/drawer_20240816231234.ts +268 -0
  31. package/.history/src/core/drawer_20240817013836.ts +290 -0
  32. package/.history/src/core/drawer_20240817015150.ts +289 -0
  33. package/.history/src/core/drawer_20240817015353.ts +290 -0
  34. package/.history/src/core/drawer_20240817021254.ts +291 -0
  35. package/.history/src/core/drawer_20240817023440.ts +295 -0
  36. package/.history/src/core/drawer_20240817023445.ts +295 -0
  37. package/.history/src/core/drawer_20240818015327.ts +295 -0
  38. package/.history/src/core/drawer_20240819231006.ts +318 -0
  39. package/.history/src/core/drawer_20240820002829.ts +317 -0
  40. package/.history/src/core/drawer_20240820003141.ts +295 -0
  41. package/.history/src/core/drawer_20240824010043.ts +295 -0
  42. package/.history/src/core/drawer_20240825013311.ts +293 -0
  43. package/.history/src/core/drawer_20240902235257.ts +295 -0
  44. package/.history/src/core/drawer_20240904002038.ts +262 -0
  45. package/.history/src/core/drawer_20240904004020.ts +262 -0
  46. package/.history/src/core/drawer_20240904004238.ts +262 -0
  47. package/.history/src/core/drawer_20240904005648.ts +262 -0
  48. package/.history/src/core/drawer_20240904005808.ts +262 -0
  49. package/.history/src/core/drawer_20240904010523.ts +262 -0
  50. package/.history/src/core/drawer_20240904011611.ts +262 -0
  51. package/.history/src/core/drawer_20240904011740.ts +262 -0
  52. package/.history/src/core/index_20240812190102.js +443 -0
  53. package/.history/src/core/index_20240812190105.js +443 -0
  54. package/.history/src/core/index_20240812205421.js +452 -0
  55. package/.history/src/core/index_20240812213441.js +452 -0
  56. package/.history/src/core/index_20240812214203.js +453 -0
  57. package/.history/src/core/index_20240813090823.js +453 -0
  58. package/.history/src/core/index_20240813230449.js +452 -0
  59. package/.history/src/core/index_20240813230539.js +452 -0
  60. package/.history/src/core/index_20240813231447.js +453 -0
  61. package/.history/src/core/index_20240813231449.js +453 -0
  62. package/.history/src/core/index_20240813231511.js +453 -0
  63. package/.history/src/core/index_20240813231531.js +453 -0
  64. package/.history/src/core/index_20240813231913.js +453 -0
  65. package/.history/src/core/index_20240813232356.js +453 -0
  66. package/.history/src/core/index_20240813232640.js +453 -0
  67. package/.history/src/core/index_20240813232900.js +453 -0
  68. package/.history/src/core/index_20240814221127.js +454 -0
  69. package/.history/src/core/index_20240814221322.js +454 -0
  70. package/.history/src/core/index_20240814221526.js +454 -0
  71. package/.history/src/core/index_20240814222048.js +454 -0
  72. package/.history/src/core/index_20240814222918.js +459 -0
  73. package/.history/src/core/index_20240814223136.js +459 -0
  74. package/.history/src/core/index_20240814223501.js +464 -0
  75. package/.history/src/core/index_20240814224347.js +468 -0
  76. package/.history/src/core/index_20240815013712.js +474 -0
  77. package/.history/src/core/index_20240815021534.js +474 -0
  78. package/.history/src/core/index_20240815023143.js +477 -0
  79. package/.history/src/core/index_20240815023207.js +479 -0
  80. package/.history/src/core/index_20240815023344.js +481 -0
  81. package/.history/src/core/index_20240815035600.js +479 -0
  82. package/.history/src/core/index_20240815041549.js +480 -0
  83. package/.history/src/core/index_20240815185515.js +481 -0
  84. package/.history/src/core/index_20240815192158.js +481 -0
  85. package/.history/src/core/index_20240815222912.js +482 -0
  86. package/.history/src/core/index_20240815224052.js +483 -0
  87. package/.history/src/core/index_20240815224843.js +484 -0
  88. package/.history/src/core/index_20240815224850.js +483 -0
  89. package/.history/src/core/index_20240815231706.js +479 -0
  90. package/.history/src/core/index_20240816025748.js +483 -0
  91. package/.history/src/core/index_20240816030102.js +484 -0
  92. package/.history/src/core/index_20240817013329.js +485 -0
  93. package/.history/src/core/index_20240817013526.js +485 -0
  94. package/.history/src/core/index_20240817013819.js +488 -0
  95. package/.history/src/core/index_20240817013829.js +488 -0
  96. package/.history/src/core/index_20240817014921.js +494 -0
  97. package/.history/src/core/index_20240817022057.js +494 -0
  98. package/.history/src/core/index_20240817023316.js +493 -0
  99. package/.history/src/core/index_20240818005637.js +493 -0
  100. package/.history/src/core/index_20240818005721.js +493 -0
  101. package/.history/src/core/index_20240818011804.js +493 -0
  102. package/.history/src/core/index_20240818013835.js +493 -0
  103. package/.history/src/core/index_20240818014310.js +493 -0
  104. package/.history/src/core/index_20240818014323.js +493 -0
  105. package/.history/src/core/index_20240818014333.js +493 -0
  106. package/.history/src/core/index_20240818020725.js +496 -0
  107. package/.history/src/core/index_20240819195504.js +497 -0
  108. package/.history/src/core/index_20240819202012.js +495 -0
  109. package/.history/src/core/index_20240819231228.js +501 -0
  110. package/.history/src/core/index_20240819232555.js +502 -0
  111. package/.history/src/core/index_20240819233404.js +502 -0
  112. package/.history/src/core/index_20240820003114.js +495 -0
  113. package/.history/src/core/index_20240820003120.js +495 -0
  114. package/.history/src/core/index_20240820003331.js +495 -0
  115. package/.history/src/core/index_20240820004126.js +498 -0
  116. package/.history/src/core/index_20240820004357.js +497 -0
  117. package/.history/src/core/index_20240820005103.js +498 -0
  118. package/.history/src/core/index_20240820005110.js +499 -0
  119. package/.history/src/core/index_20240820005206.js +497 -0
  120. package/.history/src/core/index_20240820005352.js +497 -0
  121. package/{src/core/index.js → .history/src/core/index_20240823224904.ts} +75 -231
  122. package/.history/src/core/index_20240823224905.js +505 -0
  123. package/.history/src/core/index_20240823231631.ts +530 -0
  124. package/.history/src/core/index_20240823231735.ts +530 -0
  125. package/.history/src/core/index_20240823232123.ts +539 -0
  126. package/.history/src/core/index_20240823232329.ts +539 -0
  127. package/.history/src/core/index_20240823233058.ts +539 -0
  128. package/.history/src/core/index_20240823234946.ts +539 -0
  129. package/.history/src/core/index_20240824005956.ts +534 -0
  130. package/.history/src/core/index_20240824010113.ts +534 -0
  131. package/.history/src/core/index_20240824010124.ts +534 -0
  132. package/.history/src/core/index_20240824010212.ts +534 -0
  133. package/.history/src/core/index_20240824010218.ts +534 -0
  134. package/.history/src/core/index_20240824010407.ts +534 -0
  135. package/.history/src/core/index_20240824010611.ts +534 -0
  136. package/.history/src/core/index_20240824010623.ts +534 -0
  137. package/.history/src/core/index_20240824010652.ts +534 -0
  138. package/.history/src/core/index_20240824011007.ts +534 -0
  139. package/.history/src/core/index_20240824210450.ts +534 -0
  140. package/.history/src/core/index_20240824210703.ts +534 -0
  141. package/.history/src/core/index_20240824210708.ts +534 -0
  142. package/.history/src/core/index_20240824211001.ts +537 -0
  143. package/.history/src/core/index_20240824211258.ts +537 -0
  144. package/.history/src/core/index_20240824211654.ts +537 -0
  145. package/.history/src/core/index_20240824211723.ts +537 -0
  146. package/.history/src/core/index_20240824211808.ts +538 -0
  147. package/.history/src/core/index_20240824214041.js +538 -0
  148. package/.history/src/core/index_20240824215312.ts +538 -0
  149. package/.history/src/core/index_20240824215341.ts +538 -0
  150. package/.history/src/core/index_20240824220703.ts +538 -0
  151. package/.history/src/core/index_20240824220709.ts +538 -0
  152. package/.history/src/core/index_20240825012244.ts +536 -0
  153. package/.history/src/core/index_20240825012435.ts +539 -0
  154. package/.history/src/core/index_20240825012440.ts +539 -0
  155. package/.history/src/core/index_20240826005054.ts +539 -0
  156. package/.history/src/core/index_20240826005321.ts +540 -0
  157. package/.history/src/core/index_20240826005410.ts +539 -0
  158. package/.history/src/core/index_20240826005418.ts +539 -0
  159. package/.history/src/core/index_20240830231825.ts +539 -0
  160. package/.history/src/core/index_20240831022416.ts +539 -0
  161. package/.history/src/core/index_20240901222314.js +459 -0
  162. package/.history/src/core/index_20240901222951.js +459 -0
  163. package/.history/src/core/index_20240901223824.js +471 -0
  164. package/.history/src/core/index_20240901223833.js +468 -0
  165. package/.history/src/core/index_20240902223954.js +447 -0
  166. package/.history/src/core/index_20240902224000.js +446 -0
  167. package/.history/src/core/index_20240902230345.js +448 -0
  168. package/.history/src/core/index_20240902231130.js +449 -0
  169. package/.history/src/core/index_20240902231559.js +449 -0
  170. package/.history/src/core/index_20240902232135.js +449 -0
  171. package/.history/src/core/index_20240902232809.js +452 -0
  172. package/.history/src/core/index_20240902232815.js +452 -0
  173. package/.history/src/core/index_20240903000104.js +467 -0
  174. package/.history/src/core/index_20240904001731.js +444 -0
  175. package/.history/src/core/index_20240904002038.ts +539 -0
  176. package/.history/src/core/index_20240904011848.js +444 -0
  177. package/.history/src/core/index_20240904012138.js +444 -0
  178. package/.history/src/core/index_20240904012743.js +444 -0
  179. package/.history/src/core/index_20240904013051.js +444 -0
  180. package/.history/src/core/resourceManager_20240403231531.ts +16 -0
  181. package/.history/src/core/resourceManager_20240823232627.ts +17 -0
  182. package/.history/src/core/resourceManager_20240824214014.js +16 -0
  183. package/.history/src/core/resourceManager_20240824214620.js +17 -0
  184. package/.history/src/core/scenarioManager_20240812203410.ts +86 -0
  185. package/.history/src/core/scenarioManager_20240812203839.ts +94 -0
  186. package/.history/src/core/scenarioManager_20240812213437.ts +85 -0
  187. package/.history/src/core/scenarioManager_20240813225852.ts +85 -0
  188. package/.history/src/core/scenarioManager_20240823235010.ts +85 -0
  189. package/.history/src/core/scenarioManager_20240904002038.ts +94 -0
  190. package/.history/src/core/scenarioManager_20240904012411.ts +94 -0
  191. package/.history/src/core/scenarioManager_20240904012519.ts +94 -0
  192. package/.history/src/index_20240403231531.js +6 -0
  193. package/.history/src/index_20240429233436.js +8 -0
  194. package/.history/src/index_20240429233926.js +8 -0
  195. package/.history/src/index_20240429234401.js +7 -0
  196. package/.history/src/index_20240429234404.js +6 -0
  197. package/.history/src/resource/soundObject_20240419004314.ts +71 -0
  198. package/.history/src/resource/soundObject_20240815034420.ts +66 -0
  199. package/.history/src/resource/soundObject_20240815034836.ts +79 -0
  200. package/.history/src/resource/soundObject_20240815034919.ts +87 -0
  201. package/.history/src/resource/soundObject_20240815040724.ts +81 -0
  202. package/.history/src/resource/soundObject_20240815041022.ts +87 -0
  203. package/.history/src/resource/soundObject_20240815042103.ts +87 -0
  204. package/.history/src/resource/soundObject_20240823235929.ts +91 -0
  205. package/.history/src/resource/soundObject_20240824213129.ts +99 -0
  206. package/.history/src/resource/soundObject_20240824213611.ts +101 -0
  207. package/.history/src/resource/soundObject_20240824215734.ts +101 -0
  208. package/.history/src/resource/soundObject_20240825004926.ts +101 -0
  209. package/.history/src/resource/soundObject_20240825004947.ts +101 -0
  210. package/.history/src/utils/logger_20240812174230.ts +13 -0
  211. package/.history/src/utils/logger_20240823232736.ts +14 -0
  212. package/.history/src/utils/logger_20240824214930.js +14 -0
  213. package/.history/src/utils/store_20240812174230.ts +17 -0
  214. package/.history/src/utils/store_20240823232948.ts +29 -0
  215. package/.history/src/utils/store_20240824214020.js +17 -0
  216. package/.history/src/utils/store_20240824214955.js +29 -0
  217. package/.history/src/utils/waitUtil_20240812174230.ts +4 -0
  218. package/.history/src/utils/waitUtil_20240823232739.ts +4 -0
  219. package/.history/src/utils/waitUtil_20240824214024.js +4 -0
  220. package/.history/src/utils/waitUtil_20240824215009.js +4 -0
  221. package/.history/test/js/title_20240428215305.js +254 -0
  222. package/.history/test/js/title_20240429221911.js +227 -0
  223. package/.history/test/js/title_20240429222806.js +243 -0
  224. package/.history/test/js/title_20240429222854.js +263 -0
  225. package/.history/test/js/title_20240429222906.js +263 -0
  226. package/.history/test/js/title_20240429235639.js +263 -0
  227. package/.history/test/js/title_20240429235840.js +263 -0
  228. package/.history/test/js/title_20240430014721.js +262 -0
  229. package/.history/test/js/title_20240430014759.js +254 -0
  230. package/.history/test/js/title_20240430134612.js +285 -0
  231. package/.history/test/js/title_20240430141051.js +285 -0
  232. package/.history/test/js/title_20240430173745.js +245 -0
  233. package/.history/tsconfig_20240812174230.json +22 -0
  234. package/.history/tsconfig_20240824010157.json +19 -0
  235. package/.history/tsconfig_20240824220700.json +20 -0
  236. package/.history/tsconfig_20240825011301.json +20 -0
  237. package/.history/webpack.config_20240423002825.js +37 -0
  238. package/.history/webpack.config_20240430001157.js +38 -0
  239. package/.history/webpack.config_20240430001309.js +37 -0
  240. package/.history/webpack.config_20240430002112.js +37 -0
  241. package/CLAUDE.md +96 -0
  242. package/LICENSE +21 -0
  243. package/README.md +108 -39
  244. package/coverage/lcov-report/base.css +224 -0
  245. package/coverage/lcov-report/block-navigation.js +87 -0
  246. package/coverage/lcov-report/core/drawer.ts.html +1264 -0
  247. package/coverage/lcov-report/core/index.html +146 -0
  248. package/coverage/lcov-report/core/resourceManager.ts.html +136 -0
  249. package/coverage/lcov-report/core/scenarioManager.ts.html +373 -0
  250. package/coverage/lcov-report/favicon.png +0 -0
  251. package/coverage/lcov-report/index.html +146 -0
  252. package/coverage/lcov-report/prettify.css +1 -0
  253. package/coverage/lcov-report/prettify.js +2 -0
  254. package/coverage/lcov-report/resource/ImageObject.ts.html +433 -0
  255. package/coverage/lcov-report/resource/index.html +131 -0
  256. package/coverage/lcov-report/resource/soundObject.ts.html +346 -0
  257. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  258. package/coverage/lcov-report/sorter.js +196 -0
  259. package/coverage/lcov-report/utils/TextMeasurer.ts.html +520 -0
  260. package/coverage/lcov-report/utils/index.html +161 -0
  261. package/coverage/lcov-report/utils/logger.ts.html +142 -0
  262. package/coverage/lcov-report/utils/store.ts.html +151 -0
  263. package/coverage/lcov-report/utils/waitUtil.ts.html +97 -0
  264. package/coverage/lcov.info +882 -0
  265. package/dist/README.md +294 -0
  266. package/dist/engineConfig.json +10 -0
  267. package/dist/package.json +51 -0
  268. package/dist/parser/cli.js +61 -0
  269. package/dist/parser/parser.js +53 -0
  270. package/{src → dist/src}/core/drawer.js +0 -9
  271. package/dist/src/core/drawer.js.map +1 -0
  272. package/dist/src/core/index.js +969 -0
  273. package/{src → dist/src}/core/scenarioManager.js +5 -6
  274. package/dist/src/core/scenarioManager.js.map +1 -0
  275. package/{src → dist/src}/resource/soundObject.js +4 -2
  276. package/dist/src/resource/soundObject.js.map +1 -0
  277. package/dist/src/utils/fallbackTemplate.js +13 -0
  278. package/dist/src/utils/fallbackTemplate.js.map +1 -0
  279. package/dist/webtalekit-alpha-0.2.13.tgz +0 -0
  280. package/docs/event-system-specification.md +493 -0
  281. package/docs/glossary.html +833 -0
  282. package/docs/index.html +296 -0
  283. package/docs/tag-reference.html +1317 -0
  284. package/docs/ui-template-guide.html +1068 -0
  285. package/example/README.md +29 -0
  286. package/example/engineConfig.json +10 -0
  287. package/example/package-lock.json +5145 -0
  288. package/example/package.json +26 -0
  289. package/example/src/index.js +13 -0
  290. package/example/src/resource/background/beach.jpg +0 -0
  291. package/example/src/resource/background/city.jpg +0 -0
  292. package/example/src/resource/background/crossroad.jpg +0 -0
  293. package/example/src/resource/background/forest.jpg +0 -0
  294. package/example/src/resource/background/laboratory.jpg +0 -0
  295. package/example/src/resource/background/library.jpg +0 -0
  296. package/example/src/resource/background/living_room.jpg +0 -0
  297. package/example/src/resource/background/music_room.jpg +0 -0
  298. package/example/src/resource/background/stage.jpg +0 -0
  299. package/example/src/resource/background/sunset.jpg +0 -0
  300. package/example/src/resource/background/title_bg.png +0 -0
  301. package/example/src/resource/bgm/calm_music.wav +0 -0
  302. package/example/src/resource/bgm/doorbell.mp3 +0 -0
  303. package/example/src/resource/bgm/nc366476_Virtual_Voyage.mp3 +0 -0
  304. package/example/src/resource/bgm/title_theme.mp3 +0 -0
  305. package/example/src/resource/chara/dancer.png +0 -0
  306. package/example/src/resource/chara/guest.png +0 -0
  307. package/example/src/resource/chara/guide.png +0 -0
  308. package/example/src/resource/chara/scientist.png +0 -0
  309. package/example/src/resource/config.js +0 -0
  310. package/example/src/resource/se/doorbell.mp3 +0 -0
  311. package/example/src/resource/system/systemPicture/01_message/message.png +0 -0
  312. package/example/src/resource/system/systemPicture/02_button/button.png +0 -0
  313. package/example/src/resource/system/systemPicture/02_button/button2.png +0 -0
  314. package/example/src/resource/system/systemPicture/02_button/button3.png +0 -0
  315. package/example/src/resource/system/systemPicture/03_system_button/auto.png +0 -0
  316. package/example/src/resource/system/systemPicture/03_system_button/auto2.png +0 -0
  317. package/example/src/resource/system/systemPicture/03_system_button/close.png +0 -0
  318. package/example/src/resource/system/systemPicture/03_system_button/close2.png +0 -0
  319. package/example/src/resource/system/systemPicture/03_system_button/config.png +0 -0
  320. package/example/src/resource/system/systemPicture/03_system_button/config2.png +0 -0
  321. package/example/src/resource/system/systemPicture/03_system_button/load.png +0 -0
  322. package/example/src/resource/system/systemPicture/03_system_button/load2.png +0 -0
  323. package/example/src/resource/system/systemPicture/03_system_button/log.png +0 -0
  324. package/example/src/resource/system/systemPicture/03_system_button/log2.png +0 -0
  325. package/example/src/resource/system/systemPicture/03_system_button/menu.png +0 -0
  326. package/example/src/resource/system/systemPicture/03_system_button/menu2.png +0 -0
  327. package/example/src/resource/system/systemPicture/03_system_button/qload.png +0 -0
  328. package/example/src/resource/system/systemPicture/03_system_button/qload2.png +0 -0
  329. package/example/src/resource/system/systemPicture/03_system_button/qsave.png +0 -0
  330. package/example/src/resource/system/systemPicture/03_system_button/qsave2.png +0 -0
  331. package/example/src/resource/system/systemPicture/03_system_button/save.png +0 -0
  332. package/example/src/resource/system/systemPicture/03_system_button/save2.png +0 -0
  333. package/example/src/resource/system/systemPicture/03_system_button/screen.png +0 -0
  334. package/example/src/resource/system/systemPicture/03_system_button/screen2.png +0 -0
  335. package/example/src/resource/system/systemPicture/03_system_button/skip.png +0 -0
  336. package/example/src/resource/system/systemPicture/03_system_button/skip2.png +0 -0
  337. package/example/src/resource/system/systemPicture/03_system_button/title.png +0 -0
  338. package/example/src/resource/system/systemPicture/03_system_button/title2.png +0 -0
  339. package/example/src/resource/system/systemPicture//345/210/251/347/224/250/350/246/217/347/264/204.txt +0 -0
  340. package/example/src/resource/system/wait.gif +0 -0
  341. package/example/src/scene/animation.scene +28 -0
  342. package/example/src/scene/background.scene +29 -0
  343. package/example/src/scene/character.scene +26 -0
  344. package/example/src/scene/choice.scene +97 -0
  345. package/example/src/scene/dialog.scene +105 -0
  346. package/example/src/scene/effects.scene +38 -0
  347. package/example/src/scene/en/animation.scene +28 -0
  348. package/example/src/scene/en/background.scene +26 -0
  349. package/example/src/scene/en/character.scene +26 -0
  350. package/example/src/scene/en/choice.scene +32 -0
  351. package/example/src/scene/en/effects.scene +37 -0
  352. package/example/src/scene/en/sound.scene +26 -0
  353. package/example/src/scene/en/text.scene +26 -0
  354. package/example/src/scene/en/title.scene +39 -0
  355. package/example/src/scene/if_test.scene +37 -0
  356. package/example/src/scene/resource-error-test.scene +15 -0
  357. package/example/src/scene/save-load-test.scene +48 -0
  358. package/example/src/scene/sound.scene +26 -0
  359. package/example/src/scene/test_error.scene +21 -0
  360. package/example/src/scene/text.scene +34 -0
  361. package/example/src/scene/title.scene +51 -0
  362. package/example/src/screen/incoming.html +474 -0
  363. package/example/src/screen/title.html +135 -0
  364. package/example/src/template.html +16 -0
  365. package/example/test-results/.last-run.json +4 -0
  366. package/example/webpack.config.js +69 -0
  367. package/image.png +0 -0
  368. package/package.json +3 -1
  369. package/playwright-report/index.html +71 -0
  370. package/s-plan1-5Light-s-1.jpg +0 -0
  371. package/test-results/.last-run.json +6 -0
  372. package/tests/e2e/if-global-attribute.spec.js +90 -0
  373. package/tests/e2e/resource-error-handling.spec.js +58 -0
  374. package/tests/e2e/screenshots/before-error-check.png +0 -0
  375. package/tests/e2e/screenshots/choices.png +0 -0
  376. package/tests/e2e/screenshots/message-window-click-wait.png +0 -0
  377. package/src/core/drawer.js.map +0 -1
  378. package/src/core/scenarioManager.js.map +0 -1
  379. package/src/resource/soundObject.js.map +0 -1
  380. /package/{src → dist/src}/core/resourceManager.js +0 -0
  381. /package/{src → dist/src}/core/resourceManager.js.map +0 -0
  382. /package/{src → dist/src}/resource/ImageObject.js +0 -0
  383. /package/{src → dist/src}/resource/ImageObject.js.map +0 -0
  384. /package/{src → dist/src}/utils/logger.js +0 -0
  385. /package/{src → dist/src}/utils/logger.js.map +0 -0
  386. /package/{src → dist/src}/utils/store.js +0 -0
  387. /package/{src → dist/src}/utils/store.js.map +0 -0
  388. /package/{src → dist/src}/utils/waitUtil.js +0 -0
  389. /package/{src → dist/src}/utils/waitUtil.js.map +0 -0
@@ -0,0 +1,833 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ja">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>webTaleKit 用語集</title>
7
+ <style>
8
+ body {
9
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
10
+ line-height: 1.6;
11
+ margin: 0;
12
+ padding: 0;
13
+ background: linear-gradient(135deg, #87CEEB 0%, #4169E1 50%, #1E90FF 100%);
14
+ color: #333;
15
+ }
16
+ .container {
17
+ max-width: 1400px;
18
+ margin: 0 auto;
19
+ padding: 20px;
20
+ background: rgba(255, 255, 255, 0.95);
21
+ border-radius: 15px;
22
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
23
+ margin-top: 20px;
24
+ margin-bottom: 20px;
25
+ }
26
+ .main-layout {
27
+ display: flex;
28
+ gap: 20px;
29
+ }
30
+ .sidebar {
31
+ flex: 0 0 280px;
32
+ background: white;
33
+ border-radius: 10px;
34
+ padding: 20px;
35
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
36
+ position: sticky;
37
+ top: 20px;
38
+ height: fit-content;
39
+ max-height: calc(100vh - 40px);
40
+ overflow-y: auto;
41
+ }
42
+ .content {
43
+ flex: 1;
44
+ min-width: 0;
45
+ }
46
+ h1 {
47
+ text-align: center;
48
+ color: #2c3e50;
49
+ font-size: 2.5em;
50
+ margin-bottom: 30px;
51
+ text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
52
+ }
53
+ .intro {
54
+ background: #f8f9fa;
55
+ padding: 20px;
56
+ border-radius: 10px;
57
+ margin-bottom: 30px;
58
+ border-left: 5px solid #3498db;
59
+ }
60
+ .nav {
61
+ background: #34495e;
62
+ padding: 15px;
63
+ border-radius: 10px;
64
+ margin-bottom: 20px;
65
+ }
66
+ .nav h3 {
67
+ color: white;
68
+ margin: 0 0 15px 0;
69
+ font-size: 1.2em;
70
+ border-bottom: 1px solid #4a5f7a;
71
+ padding-bottom: 10px;
72
+ }
73
+ .nav ul {
74
+ list-style: none;
75
+ padding: 0;
76
+ margin: 0;
77
+ display: flex;
78
+ flex-direction: column;
79
+ gap: 5px;
80
+ }
81
+ .nav li {
82
+ background: transparent;
83
+ border-radius: 5px;
84
+ border-left: 3px solid transparent;
85
+ transition: all 0.3s;
86
+ }
87
+ .nav li:hover {
88
+ border-left-color: #3498db;
89
+ background: rgba(52, 152, 219, 0.1);
90
+ }
91
+ .nav a {
92
+ color: #ecf0f1;
93
+ text-decoration: none;
94
+ padding: 8px 15px;
95
+ display: block;
96
+ transition: color 0.3s;
97
+ font-size: 0.95em;
98
+ }
99
+ .nav a:hover {
100
+ color: #3498db;
101
+ }
102
+ .section {
103
+ background: white;
104
+ margin-bottom: 25px;
105
+ padding: 25px;
106
+ border-radius: 10px;
107
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
108
+ }
109
+ .category-section {
110
+ border-left: 5px solid #e74c3c;
111
+ }
112
+ .section-title {
113
+ font-size: 1.8em;
114
+ font-weight: bold;
115
+ color: #e74c3c;
116
+ margin-bottom: 20px;
117
+ border-bottom: 2px solid #ecf0f1;
118
+ padding-bottom: 10px;
119
+ }
120
+ .term-item {
121
+ background: #f8f9fa;
122
+ border-radius: 8px;
123
+ padding: 20px;
124
+ margin-bottom: 20px;
125
+ border-left: 4px solid #3498db;
126
+ transition: all 0.3s ease;
127
+ }
128
+ .term-item:hover {
129
+ border-left-color: #e74c3c;
130
+ box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
131
+ }
132
+ .term-name {
133
+ font-size: 1.3em;
134
+ font-weight: bold;
135
+ color: #2c3e50;
136
+ margin-bottom: 8px;
137
+ }
138
+ .term-english {
139
+ color: #7f8c8d;
140
+ font-size: 0.9em;
141
+ margin-bottom: 12px;
142
+ font-style: italic;
143
+ }
144
+ .term-description {
145
+ color: #555;
146
+ line-height: 1.7;
147
+ margin-bottom: 15px;
148
+ }
149
+ .term-example {
150
+ background: #2c3e50;
151
+ color: #ecf0f1;
152
+ padding: 12px 15px;
153
+ border-radius: 5px;
154
+ font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
155
+ font-size: 0.9em;
156
+ margin-top: 10px;
157
+ border-left: 3px solid #3498db;
158
+ }
159
+ .term-related {
160
+ margin-top: 15px;
161
+ padding-top: 15px;
162
+ border-top: 1px solid #e0e0e0;
163
+ }
164
+ .term-related strong {
165
+ color: #2c3e50;
166
+ }
167
+ .related-link {
168
+ color: #3498db;
169
+ text-decoration: none;
170
+ margin-right: 10px;
171
+ }
172
+ .related-link:hover {
173
+ text-decoration: underline;
174
+ }
175
+ .back-to-top {
176
+ position: fixed;
177
+ bottom: 20px;
178
+ right: 20px;
179
+ background: #3498db;
180
+ color: white;
181
+ padding: 10px 15px;
182
+ border-radius: 50px;
183
+ text-decoration: none;
184
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
185
+ transition: all 0.3s;
186
+ }
187
+ .back-to-top:hover {
188
+ background: #2980b9;
189
+ transform: translateY(-2px);
190
+ }
191
+ .search-box {
192
+ background: white;
193
+ border-radius: 8px;
194
+ padding: 15px;
195
+ margin-bottom: 20px;
196
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
197
+ }
198
+ .search-input {
199
+ width: 100%;
200
+ padding: 10px;
201
+ border: 1px solid #ddd;
202
+ border-radius: 5px;
203
+ font-size: 16px;
204
+ }
205
+ .search-input:focus {
206
+ outline: none;
207
+ border-color: #3498db;
208
+ box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
209
+ }
210
+ @media (max-width: 1024px) {
211
+ .main-layout {
212
+ flex-direction: column;
213
+ }
214
+ .sidebar {
215
+ flex: none;
216
+ position: static;
217
+ max-height: none;
218
+ margin-bottom: 20px;
219
+ }
220
+ .nav ul {
221
+ display: flex;
222
+ flex-direction: row;
223
+ flex-wrap: wrap;
224
+ gap: 10px;
225
+ }
226
+ .nav li {
227
+ background: #3498db;
228
+ border-left: none;
229
+ }
230
+ .nav a {
231
+ color: white;
232
+ padding: 8px 15px;
233
+ }
234
+ .nav a:hover {
235
+ background: rgba(255, 255, 255, 0.2);
236
+ color: white;
237
+ }
238
+ }
239
+ @media (max-width: 768px) {
240
+ .container {
241
+ margin: 10px;
242
+ padding: 15px;
243
+ }
244
+ }
245
+ </style>
246
+ </head>
247
+ <body>
248
+ <div class="container">
249
+ <h1>webTaleKit 用語集</h1>
250
+
251
+ <div class="intro">
252
+ <h2>概要</h2>
253
+ <p>webTaleKitに関連する専門用語と概念を五十音順で解説しています。ビジュアルノベル開発における重要な概念やエンジン固有の機能について理解を深めることができます。</p>
254
+ <p>各用語には詳細な説明、使用例、関連用語への参照が含まれています。</p>
255
+ </div>
256
+
257
+ <div class="main-layout">
258
+ <aside class="sidebar">
259
+ <div class="search-box">
260
+ <input type="text" class="search-input" id="searchInput" placeholder="用語を検索...">
261
+ </div>
262
+ <nav class="nav">
263
+ <h3>カテゴリー</h3>
264
+ <ul>
265
+ <li><a href="#architecture">システム構成</a></li>
266
+ <li><a href="#scripting">スクリプト・言語</a></li>
267
+ <li><a href="#resources">リソース管理</a></li>
268
+ <li><a href="#ui">UI・表示</a></li>
269
+ <li><a href="#audio">音響</a></li>
270
+ <li><a href="#development">開発・ビルド</a></li>
271
+ </ul>
272
+ </nav>
273
+ </aside>
274
+ <main class="content">
275
+
276
+ <section id="architecture" class="section category-section">
277
+ <div class="section-title">システム構成</div>
278
+
279
+ <div class="term-item" data-term="core">
280
+ <div class="term-name">Core(コア)</div>
281
+ <div class="term-english">Core Class</div>
282
+ <div class="term-description">
283
+ webTaleKitエンジンの中核となるクラス。ゲーム全体の制御、シナリオ実行、各種ハンドラーの管理を行います。全てのタグ処理は最終的にCoreクラスのメソッドで実行されます。
284
+ </div>
285
+ <div class="term-example">
286
+ const core = new Core()
287
+ await core.start('title')
288
+ </div>
289
+ <div class="term-related">
290
+ <strong>関連用語:</strong>
291
+ <a href="#drawer" class="related-link">Drawer</a>
292
+ <a href="#scenariomanager" class="related-link">ScenarioManager</a>
293
+ <a href="#resourcemanager" class="related-link">ResourceManager</a>
294
+ </div>
295
+ </div>
296
+
297
+ <div class="term-item" data-term="drawer">
298
+ <div class="term-name">Drawer(描画エンジン)</div>
299
+ <div class="term-english">Drawer Class</div>
300
+ <div class="term-description">
301
+ Canvas要素への描画処理を担当するクラス。キャラクターや背景画像の表示、テキスト描画、フェード効果、画像移動などの視覚的な演出を管理します。
302
+ </div>
303
+ <div class="term-example">
304
+ this.drawer = new Drawer(gameContainer)
305
+ this.drawer.drawText('Hello World', 25)
306
+ </div>
307
+ <div class="term-related">
308
+ <strong>関連用語:</strong>
309
+ <a href="#canvas-layer" class="related-link">キャンバスレイヤー</a>
310
+ <a href="#imageobject" class="related-link">ImageObject</a>
311
+ </div>
312
+ </div>
313
+
314
+ <div class="term-item" data-term="scenariomanager">
315
+ <div class="term-name">ScenarioManager(シナリオ管理)</div>
316
+ <div class="term-english">ScenarioManager Class</div>
317
+ <div class="term-description">
318
+ シナリオの進行状況、履歴管理、インデックス制御を担当するクラス。jumpタグによる分岐制御や、プレイヤーの選択結果の記録などを行います。
319
+ </div>
320
+ <div class="term-example">
321
+ scenarioManager.setScenario(scenario)
322
+ scenarioManager.next()
323
+ </div>
324
+ <div class="term-related">
325
+ <strong>関連用語:</strong>
326
+ <a href="#scenario-object" class="related-link">Scenarioオブジェクト</a>
327
+ <a href="#backlog" class="related-link">バックログ</a>
328
+ </div>
329
+ </div>
330
+
331
+ <div class="term-item" data-term="resourcemanager">
332
+ <div class="term-name">ResourceManager(リソース管理)</div>
333
+ <div class="term-english">ResourceManager Class</div>
334
+ <div class="term-description">
335
+ ゲーム内で使用される画像、音声、その他のアセットファイルの読み込み、キャッシュ、管理を行うクラス。config.jsからリソース定義を読み込み、名前でアクセスできるようにします。
336
+ </div>
337
+ <div class="term-example">
338
+ resourceManager = new ResourceManager(configImport)
339
+ </div>
340
+ <div class="term-related">
341
+ <strong>関連用語:</strong>
342
+ <a href="#resource-config" class="related-link">リソース定義オブジェクト</a>
343
+ <a href="#imageobject" class="related-link">ImageObject</a>
344
+ <a href="#soundobject" class="related-link">SoundObject</a>
345
+ </div>
346
+ </div>
347
+
348
+ <div class="term-item" data-term="canvas-layer">
349
+ <div class="term-name">キャンバスレイヤー</div>
350
+ <div class="term-english">Canvas Layer</div>
351
+ <div class="term-description">
352
+ webTaleKitの画面表示は3つのレイヤーで構成されます:UIレイヤー(HTML/CSS)、キャラレイヤー(Canvas)、背景レイヤー(Canvas)。キャラと背景は合成されるため実質2レイヤー構成となります。
353
+ </div>
354
+ <div class="term-example">
355
+ // UIレイヤー: HTMLメッセージボックス
356
+ // キャラレイヤー: キャラクター立ち絵表示
357
+ // 背景レイヤー: 背景画像表示
358
+ </div>
359
+ <div class="term-related">
360
+ <strong>関連用語:</strong>
361
+ <a href="#drawer" class="related-link">Drawer</a>
362
+ <a href="#ui-layer" class="related-link">UIレイヤー</a>
363
+ </div>
364
+ </div>
365
+ </section>
366
+
367
+ <section id="scripting" class="section category-section">
368
+ <div class="section-title">スクリプト・言語</div>
369
+
370
+ <div class="term-item" data-term="webtaleScript">
371
+ <div class="term-name">WebTaleScript(WTS)</div>
372
+ <div class="term-english">WebTaleScript</div>
373
+ <div class="term-description">
374
+ webTaleKit独自のマークアップ言語。HTMLに似た構文でゲームの進行を記述できます。各タグはエンジンのメソッドと対応しており、最終的にJavaScriptに変換されて実行されます。
375
+ </div>
376
+ <div class="term-example">
377
+ &lt;text&gt;こんにちは&lt;/text&gt;
378
+ &lt;say name="主人公"&gt;元気ですか?&lt;/say&gt;
379
+ &lt;choice prompt="答えてください"&gt;
380
+ &lt;item label="はい"&gt;元気です&lt;/item&gt;
381
+ &lt;/choice&gt;
382
+ </div>
383
+ <div class="term-related">
384
+ <strong>関連用語:</strong>
385
+ <a href="#scene-file" class="related-link">シーンファイル</a>
386
+ <a href="#scenario-object" class="related-link">Scenarioオブジェクト</a>
387
+ </div>
388
+ </div>
389
+
390
+ <div class="term-item" data-term="scene-file">
391
+ <div class="term-name">シーンファイル</div>
392
+ <div class="term-english">Scene File (.scene)</div>
393
+ <div class="term-description">
394
+ WebTaleScript(WTS)とJavaScriptでゲームの進行を記述するファイル。scenarioセクションにはWTSで進行制御を、scriptセクションにはJavaScriptで変数定義や関数を記述します。
395
+ </div>
396
+ <div class="term-example">
397
+ &lt;scene&gt;
398
+ &lt;scenario&gt;
399
+ &lt;text&gt;シナリオ内容&lt;/text&gt;
400
+ &lt;/scenario&gt;
401
+ &lt;script&gt;
402
+ export const sceneConfig = { name: 'title' }
403
+ &lt;/script&gt;
404
+ &lt;/scene&gt;
405
+ </div>
406
+ <div class="term-related">
407
+ <strong>関連用語:</strong>
408
+ <a href="#webtaleScript" class="related-link">WebTaleScript</a>
409
+ <a href="#scene-config" class="related-link">sceneConfig</a>
410
+ </div>
411
+ </div>
412
+
413
+ <div class="term-item" data-term="scenario-object">
414
+ <div class="term-name">Scenarioオブジェクト</div>
415
+ <div class="term-english">Scenario Object</div>
416
+ <div class="term-description">
417
+ WebTaleScriptを変換したJSONオブジェクト。webTaleKitエンジンはこのオブジェクトを読み取り・実行してゲームを進行させます。各要素はtypeとcontentプロパティを持ちます。
418
+ </div>
419
+ <div class="term-example">
420
+ {
421
+ type: 'text',
422
+ content: ['表示するテキスト'],
423
+ speed: 25
424
+ }
425
+ </div>
426
+ <div class="term-related">
427
+ <strong>関連用語:</strong>
428
+ <a href="#webtaleScript" class="related-link">WebTaleScript</a>
429
+ <a href="#scenariomanager" class="related-link">ScenarioManager</a>
430
+ </div>
431
+ </div>
432
+
433
+ <div class="term-item" data-term="if-global">
434
+ <div class="term-name">ifグローバル属性</div>
435
+ <div class="term-english">if Global Attribute</div>
436
+ <div class="term-description">
437
+ すべてのWebTaleScriptタグで使用できるグローバル属性。JavaScript式を条件として指定し、条件がtrueの場合のみそのタグが実行されます。動的なゲーム進行制御に使用されます。
438
+ </div>
439
+ <div class="term-example">
440
+ &lt;text if="playerLevel >= 10"&gt;上級者向けメッセージ&lt;/text&gt;
441
+ &lt;show src="special.png" if="hasItem('key')" /&gt;
442
+ </div>
443
+ <div class="term-related">
444
+ <strong>関連用語:</strong>
445
+ <a href="#webtaleScript" class="related-link">WebTaleScript</a>
446
+ <a href="#conditional-branch" class="related-link">条件分岐</a>
447
+ </div>
448
+ </div>
449
+
450
+ <div class="term-item" data-term="scene-config">
451
+ <div class="term-name">sceneConfig</div>
452
+ <div class="term-english">Scene Configuration</div>
453
+ <div class="term-description">
454
+ 各シーンの設定を定義するJavaScriptオブジェクト。シーン名、背景画像、BGM、使用するテンプレートファイルなどを指定します。シーンファイルのscriptセクションでexportします。
455
+ </div>
456
+ <div class="term-example">
457
+ export const sceneConfig = {
458
+ name: 'title',
459
+ background: './resource/bg/title.jpg',
460
+ bgm: './resource/bgm/theme.mp3',
461
+ template: './screen/title.html'
462
+ }
463
+ </div>
464
+ <div class="term-related">
465
+ <strong>関連用語:</strong>
466
+ <a href="#scene-file" class="related-link">シーンファイル</a>
467
+ <a href="#template" class="related-link">テンプレート</a>
468
+ </div>
469
+ </div>
470
+ </section>
471
+
472
+ <section id="resources" class="section category-section">
473
+ <div class="section-title">リソース管理</div>
474
+
475
+ <div class="term-item" data-term="resource-config">
476
+ <div class="term-name">リソース定義オブジェクト</div>
477
+ <div class="term-english">Resource Configuration Object</div>
478
+ <div class="term-description">
479
+ ゲーム内で使用する画像、音声ファイルのパスと名前を紐づけるオブジェクト。config.jsファイルで定義し、名前でリソースを呼び出せるようになります。
480
+ </div>
481
+ <div class="term-example">
482
+ export const audio = [{ title: '/audio/mainTheme.wav' }]
483
+ export const chara = [{ hero: '/chara/hero.png' }]
484
+ export const background = [{ forest: '/bg/forest.jpg' }]
485
+ </div>
486
+ <div class="term-related">
487
+ <strong>関連用語:</strong>
488
+ <a href="#resourcemanager" class="related-link">ResourceManager</a>
489
+ <a href="#imageobject" class="related-link">ImageObject</a>
490
+ <a href="#soundobject" class="related-link">SoundObject</a>
491
+ </div>
492
+ </div>
493
+
494
+ <div class="term-item" data-term="imageobject">
495
+ <div class="term-name">ImageObject</div>
496
+ <div class="term-english">Image Object</div>
497
+ <div class="term-description">
498
+ 画像リソースを管理するクラス。画像の読み込み、フィルター効果(セピア、モノクロ、ぼかし)、透明度設定、左右反転などの操作を提供します。
499
+ </div>
500
+ <div class="term-example">
501
+ const image = new ImageObject()
502
+ await image.setImageAsync('./chara/hero.png')
503
+ image.setSepia(0.5)
504
+ image.setOpacity(0.8)
505
+ </div>
506
+ <div class="term-related">
507
+ <strong>関連用語:</strong>
508
+ <a href="#resourcemanager" class="related-link">ResourceManager</a>
509
+ <a href="#show-tag" class="related-link">showタグ</a>
510
+ </div>
511
+ </div>
512
+
513
+ <div class="term-item" data-term="soundobject">
514
+ <div class="term-name">SoundObject</div>
515
+ <div class="term-english">Sound Object</div>
516
+ <div class="term-description">
517
+ 音声リソースを管理するクラス。BGM、効果音、ボイスの再生・停止・一時停止、音量調整などの機能を提供します。Web Audio APIを使用して実装されています。
518
+ </div>
519
+ <div class="term-example">
520
+ const sound = new SoundObject()
521
+ await sound.setAudioAsync('./bgm/theme.mp3')
522
+ sound.play(true) // ループ再生
523
+ sound.setVolume(0.7)
524
+ </div>
525
+ <div class="term-related">
526
+ <strong>関連用語:</strong>
527
+ <a href="#resourcemanager" class="related-link">ResourceManager</a>
528
+ <a href="#sound-tag" class="related-link">soundタグ</a>
529
+ </div>
530
+ </div>
531
+
532
+ <div class="term-item" data-term="displayed-images">
533
+ <div class="term-name">displayedImages</div>
534
+ <div class="term-english">Displayed Images Object</div>
535
+ <div class="term-description">
536
+ 現在画面に表示されている画像の管理オブジェクト。各画像の座標、サイズ、表示状態、フィルター設定などを保持し、hideやmovetoタグでの操作対象の特定に使用されます。
537
+ </div>
538
+ <div class="term-example">
539
+ this.displayedImages = {
540
+ 'hero': {
541
+ image: imageObject,
542
+ pos: { x: 100, y: 200 },
543
+ size: { width: 400, height: 600 }
544
+ }
545
+ }
546
+ </div>
547
+ <div class="term-related">
548
+ <strong>関連用語:</strong>
549
+ <a href="#imageobject" class="related-link">ImageObject</a>
550
+ <a href="#show-tag" class="related-link">showタグ</a>
551
+ <a href="#hide-tag" class="related-link">hideタグ</a>
552
+ </div>
553
+ </div>
554
+ </section>
555
+
556
+ <section id="ui" class="section category-section">
557
+ <div class="section-title">UI・表示</div>
558
+
559
+ <div class="term-item" data-term="template">
560
+ <div class="term-name">テンプレート</div>
561
+ <div class="term-english">Template</div>
562
+ <div class="term-description">
563
+ ゲーム画面のレイアウトを定義するHTMLファイル。メッセージウィンドウ、キャラクター名表示、選択肢ボタンなどのUI要素を含みます。シーンごとに異なるテンプレートを使用可能です。
564
+ </div>
565
+ <div class="term-example">
566
+ &lt;div id="main"&gt;
567
+ &lt;div id="messageWindow"&gt;
568
+ &lt;div id="nameView"&gt;&lt;/div&gt;
569
+ &lt;div id="messageView"&gt;&lt;/div&gt;
570
+ &lt;/div&gt;
571
+ &lt;/div&gt;
572
+ </div>
573
+ <div class="term-related">
574
+ <strong>関連用語:</strong>
575
+ <a href="#ui-layer" class="related-link">UIレイヤー</a>
576
+ <a href="#scene-config" class="related-link">sceneConfig</a>
577
+ </div>
578
+ </div>
579
+
580
+ <div class="term-item" data-term="ui-layer">
581
+ <div class="term-name">UIレイヤー</div>
582
+ <div class="term-english">UI Layer</div>
583
+ <div class="term-description">
584
+ HTML、CSS、JavaScriptで構成されるユーザーインターフェース層。メッセージボックス、選択肢ボタン、システムメニューなどが表示されます。Canvas要素の上に重ねて表示されます。
585
+ </div>
586
+ <div class="term-example">
587
+ &lt;!-- UIレイヤーの要素例 --&gt;
588
+ &lt;div id="nameView"&gt;主人公&lt;/div&gt;
589
+ &lt;div id="messageView"&gt;こんにちは&lt;/div&gt;
590
+ &lt;div id="interactiveView"&gt;選択肢&lt;/div&gt;
591
+ </div>
592
+ <div class="term-related">
593
+ <strong>関連用語:</strong>
594
+ <a href="#template" class="related-link">テンプレート</a>
595
+ <a href="#canvas-layer" class="related-link">キャンバスレイヤー</a>
596
+ </div>
597
+ </div>
598
+
599
+ <div class="term-item" data-term="message-window">
600
+ <div class="term-name">メッセージウィンドウ</div>
601
+ <div class="term-english">Message Window</div>
602
+ <div class="term-description">
603
+ ゲーム内のテキストやキャラクターの台詞を表示するUI要素。通常は画面下部に配置され、背景が半透明になっています。クリックやキー入力で次のテキストに進みます。
604
+ </div>
605
+ <div class="term-example">
606
+ &lt;div id="messageWindow"&gt;
607
+ &lt;div id="nameView"&gt;キャラクター名&lt;/div&gt;
608
+ &lt;div id="messageView"&gt;表示されるテキスト&lt;/div&gt;
609
+ &lt;/div&gt;
610
+ </div>
611
+ <div class="term-related">
612
+ <strong>関連用語:</strong>
613
+ <a href="#text-tag" class="related-link">textタグ</a>
614
+ <a href="#say-tag" class="related-link">sayタグ</a>
615
+ <a href="#ui-layer" class="related-link">UIレイヤー</a>
616
+ </div>
617
+ </div>
618
+
619
+ <div class="term-item" data-term="backlog">
620
+ <div class="term-name">バックログ</div>
621
+ <div class="term-english">Backlog</div>
622
+ <div class="term-description">
623
+ プレイヤーが過去に読んだテキストや選択した内容を記録する機能。一次配列として管理され、ゲーム履歴の確認やセーブデータの一部として使用されます。
624
+ </div>
625
+ <div class="term-example">
626
+ // バックログ配列の例
627
+ ['テキスト1', 'テキスト2', 'テキスト3']
628
+ </div>
629
+ <div class="term-related">
630
+ <strong>関連用語:</strong>
631
+ <a href="#scenariomanager" class="related-link">ScenarioManager</a>
632
+ <a href="#save-system" class="related-link">セーブシステム</a>
633
+ </div>
634
+ </div>
635
+ </section>
636
+
637
+ <section id="audio" class="section category-section">
638
+ <div class="section-title">音響</div>
639
+
640
+ <div class="term-item" data-term="bgm">
641
+ <div class="term-name">BGM</div>
642
+ <div class="term-english">Background Music</div>
643
+ <div class="term-description">
644
+ ゲーム中に流れる背景音楽。通常はループ再生され、シーン切り替え時に自動的に変更されます。soundタグのmode="bgm"で制御するか、sceneConfigで指定します。
645
+ </div>
646
+ <div class="term-example">
647
+ &lt;sound src="./bgm/peaceful.mp3" mode="bgm" play loop /&gt;
648
+
649
+ // sceneConfigでの指定
650
+ export const sceneConfig = {
651
+ bgm: './resource/bgm/theme.mp3'
652
+ }
653
+ </div>
654
+ <div class="term-related">
655
+ <strong>関連用語:</strong>
656
+ <a href="#soundobject" class="related-link">SoundObject</a>
657
+ <a href="#sound-tag" class="related-link">soundタグ</a>
658
+ <a href="#scene-config" class="related-link">sceneConfig</a>
659
+ </div>
660
+ </div>
661
+
662
+ <div class="term-item" data-term="voice">
663
+ <div class="term-name">ボイス</div>
664
+ <div class="term-english">Voice</div>
665
+ <div class="term-description">
666
+ キャラクターの台詞に同期して再生される音声ファイル。sayタグのvoice属性で指定し、テキスト表示と同時に再生されます。キャラクターの感情表現を豊かにします。
667
+ </div>
668
+ <div class="term-example">
669
+ &lt;say name="ヒロイン" voice="./voice/heroine_01.wav"&gt;
670
+ お疲れ様でした。
671
+ &lt;/say&gt;
672
+ </div>
673
+ <div class="term-related">
674
+ <strong>関連用語:</strong>
675
+ <a href="#soundobject" class="related-link">SoundObject</a>
676
+ <a href="#say-tag" class="related-link">sayタグ</a>
677
+ </div>
678
+ </div>
679
+
680
+ <div class="term-item" data-term="se">
681
+ <div class="term-name">効果音(SE)</div>
682
+ <div class="term-english">Sound Effect</div>
683
+ <div class="term-description">
684
+ ゲーム中の演出で使用される短い音声ファイル。ドアの開閉音、足音、環境音などを再生してゲームの臨場感を高めます。通常は一度だけ再生されます。
685
+ </div>
686
+ <div class="term-example">
687
+ &lt;sound src="./se/door.wav" play /&gt;
688
+ </div>
689
+ <div class="term-related">
690
+ <strong>関連用語:</strong>
691
+ <a href="#soundobject" class="related-link">SoundObject</a>
692
+ <a href="#sound-tag" class="related-link">soundタグ</a>
693
+ </div>
694
+ </div>
695
+ </section>
696
+
697
+ <section id="development" class="section category-section">
698
+ <div class="section-title">開発・ビルド</div>
699
+
700
+ <div class="term-item" data-term="build-system">
701
+ <div class="term-name">ビルドシステム</div>
702
+ <div class="term-english">Build System</div>
703
+ <div class="term-description">
704
+ webTaleKitプロジェクトを本番環境向けにコンパイル・最適化するシステム。sceneファイルのJavaScript変換、screen以下のHTML/CSS/JSのインライン化、バンドル処理を行います。
705
+ </div>
706
+ <div class="term-example">
707
+ npm run build
708
+ // sceneファイル → JavaScriptに変換
709
+ // テンプレート → インライン化
710
+ // 全体 → バンドル
711
+ </div>
712
+ <div class="term-related">
713
+ <strong>関連用語:</strong>
714
+ <a href="#scene-file" class="related-link">シーンファイル</a>
715
+ <a href="#template" class="related-link">テンプレート</a>
716
+ </div>
717
+ </div>
718
+
719
+ <div class="term-item" data-term="directory-structure">
720
+ <div class="term-name">ディレクトリ構造</div>
721
+ <div class="term-english">Directory Structure</div>
722
+ <div class="term-description">
723
+ webTaleKitプロジェクトの標準的なフォルダ構成。src/scene(シナリオ)、src/screen(テンプレート)、src/resource(素材)などに分けて整理されます。
724
+ </div>
725
+ <div class="term-example">
726
+ src/
727
+ ├── scene/ # シーンファイル
728
+ ├── screen/ # テンプレート
729
+ ├── resource/ # 素材ファイル
730
+ │ ├── background/ # 背景画像
731
+ │ ├── chara/ # キャラクター画像
732
+ │ ├── bgm/ # BGM
733
+ │ └── se/ # 効果音
734
+ └── config.js # リソース定義
735
+ </div>
736
+ <div class="term-related">
737
+ <strong>関連用語:</strong>
738
+ <a href="#resource-config" class="related-link">リソース定義オブジェクト</a>
739
+ <a href="#scene-file" class="related-link">シーンファイル</a>
740
+ </div>
741
+ </div>
742
+
743
+ <div class="term-item" data-term="save-system">
744
+ <div class="term-name">セーブシステム</div>
745
+ <div class="term-english">Save System</div>
746
+ <div class="term-description">
747
+ ゲームの進行状況をJSONファイルとして保存・読み込みする機能。現在のシーン、進行インデックス、表示中の画像、開発者定義の変数などが保存されます。
748
+ </div>
749
+ <div class="term-example">
750
+ // セーブデータ形式例
751
+ {
752
+ displayedImage: {...},
753
+ scenario: 'title',
754
+ index: 5,
755
+ // カスタム変数
756
+ playerLevel: 10,
757
+ hasKey: true
758
+ }
759
+ </div>
760
+ <div class="term-related">
761
+ <strong>関連用語:</strong>
762
+ <a href="#backlog" class="related-link">バックログ</a>
763
+ <a href="#scenariomanager" class="related-link">ScenarioManager</a>
764
+ </div>
765
+ </div>
766
+ </section>
767
+
768
+ </main>
769
+ </div>
770
+ </div>
771
+
772
+ <a href="#top" class="back-to-top">↑ TOPへ</a>
773
+
774
+ <script>
775
+ // 検索機能
776
+ const searchInput = document.getElementById('searchInput');
777
+ const termItems = document.querySelectorAll('.term-item');
778
+
779
+ searchInput.addEventListener('input', function() {
780
+ const searchTerm = this.value.toLowerCase();
781
+
782
+ termItems.forEach(item => {
783
+ const termName = item.querySelector('.term-name').textContent.toLowerCase();
784
+ const termDesc = item.querySelector('.term-description').textContent.toLowerCase();
785
+ const termEnglish = item.querySelector('.term-english').textContent.toLowerCase();
786
+
787
+ if (termName.includes(searchTerm) ||
788
+ termDesc.includes(searchTerm) ||
789
+ termEnglish.includes(searchTerm) ||
790
+ item.dataset.term.includes(searchTerm)) {
791
+ item.style.display = 'block';
792
+ } else {
793
+ item.style.display = 'none';
794
+ }
795
+ });
796
+ });
797
+
798
+ // スムーススクロール
799
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
800
+ anchor.addEventListener('click', function (e) {
801
+ e.preventDefault();
802
+ const target = document.querySelector(this.getAttribute('href'));
803
+ if (target) {
804
+ target.scrollIntoView({
805
+ behavior: 'smooth'
806
+ });
807
+ }
808
+ });
809
+ });
810
+
811
+ // 戻るボタンの表示制御
812
+ window.addEventListener('scroll', function() {
813
+ const backToTop = document.querySelector('.back-to-top');
814
+ if (window.pageYOffset > 300) {
815
+ backToTop.style.display = 'block';
816
+ } else {
817
+ backToTop.style.display = 'none';
818
+ }
819
+ });
820
+
821
+ // 用語項目のホバー効果
822
+ termItems.forEach(item => {
823
+ item.addEventListener('mouseenter', function() {
824
+ this.style.transform = 'translateX(5px)';
825
+ });
826
+
827
+ item.addEventListener('mouseleave', function() {
828
+ this.style.transform = 'translateX(0)';
829
+ });
830
+ });
831
+ </script>
832
+ </body>
833
+ </html>