webtalekit-alpha 0.2.13 → 0.2.14

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 (398) hide show
  1. package/README.md +145 -70
  2. package/package.json +10 -2
  3. package/parser/checker.js +184 -0
  4. package/parser/checker.test.ts +491 -0
  5. package/parser/cli.js +34 -2
  6. package/parser/parser.js +25 -18
  7. package/src/core/defaultUIHandler.js +309 -0
  8. package/src/core/defaultUIHandler.js.map +1 -0
  9. package/{dist/src → src}/core/drawer.js +65 -40
  10. package/src/core/drawer.js.map +1 -0
  11. package/{dist/src → src}/core/index.js +188 -257
  12. package/{dist/src → src}/core/scenarioManager.js +29 -7
  13. package/src/core/scenarioManager.js.map +1 -0
  14. package/src/utils/eventBus.js +88 -0
  15. package/src/utils/eventBus.js.map +1 -0
  16. package/{dist/src → src}/utils/logger.js +45 -1
  17. package/src/utils/logger.js.map +1 -0
  18. package/{dist/src → src}/utils/store.js +5 -0
  19. package/src/utils/store.js.map +1 -0
  20. package/.claude/settings.local.json +0 -12
  21. package/.clinerules +0 -65
  22. package/.history/README_20240812174230.md +0 -193
  23. package/.history/README_20240812175424.md +0 -185
  24. package/.history/README_20240812191012.md +0 -185
  25. package/.history/README_20240812191155.md +0 -185
  26. package/.history/README_20240812191211.md +0 -185
  27. package/.history/README_20240812192035.md +0 -185
  28. package/.history/dist/src/core/index_20240815021552.js +0 -474
  29. package/.history/dist/src/core/index_20240815022042.js +0 -476
  30. package/.history/dist/src/core/index_20240815022206.js +0 -476
  31. package/.history/dist/src/core/index_20240815023104.js +0 -478
  32. package/.history/dist/src/core/index_20240817022019.js +0 -494
  33. package/.history/dist/src/core/index_20240818013827.js +0 -493
  34. package/.history/dist/src/core/index_20240820001418.js +0 -502
  35. package/.history/package_20240812174230.json +0 -45
  36. package/.history/package_20240825011731.json +0 -45
  37. package/.history/package_20240825011739.json +0 -44
  38. package/.history/parser/parser_20240812174230.js +0 -50
  39. package/.history/parser/parser_20240825012739.js +0 -47
  40. package/.history/parser/parser_20240825012835.js +0 -52
  41. package/.history/src/core/drawer_20240813091343.ts +0 -262
  42. package/.history/src/core/drawer_20240815232345.ts +0 -262
  43. package/.history/src/core/drawer_20240815232350.ts +0 -262
  44. package/.history/src/core/drawer_20240816025257.ts +0 -357
  45. package/.history/src/core/drawer_20240816025358.ts +0 -357
  46. package/.history/src/core/drawer_20240816030148.ts +0 -365
  47. package/.history/src/core/drawer_20240816231033.ts +0 -294
  48. package/.history/src/core/drawer_20240816231107.ts +0 -262
  49. package/.history/src/core/drawer_20240816231234.ts +0 -268
  50. package/.history/src/core/drawer_20240817013836.ts +0 -290
  51. package/.history/src/core/drawer_20240817015150.ts +0 -289
  52. package/.history/src/core/drawer_20240817015353.ts +0 -290
  53. package/.history/src/core/drawer_20240817021254.ts +0 -291
  54. package/.history/src/core/drawer_20240817023440.ts +0 -295
  55. package/.history/src/core/drawer_20240817023445.ts +0 -295
  56. package/.history/src/core/drawer_20240818015327.ts +0 -295
  57. package/.history/src/core/drawer_20240819231006.ts +0 -318
  58. package/.history/src/core/drawer_20240820002829.ts +0 -317
  59. package/.history/src/core/drawer_20240820003141.ts +0 -295
  60. package/.history/src/core/drawer_20240824010043.ts +0 -295
  61. package/.history/src/core/drawer_20240825013311.ts +0 -293
  62. package/.history/src/core/drawer_20240902235257.ts +0 -295
  63. package/.history/src/core/drawer_20240904002038.ts +0 -262
  64. package/.history/src/core/drawer_20240904004020.ts +0 -262
  65. package/.history/src/core/drawer_20240904004238.ts +0 -262
  66. package/.history/src/core/drawer_20240904005648.ts +0 -262
  67. package/.history/src/core/drawer_20240904005808.ts +0 -262
  68. package/.history/src/core/drawer_20240904010523.ts +0 -262
  69. package/.history/src/core/drawer_20240904011611.ts +0 -262
  70. package/.history/src/core/drawer_20240904011740.ts +0 -262
  71. package/.history/src/core/index_20240812190102.js +0 -443
  72. package/.history/src/core/index_20240812190105.js +0 -443
  73. package/.history/src/core/index_20240812205421.js +0 -452
  74. package/.history/src/core/index_20240812213441.js +0 -452
  75. package/.history/src/core/index_20240812214203.js +0 -453
  76. package/.history/src/core/index_20240813090823.js +0 -453
  77. package/.history/src/core/index_20240813230449.js +0 -452
  78. package/.history/src/core/index_20240813230539.js +0 -452
  79. package/.history/src/core/index_20240813231447.js +0 -453
  80. package/.history/src/core/index_20240813231449.js +0 -453
  81. package/.history/src/core/index_20240813231511.js +0 -453
  82. package/.history/src/core/index_20240813231531.js +0 -453
  83. package/.history/src/core/index_20240813231913.js +0 -453
  84. package/.history/src/core/index_20240813232356.js +0 -453
  85. package/.history/src/core/index_20240813232640.js +0 -453
  86. package/.history/src/core/index_20240813232900.js +0 -453
  87. package/.history/src/core/index_20240814221127.js +0 -454
  88. package/.history/src/core/index_20240814221322.js +0 -454
  89. package/.history/src/core/index_20240814221526.js +0 -454
  90. package/.history/src/core/index_20240814222048.js +0 -454
  91. package/.history/src/core/index_20240814222918.js +0 -459
  92. package/.history/src/core/index_20240814223136.js +0 -459
  93. package/.history/src/core/index_20240814223501.js +0 -464
  94. package/.history/src/core/index_20240814224347.js +0 -468
  95. package/.history/src/core/index_20240815013712.js +0 -474
  96. package/.history/src/core/index_20240815021534.js +0 -474
  97. package/.history/src/core/index_20240815023143.js +0 -477
  98. package/.history/src/core/index_20240815023207.js +0 -479
  99. package/.history/src/core/index_20240815023344.js +0 -481
  100. package/.history/src/core/index_20240815035600.js +0 -479
  101. package/.history/src/core/index_20240815041549.js +0 -480
  102. package/.history/src/core/index_20240815185515.js +0 -481
  103. package/.history/src/core/index_20240815192158.js +0 -481
  104. package/.history/src/core/index_20240815222912.js +0 -482
  105. package/.history/src/core/index_20240815224052.js +0 -483
  106. package/.history/src/core/index_20240815224843.js +0 -484
  107. package/.history/src/core/index_20240815224850.js +0 -483
  108. package/.history/src/core/index_20240815231706.js +0 -479
  109. package/.history/src/core/index_20240816025748.js +0 -483
  110. package/.history/src/core/index_20240816030102.js +0 -484
  111. package/.history/src/core/index_20240817013329.js +0 -485
  112. package/.history/src/core/index_20240817013526.js +0 -485
  113. package/.history/src/core/index_20240817013819.js +0 -488
  114. package/.history/src/core/index_20240817013829.js +0 -488
  115. package/.history/src/core/index_20240817014921.js +0 -494
  116. package/.history/src/core/index_20240817022057.js +0 -494
  117. package/.history/src/core/index_20240817023316.js +0 -493
  118. package/.history/src/core/index_20240818005637.js +0 -493
  119. package/.history/src/core/index_20240818005721.js +0 -493
  120. package/.history/src/core/index_20240818011804.js +0 -493
  121. package/.history/src/core/index_20240818013835.js +0 -493
  122. package/.history/src/core/index_20240818014310.js +0 -493
  123. package/.history/src/core/index_20240818014323.js +0 -493
  124. package/.history/src/core/index_20240818014333.js +0 -493
  125. package/.history/src/core/index_20240818020725.js +0 -496
  126. package/.history/src/core/index_20240819195504.js +0 -497
  127. package/.history/src/core/index_20240819202012.js +0 -495
  128. package/.history/src/core/index_20240819231228.js +0 -501
  129. package/.history/src/core/index_20240819232555.js +0 -502
  130. package/.history/src/core/index_20240819233404.js +0 -502
  131. package/.history/src/core/index_20240820003114.js +0 -495
  132. package/.history/src/core/index_20240820003120.js +0 -495
  133. package/.history/src/core/index_20240820003331.js +0 -495
  134. package/.history/src/core/index_20240820004126.js +0 -498
  135. package/.history/src/core/index_20240820004357.js +0 -497
  136. package/.history/src/core/index_20240820005103.js +0 -498
  137. package/.history/src/core/index_20240820005110.js +0 -499
  138. package/.history/src/core/index_20240820005206.js +0 -497
  139. package/.history/src/core/index_20240820005352.js +0 -497
  140. package/.history/src/core/index_20240823224904.ts +0 -505
  141. package/.history/src/core/index_20240823224905.js +0 -505
  142. package/.history/src/core/index_20240823231631.ts +0 -530
  143. package/.history/src/core/index_20240823231735.ts +0 -530
  144. package/.history/src/core/index_20240823232123.ts +0 -539
  145. package/.history/src/core/index_20240823232329.ts +0 -539
  146. package/.history/src/core/index_20240823233058.ts +0 -539
  147. package/.history/src/core/index_20240823234946.ts +0 -539
  148. package/.history/src/core/index_20240824005956.ts +0 -534
  149. package/.history/src/core/index_20240824010113.ts +0 -534
  150. package/.history/src/core/index_20240824010124.ts +0 -534
  151. package/.history/src/core/index_20240824010212.ts +0 -534
  152. package/.history/src/core/index_20240824010218.ts +0 -534
  153. package/.history/src/core/index_20240824010407.ts +0 -534
  154. package/.history/src/core/index_20240824010611.ts +0 -534
  155. package/.history/src/core/index_20240824010623.ts +0 -534
  156. package/.history/src/core/index_20240824010652.ts +0 -534
  157. package/.history/src/core/index_20240824011007.ts +0 -534
  158. package/.history/src/core/index_20240824210450.ts +0 -534
  159. package/.history/src/core/index_20240824210703.ts +0 -534
  160. package/.history/src/core/index_20240824210708.ts +0 -534
  161. package/.history/src/core/index_20240824211001.ts +0 -537
  162. package/.history/src/core/index_20240824211258.ts +0 -537
  163. package/.history/src/core/index_20240824211654.ts +0 -537
  164. package/.history/src/core/index_20240824211723.ts +0 -537
  165. package/.history/src/core/index_20240824211808.ts +0 -538
  166. package/.history/src/core/index_20240824214041.js +0 -538
  167. package/.history/src/core/index_20240824215312.ts +0 -538
  168. package/.history/src/core/index_20240824215341.ts +0 -538
  169. package/.history/src/core/index_20240824220703.ts +0 -538
  170. package/.history/src/core/index_20240824220709.ts +0 -538
  171. package/.history/src/core/index_20240825012244.ts +0 -536
  172. package/.history/src/core/index_20240825012435.ts +0 -539
  173. package/.history/src/core/index_20240825012440.ts +0 -539
  174. package/.history/src/core/index_20240826005054.ts +0 -539
  175. package/.history/src/core/index_20240826005321.ts +0 -540
  176. package/.history/src/core/index_20240826005410.ts +0 -539
  177. package/.history/src/core/index_20240826005418.ts +0 -539
  178. package/.history/src/core/index_20240830231825.ts +0 -539
  179. package/.history/src/core/index_20240831022416.ts +0 -539
  180. package/.history/src/core/index_20240901222314.js +0 -459
  181. package/.history/src/core/index_20240901222951.js +0 -459
  182. package/.history/src/core/index_20240901223824.js +0 -471
  183. package/.history/src/core/index_20240901223833.js +0 -468
  184. package/.history/src/core/index_20240902223954.js +0 -447
  185. package/.history/src/core/index_20240902224000.js +0 -446
  186. package/.history/src/core/index_20240902230345.js +0 -448
  187. package/.history/src/core/index_20240902231130.js +0 -449
  188. package/.history/src/core/index_20240902231559.js +0 -449
  189. package/.history/src/core/index_20240902232135.js +0 -449
  190. package/.history/src/core/index_20240902232809.js +0 -452
  191. package/.history/src/core/index_20240902232815.js +0 -452
  192. package/.history/src/core/index_20240903000104.js +0 -467
  193. package/.history/src/core/index_20240904001731.js +0 -444
  194. package/.history/src/core/index_20240904002038.ts +0 -539
  195. package/.history/src/core/index_20240904011848.js +0 -444
  196. package/.history/src/core/index_20240904012138.js +0 -444
  197. package/.history/src/core/index_20240904012743.js +0 -444
  198. package/.history/src/core/index_20240904013051.js +0 -444
  199. package/.history/src/core/resourceManager_20240403231531.ts +0 -16
  200. package/.history/src/core/resourceManager_20240823232627.ts +0 -17
  201. package/.history/src/core/resourceManager_20240824214014.js +0 -16
  202. package/.history/src/core/resourceManager_20240824214620.js +0 -17
  203. package/.history/src/core/scenarioManager_20240812203410.ts +0 -86
  204. package/.history/src/core/scenarioManager_20240812203839.ts +0 -94
  205. package/.history/src/core/scenarioManager_20240812213437.ts +0 -85
  206. package/.history/src/core/scenarioManager_20240813225852.ts +0 -85
  207. package/.history/src/core/scenarioManager_20240823235010.ts +0 -85
  208. package/.history/src/core/scenarioManager_20240904002038.ts +0 -94
  209. package/.history/src/core/scenarioManager_20240904012411.ts +0 -94
  210. package/.history/src/core/scenarioManager_20240904012519.ts +0 -94
  211. package/.history/src/index_20240403231531.js +0 -6
  212. package/.history/src/index_20240429233436.js +0 -8
  213. package/.history/src/index_20240429233926.js +0 -8
  214. package/.history/src/index_20240429234401.js +0 -7
  215. package/.history/src/index_20240429234404.js +0 -6
  216. package/.history/src/resource/soundObject_20240419004314.ts +0 -71
  217. package/.history/src/resource/soundObject_20240815034420.ts +0 -66
  218. package/.history/src/resource/soundObject_20240815034836.ts +0 -79
  219. package/.history/src/resource/soundObject_20240815034919.ts +0 -87
  220. package/.history/src/resource/soundObject_20240815040724.ts +0 -81
  221. package/.history/src/resource/soundObject_20240815041022.ts +0 -87
  222. package/.history/src/resource/soundObject_20240815042103.ts +0 -87
  223. package/.history/src/resource/soundObject_20240823235929.ts +0 -91
  224. package/.history/src/resource/soundObject_20240824213129.ts +0 -99
  225. package/.history/src/resource/soundObject_20240824213611.ts +0 -101
  226. package/.history/src/resource/soundObject_20240824215734.ts +0 -101
  227. package/.history/src/resource/soundObject_20240825004926.ts +0 -101
  228. package/.history/src/resource/soundObject_20240825004947.ts +0 -101
  229. package/.history/src/utils/logger_20240812174230.ts +0 -13
  230. package/.history/src/utils/logger_20240823232736.ts +0 -14
  231. package/.history/src/utils/logger_20240824214930.js +0 -14
  232. package/.history/src/utils/store_20240812174230.ts +0 -17
  233. package/.history/src/utils/store_20240823232948.ts +0 -29
  234. package/.history/src/utils/store_20240824214020.js +0 -17
  235. package/.history/src/utils/store_20240824214955.js +0 -29
  236. package/.history/src/utils/waitUtil_20240812174230.ts +0 -4
  237. package/.history/src/utils/waitUtil_20240823232739.ts +0 -4
  238. package/.history/src/utils/waitUtil_20240824214024.js +0 -4
  239. package/.history/src/utils/waitUtil_20240824215009.js +0 -4
  240. package/.history/test/js/title_20240428215305.js +0 -254
  241. package/.history/test/js/title_20240429221911.js +0 -227
  242. package/.history/test/js/title_20240429222806.js +0 -243
  243. package/.history/test/js/title_20240429222854.js +0 -263
  244. package/.history/test/js/title_20240429222906.js +0 -263
  245. package/.history/test/js/title_20240429235639.js +0 -263
  246. package/.history/test/js/title_20240429235840.js +0 -263
  247. package/.history/test/js/title_20240430014721.js +0 -262
  248. package/.history/test/js/title_20240430014759.js +0 -254
  249. package/.history/test/js/title_20240430134612.js +0 -285
  250. package/.history/test/js/title_20240430141051.js +0 -285
  251. package/.history/test/js/title_20240430173745.js +0 -245
  252. package/.history/tsconfig_20240812174230.json +0 -22
  253. package/.history/tsconfig_20240824010157.json +0 -19
  254. package/.history/tsconfig_20240824220700.json +0 -20
  255. package/.history/tsconfig_20240825011301.json +0 -20
  256. package/.history/webpack.config_20240423002825.js +0 -37
  257. package/.history/webpack.config_20240430001157.js +0 -38
  258. package/.history/webpack.config_20240430001309.js +0 -37
  259. package/.history/webpack.config_20240430002112.js +0 -37
  260. package/CLAUDE.md +0 -96
  261. package/LICENSE +0 -21
  262. package/coverage/lcov-report/base.css +0 -224
  263. package/coverage/lcov-report/block-navigation.js +0 -87
  264. package/coverage/lcov-report/core/drawer.ts.html +0 -1264
  265. package/coverage/lcov-report/core/index.html +0 -146
  266. package/coverage/lcov-report/core/resourceManager.ts.html +0 -136
  267. package/coverage/lcov-report/core/scenarioManager.ts.html +0 -373
  268. package/coverage/lcov-report/favicon.png +0 -0
  269. package/coverage/lcov-report/index.html +0 -146
  270. package/coverage/lcov-report/prettify.css +0 -1
  271. package/coverage/lcov-report/prettify.js +0 -2
  272. package/coverage/lcov-report/resource/ImageObject.ts.html +0 -433
  273. package/coverage/lcov-report/resource/index.html +0 -131
  274. package/coverage/lcov-report/resource/soundObject.ts.html +0 -346
  275. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  276. package/coverage/lcov-report/sorter.js +0 -196
  277. package/coverage/lcov-report/utils/TextMeasurer.ts.html +0 -520
  278. package/coverage/lcov-report/utils/index.html +0 -161
  279. package/coverage/lcov-report/utils/logger.ts.html +0 -142
  280. package/coverage/lcov-report/utils/store.ts.html +0 -151
  281. package/coverage/lcov-report/utils/waitUtil.ts.html +0 -97
  282. package/coverage/lcov.info +0 -882
  283. package/dist/README.md +0 -294
  284. package/dist/engineConfig.json +0 -10
  285. package/dist/package.json +0 -51
  286. package/dist/parser/cli.js +0 -61
  287. package/dist/parser/parser.js +0 -53
  288. package/dist/src/core/drawer.js.map +0 -1
  289. package/dist/src/core/scenarioManager.js.map +0 -1
  290. package/dist/src/utils/logger.js.map +0 -1
  291. package/dist/src/utils/store.js.map +0 -1
  292. package/dist/webtalekit-alpha-0.2.13.tgz +0 -0
  293. package/docs/event-system-specification.md +0 -493
  294. package/docs/glossary.html +0 -833
  295. package/docs/index.html +0 -296
  296. package/docs/tag-reference.html +0 -1317
  297. package/docs/ui-template-guide.html +0 -1068
  298. package/example/README.md +0 -29
  299. package/example/engineConfig.json +0 -10
  300. package/example/package-lock.json +0 -5145
  301. package/example/package.json +0 -26
  302. package/example/src/index.js +0 -13
  303. package/example/src/resource/background/beach.jpg +0 -0
  304. package/example/src/resource/background/city.jpg +0 -0
  305. package/example/src/resource/background/crossroad.jpg +0 -0
  306. package/example/src/resource/background/forest.jpg +0 -0
  307. package/example/src/resource/background/laboratory.jpg +0 -0
  308. package/example/src/resource/background/library.jpg +0 -0
  309. package/example/src/resource/background/living_room.jpg +0 -0
  310. package/example/src/resource/background/music_room.jpg +0 -0
  311. package/example/src/resource/background/stage.jpg +0 -0
  312. package/example/src/resource/background/sunset.jpg +0 -0
  313. package/example/src/resource/background/title_bg.png +0 -0
  314. package/example/src/resource/bgm/calm_music.wav +0 -0
  315. package/example/src/resource/bgm/doorbell.mp3 +0 -0
  316. package/example/src/resource/bgm/nc366476_Virtual_Voyage.mp3 +0 -0
  317. package/example/src/resource/bgm/title_theme.mp3 +0 -0
  318. package/example/src/resource/chara/dancer.png +0 -0
  319. package/example/src/resource/chara/guest.png +0 -0
  320. package/example/src/resource/chara/guide.png +0 -0
  321. package/example/src/resource/chara/scientist.png +0 -0
  322. package/example/src/resource/config.js +0 -0
  323. package/example/src/resource/se/doorbell.mp3 +0 -0
  324. package/example/src/resource/system/systemPicture/01_message/message.png +0 -0
  325. package/example/src/resource/system/systemPicture/02_button/button.png +0 -0
  326. package/example/src/resource/system/systemPicture/02_button/button2.png +0 -0
  327. package/example/src/resource/system/systemPicture/02_button/button3.png +0 -0
  328. package/example/src/resource/system/systemPicture/03_system_button/auto.png +0 -0
  329. package/example/src/resource/system/systemPicture/03_system_button/auto2.png +0 -0
  330. package/example/src/resource/system/systemPicture/03_system_button/close.png +0 -0
  331. package/example/src/resource/system/systemPicture/03_system_button/close2.png +0 -0
  332. package/example/src/resource/system/systemPicture/03_system_button/config.png +0 -0
  333. package/example/src/resource/system/systemPicture/03_system_button/config2.png +0 -0
  334. package/example/src/resource/system/systemPicture/03_system_button/load.png +0 -0
  335. package/example/src/resource/system/systemPicture/03_system_button/load2.png +0 -0
  336. package/example/src/resource/system/systemPicture/03_system_button/log.png +0 -0
  337. package/example/src/resource/system/systemPicture/03_system_button/log2.png +0 -0
  338. package/example/src/resource/system/systemPicture/03_system_button/menu.png +0 -0
  339. package/example/src/resource/system/systemPicture/03_system_button/menu2.png +0 -0
  340. package/example/src/resource/system/systemPicture/03_system_button/qload.png +0 -0
  341. package/example/src/resource/system/systemPicture/03_system_button/qload2.png +0 -0
  342. package/example/src/resource/system/systemPicture/03_system_button/qsave.png +0 -0
  343. package/example/src/resource/system/systemPicture/03_system_button/qsave2.png +0 -0
  344. package/example/src/resource/system/systemPicture/03_system_button/save.png +0 -0
  345. package/example/src/resource/system/systemPicture/03_system_button/save2.png +0 -0
  346. package/example/src/resource/system/systemPicture/03_system_button/screen.png +0 -0
  347. package/example/src/resource/system/systemPicture/03_system_button/screen2.png +0 -0
  348. package/example/src/resource/system/systemPicture/03_system_button/skip.png +0 -0
  349. package/example/src/resource/system/systemPicture/03_system_button/skip2.png +0 -0
  350. package/example/src/resource/system/systemPicture/03_system_button/title.png +0 -0
  351. package/example/src/resource/system/systemPicture/03_system_button/title2.png +0 -0
  352. package/example/src/resource/system/systemPicture//345/210/251/347/224/250/350/246/217/347/264/204.txt +0 -0
  353. package/example/src/resource/system/wait.gif +0 -0
  354. package/example/src/scene/animation.scene +0 -28
  355. package/example/src/scene/background.scene +0 -29
  356. package/example/src/scene/character.scene +0 -26
  357. package/example/src/scene/choice.scene +0 -97
  358. package/example/src/scene/dialog.scene +0 -105
  359. package/example/src/scene/effects.scene +0 -38
  360. package/example/src/scene/en/animation.scene +0 -28
  361. package/example/src/scene/en/background.scene +0 -26
  362. package/example/src/scene/en/character.scene +0 -26
  363. package/example/src/scene/en/choice.scene +0 -32
  364. package/example/src/scene/en/effects.scene +0 -37
  365. package/example/src/scene/en/sound.scene +0 -26
  366. package/example/src/scene/en/text.scene +0 -26
  367. package/example/src/scene/en/title.scene +0 -39
  368. package/example/src/scene/if_test.scene +0 -37
  369. package/example/src/scene/resource-error-test.scene +0 -15
  370. package/example/src/scene/save-load-test.scene +0 -48
  371. package/example/src/scene/sound.scene +0 -26
  372. package/example/src/scene/test_error.scene +0 -21
  373. package/example/src/scene/text.scene +0 -34
  374. package/example/src/scene/title.scene +0 -51
  375. package/example/src/screen/incoming.html +0 -474
  376. package/example/src/screen/title.html +0 -135
  377. package/example/src/template.html +0 -16
  378. package/example/test-results/.last-run.json +0 -4
  379. package/example/webpack.config.js +0 -69
  380. package/image.png +0 -0
  381. package/playwright-report/index.html +0 -71
  382. package/s-plan1-5Light-s-1.jpg +0 -0
  383. package/test-results/.last-run.json +0 -6
  384. package/tests/e2e/if-global-attribute.spec.js +0 -90
  385. package/tests/e2e/resource-error-handling.spec.js +0 -58
  386. package/tests/e2e/screenshots/before-error-check.png +0 -0
  387. package/tests/e2e/screenshots/choices.png +0 -0
  388. package/tests/e2e/screenshots/message-window-click-wait.png +0 -0
  389. /package/{dist/src → src}/core/resourceManager.js +0 -0
  390. /package/{dist/src → src}/core/resourceManager.js.map +0 -0
  391. /package/{dist/src → src}/resource/ImageObject.js +0 -0
  392. /package/{dist/src → src}/resource/ImageObject.js.map +0 -0
  393. /package/{dist/src → src}/resource/soundObject.js +0 -0
  394. /package/{dist/src → src}/resource/soundObject.js.map +0 -0
  395. /package/{dist/src → src}/utils/fallbackTemplate.js +0 -0
  396. /package/{dist/src → src}/utils/fallbackTemplate.js.map +0 -0
  397. /package/{dist/src → src}/utils/waitUtil.js +0 -0
  398. /package/{dist/src → src}/utils/waitUtil.js.map +0 -0
@@ -1,833 +0,0 @@
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>