çŽ1幎åãç§ã®å人ãšç§ã¯ã80æ¥éãèªæµ·ã貿æãå¥åŠãªå± äœå°ã®æ¢çŽ¢ãå¥åŠãªäººæ Œãšã®äŒè©±ã«ã€ããŠããµã³ã¬ã¹ã·ãŒã®ã¹ã¿ã€ã«ã§å°ããªããã¹ãã²ãŒã ãäœãããšã«ããŸããã äž»äººå ¬ã¯æäžäž»ãåœã®è±éãæåãªè¹ä¹ããšã¯èŠãªãããªãããå®æãååšããã¯ãã§ããããäžå¹žãªèµ·æ¥å®¶/åéºå®¶ã§ãããäœãæ°ã«ãããå°æªéãšå€§æªéã®ãã¡ãã·ã§ããã«ãªéžæãè¯ãéžæãšçœ®ãæããŸããããŠè¯ãïŒã°ãªã ããŒã¯ã®ããã«ã°ãªã ããŒã¯ã¯ãããŸããã ããªãè¿ éã«ãäž»èŠæŽŸfactãšãã£ã©ã¯ã¿ãŒã倧ããªæž¯ãæ¿æ²»ç¶æ³ããããŠã¿ã³ã®ã€ã¹ã§ã®æŒïŒKDPVã«æãããŠããïŒãªã©ã®ããããå°ããªãã®ã®æãšãã»ãŒãã¹ãŠã®ãã£ã©ã¯ã¿ãŒã«éåžžã®ãšãŒãããã®ååããããšããŸããã¯ã§ãã³ã¬ãªãŒã®ååãäžãããšããçŽ æŽãããã¢ã€ãã¢ãèãåºãããŸããã äžè¬çã«ãæšé äœå® ããããããããŸããã
åœæãããŒã ã«ã¯1人ã®ã©ã€ã¿ãŒãš1人ã®ããã°ã©ããŒïŒã€ãŸããç§ïŒãããŸããã åã®æ®µèœã®èŠä»¶ã¯ãã²ãŒã ã®èšå®ãšç²Ÿç¥ã«é¢é£ããŠãããããç§ã®å人ã¯ããããæºãããªããã°ãªããŸããã§ãããç§ã®åã«ãã²ãŒã ã®èšèšãšãšã³ãžã³ã®æ©èœã«ã€ããŠã®è³ªåããããŸããã ãŸãããã¬ã€ã€ãŒã¯ã»ãšãã©ã®æéãããã¹ãã®èªã¿åããšã¡ã€ã³ãã£ã©ã¯ã¿ãŒã®ã¢ã¯ã·ã§ã³ã®éžæã«è²»ãããŸãã ãããè¡ãã«ã¯ãé©åãªã¿ã€ãã°ã©ãã£ãšãã¡ãã¥ãŒããªãã·ã§ã³ãå€æ°ã䜿çšããŠã¹ã¯ãªãããäœæããæ©èœã®ã¿ãå¿ èŠã§ãã ããã«ã¢ãŒãã£ã¹ããåå ããã®ã§ãã€ã©ã¹ããèããªããã°ãªããŸããã§ããã 第äºã«ãã²ãŒã ã¯ç 究ãšååŒã«é¢ãããã®ã§ãããããåéããããããè³Œå ¥ããååã«é¢ããæ å ±ãä¿åããããã«ããã¬ã€ã€ãŒãã¢ã¯ã»ã¹å¯èœãªåœ¢åŒã§ã©ããã«å¿ èŠã§ãïŒããããæ¹æ³ã§åŠçããŸãïŒã æåŸã«ãããã²ãŒã·ã§ã³ã«é¢ããã²ãŒã ã§ã¯ãããããšãããããã²ãŒãããæ©èœãå¿ èŠã§ãã ãæ¯ç³ã«æ³³ããã¿ãããªãã·ãŽã®è©±ãèãããšããã³ãã³ãã¯ãæããã«ãããžã§ã¯ãã®ç²Ÿç¥ã«å¯Ÿå¿ããŠããŸããã ããã¯ããšã³ãžã³ãå°ãªããšãã·ã³ãã«ãªããã²ãŒã ããµããŒãããå¿ èŠããããããã¹ãã®è¡šç€ºãšã²ãŒã å€æ°ã®èšç®ã«éå®ãããªãããšãæå³ããŸãã
ãªãRen'Py
ãšã³ãžã³ããŒãããäœæããããšããããªãã£ããšããã«èšã£ãŠããå¿ èŠããããŸãããµã€ã¯ãªã³ã°ã¯æ¥œãããã®ã§ãããåŒéããåã«ã²ãŒã ããªãªãŒã¹ããããšãç®æšã§ããå Žåã¯å¹æããããŸããã ãŸããã€ã³ã¿ã©ã¯ãã£ããã£ã¯ã·ã§ã³ããŒãµãŒãèæ ®ããŸããã§ãããè±èªã§ã¯éåžžã«éãããèŽè¡ããããªãããããã·ã¢èªã§ã¯ããŒãµãŒã®å Žåããããžã§ã¯ãã¯ããããæ°çŸäººã«ããèå³ããããŸããã ããããç§ã¯ãããªãããéãmakeããªããªããå°ãªããšãéä¿¡å·ãéãæããŠãããçš®ã®è©å€ãåŸããã§ãã 幞ããªããšã«ãä»æ¥ã®è±èªã®ããã¹ãã²ãŒã éçºè ã®ã»ãšãã©ã¯ãã»ãã®æ°å¹Žåã«éå¶å©ã®è¶£å³ãããžã§ã¯ãããããã®ã²ãŒã éçºè ã«ãªããŸããã ãããã£ãŠãã¡ã€ã³ãšã³ãžã³ã¯ãªãŒãã³ãœãŒã¹ã§ãããããããã«ããç¡æã§ãã æäŸãããŠãããã®ãèŠãŠã¿ãŸãããã
ç§ã®é ã«æµ®ããã æåã®éžæè¢ã¯ã Failbetterã²ãŒã ãFallen LondonãšSunless Seaã®éçºè ããã®Storynexusã§ãã ã ãã®ãããžã§ã¯ãã¯ãã©ãŠã¶ãä»ããŠç·šéãããFailbetterã«ãã£ãŠãã¹ãããããã©ãŠã¶ãä»ããŠãã¬ã€ã€ãŒãã¢ã¯ã»ã¹ã§ããŸãã åçåã®æ©äŒã¯æšå¹Žããåé€ãããŸããã ãã ããäž»ãªæ¬ ç¹ã¯ããã§ã¯ãããŸããããFallen Londonã®ã€ãã³ãã®ã»ãšãã©ã¯ãããããèœã¡ãŠããã«ãŒãã§è¡šããããã®æ¯phorã䜿çšããªãStorynexusã§ã²ãŒã ãäœæããããšã¯ç°¡åãªäœæ¥ã§ã¯ãããŸããã ãšã«ãããçè«çã«ã¯ãã€ã§ãåäœãåæ¢ããå¯èœæ§ãããã¯ããŒãºããœãŒã¹ã³ãŒãã䜿çšããŠããããžã§ã¯ãããµãŒãããŒãã£ã®ãµãŒããŒã«ç·å¯ã«ãã€ã³ãããããšã¯éåžžã«å±éºã§ãã
Choose Your Own Adventureã«ã¯ã2ã€ã®åªããç¬èªã®ãšã³ãžã³ãã€ãŸãã ChoiceScriptãšInklewriterãšããçš®é¡ã®ã²ãŒã ããããŸã ã ã©ã¡ãããåªããã¿ã€ãã°ã©ãã£ãéçºã®å®¹æãïŒInklewriterã®ãã©ãŠã¶ãŒããŒã¹ã®ãšãã£ã¿ãŒãChoiceScriptã®ã¹ã¯ãªããèšèªïŒãããã³åçšåºçã®å¯èœæ§ãçŽæããŸãã æ®å¿µãªãããã©ã¡ããçŽç²ãªCYOAããè¡ããŸãããå®éã®ããã¹ããã¡ãã¥ãŒãã€ã©ã¹ã以å€ã«ã²ãŒã ã«è¿œå ããæ¹æ³ã¯ãããŸããã 泚ææ·±ãèªè ã¯æ¬¡ã®ããã«å«ã¶ã§ãããã 80æ¥é㧠ãããªãè€éãªåšåº«ãšæ è¡ã®ã€ã³ã¿ãŒãã§ãŒã¹ããããŸããããïŒ ãããŠãœãŒãµãªãŒã§ïŒ æ®å¿µãªããããããã®ã·ã¹ãã ã¯ç¹å®ã®ã²ãŒã çšã«Inkle Studiosã«ãã£ãŠéçºããããã®ã§ããããšãã£ã¿ãŒã«ã¯ãããããå°ãªããšãèªåãåãã«ããæ©äŒã¯ãããŸããã åãçç±ã§ïŒãããŠããããumã«ç¹æã§ãããã ïŒã TwineãæŸæ£ããŸããã
ç§ãã¡ã«åã£ãå¯äžã®ãªãã·ã§ã³ã¯Ren'Pyã§ããã ããã¯ãèŠèŠçãªçç·šå°èª¬çšã®ç¡æã®ãªãŒãã³ãœãŒã¹ãªãŒãã³ãœãŒã¹ãšã³ãžã³ã§ãïŒããšãã°ããEndless SummerããšãKatawa shoujoããäœæãããŠããããšã«åºã¥ããŠããŸãïŒã ã²ãŒã ã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ããWin/ Mac / Linuxçšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãæ§ç¯ããã®ã¯ãã¿ã³ã1ã€æŒãã ãã§ãã¿ãŒã²ããOSãæå ã«çšæããå¿ èŠãããããŸããã AndroidãšiOSãçºè¡šãããŠãããã¢ãã€ã«è»žåãã®Ren'PyãªãªãŒã¹ãååšããŸãããç§ãã¡èªèº«ã¯ãŸã ã¢ãã€ã«åžå Žãç®æããŠãããããã®éçºã«ã€ããŠè©±ãããšã¯ã§ããŸããã ããã«ãRen'Pyã«ã¯ã ãã·ã¢èªãšè±èªã®éåžžã«å奜çã§æŽ»æ°ã®ããã³ãã¥ããã£ããããŸãã
Ren'Pyã®æãåçŽãªã¹ã¯ãªãã
Ren'Pyã¯Python 2.7 + Pygameã§æžãããŠãããç¬èªã®DSLãæã£ãŠããŸãã ãã®èšèªã§ã¯ããŸãããã¢ãã¡ãŒã·ã§ã³ãªãã§bg_city_night_53.pngãèæ¯ãšããŠè¡šç€ºãããnyasha1ããšãããã£ã©ã¯ã¿ãŒã«ä»£ãã£ãŠãã¬ããªã«ã話ãããªã©ã®ã³ãã³ãã«ãããã¹ã¯ãªããèªäœã¯åœä»€åã§èšè¿°ãããŠããŸãã 第äºã«ããã®èšèªã®ãµãã»ããã¯ã¹ã¯ãªãŒã³èšèªã§ãããã®èšèªã§ã¯ãéãããDisplayableã®ã»ããïŒã€ãŸãããŠã£ãžã§ããïŒãã¿ã³ãç»åãããã¹ããã£ãŒã«ããªã©ïŒãã宣èšã¹ã¿ã€ã«ã§ã¹ã¯ãªãŒã³ãçµã¿ç«ãŠããã®æ©èœãæ§æã§ããŸãã çµã¿èŸŒã¿ã®æ©èœã§ã¯äžååãªå Žåã¯ãPythonã䜿çšããŠç¬èªã®æ©èœãè¿œå ã§ããŸãã 次ã®èšäºã§ãããæ±ããŸãããä»ã®ãšããã¯ã¹ã¯ãªãããæ±ããŸãã
Ren'Pyã®ã¹ã¯ãªããã¯ãäžé£ã®ã¬ããªã«ãã¹ã¯ãªãŒã³ã䜿çšããã¢ã¯ã·ã§ã³ãããã³ãã¬ãŒã€ãŒå ¥åã§æ§æãããŠããŸãã ç»é¢ãšå ¥åã«ã€ããŠã¯ããäœãã§ãããæåã¯æåãæ±ããŸãã ããžã¥ã¢ã«ããã«ã§ã¯ããããã¯æ¬¡ã®ããã«äœæãããŸãïŒå ¬åŒãã¥ãŒããªã¢ã«ã®ã³ãŒããããããªå€æŽããïŒïŒ
define m = Character('Me', color="#c8c8ff") define s = Character('Sylvie', color="#c8ffc8") image sylvie smile = "sylvie_smile.png" label start m "Um... will you..." m "Will you be my artist for a visual novel?" show sylvie smile s "Sure, but what is a \"visual novel?\""
äž»äººå ¬ãšã·ã«ããŒã®2人ã®ãã£ã©ã¯ã¿ãŒãäœæãããŸãããã©ã¡ããç»é¢ã®äžéšã®æšæºãŠã£ã³ããŠã«æ·¡ãéè²ã§æžã蟌ã¿ãŸãã ã·ã«ããŒã«ã¯ã話ãå§ããåã«ç»é¢ã«è¡šç€ºãããèåç»ããããŸãã 次ã®ããã«ãªããŸãã
ããžã¥ã¢ã«ããã«ãäœæããå Žåã¯ãåãæ¹æ³ã§ç¶è¡ããŸããããã£ã©ã¯ã¿ãŒã®ããŒãã¬ãŒããã²ãŒã å šäœã®æ°ååã®ã€ã©ã¹ãããã衚瀺ããŸããã ããã«ãããã¹ãã®ã»ãšãã©ã¯ãã£ã©ã¯ã¿ãŒã®çŽæ¥ã®ã¹ããŒãã§ã¯ãªãããããããã®1ã€ã«æ·»ä»ããã®ã¯éè«ççã§ãã ä»®æ³ã¹ããŒãªãŒãã©ãŒãã£ã©ã¯ã¿ãŒãäœæããïŒ
define narrator = Character(None, kind = nvl, what_color="#000000", size = 12)
圌ã®ååã¯ãã¬ãŒã¿ãŒã§ãã ããã¯ãæããã«ä»ã®ãã£ã©ã¯ã¿ãŒã«åž°å±ããªããã¹ãŠã®ããã¹ããäžããç¹å¥ãªååã§ãïŒå³å¯ã«ã¯ã圌ã®ååã¯Noneã§ãããã¬ãŒã¿ãŒã¯ãåã®äŸã®mãsã®ããã«ããã£ã©ã¯ã¿ãŒã®ãªããžã§ã¯ãã眮ãããã¡ãœãããåŒã³åºãããå€æ°ã§ããsayïŒkindåŒæ°ã¯ãadvãšnvlã®2ã€ã®å€ãåããŸãã 1ã€ç®ã¯äžèšã®ããã©ã«ãã®åäœã§ã2ã€ç®ã¯èåç»ã衚瀺ãããªãnvlã¢ãŒããå«ã¿ãããã¹ããã£ãŒã«ããç»é¢ã®å€§éšåãå ããŸãã ãŸãã«å¿ èŠãªãã®ã ãã®ã¢ãŒãã¯ãscreens.rpyãã¡ã€ã«ã®nvl_screenç»é¢ãšstyles.nvl *ã¹ã¿ã€ã«ã®ã°ã«ãŒãïŒããããscreens.rpyãã¡ã€ã«ãšoptions.rpyãã¡ã€ã«ïŒã§èšè¿°ããããã©ã³ããããã¹ããã£ãŒã«ãã®èæ¯ãã¡ãã¥ãŒã®è²ãªã©ãèšå®ããŸãã
label start: image bg monet_palace_image = Image('images/1129_monet_palace.jpg', align=(0 .5, 0.5)) nvl clear hide screen nvl scene bg monet_palace_image $ Ren'Py.pause(None) " â : â , , , , !"
è¡ããšã«åæããŸãããŸããéå§ã©ãã«ãçºè¡šãããããããã²ãŒã ãéå§ãããŸãã ãã®ååã¯äºçŽãããŠãããã¹ã¯ãªããå ã®ã©ãã«ããŠããæ°ããã²ãŒã ããã¿ã³ãã¯ãªãã¯ããåŸããšã³ãžã³ã¯åžžã«ãã®ååã«ç§»åããŸãã ã©ãã«ã«ç¶ããã®ã¯ãã¹ãŠè«ççã«ãã®ã©ãã«ã®ãå åŽãã«ãããããã€ã³ãã³ãã«ãã£ãŠåºå¥ãããŸããçŽç²ãªpythonã®å Žåãšåãããã«Ren'Pyã§ãæ©èœããŸãã ç»åã®åæåã¯éåžžã«æçœã§ããã次ã®è¡ã¯éèŠãªããšãè¡ããŸãïŒnvl_screenç»é¢ãããã¹ãŠã®ããã¹ããåé€ããŸãã ããã¯èªåçã«ã¯è¡ãããªããããåããŒãžã®æåŸã«nvl clearãé 眮ããªãå Žåãããã¹ãã¯ç»é¢ããéãã«æ¶ããç»é¢ãæçµçã«ã¯ãªã¢ããããŸã§ããã«è¡šç€ºãããŸãã ããã¯äºçŽ°ãªããšã®ããã«æããŸãããç§ã¯èªããæºåãã§ããŠãããããã¯ããã«å€ãã®æéããããŠãæ¬ èœããŠããnvl clearããããã°ããŸããã æ°ããæŽæµããç»é¢ãäžæçã«åé€ããŠããã¬ãŒã€ãŒãèæ¯ãéè³ããèæ¯ã衚瀺ããç¡éã®äžæåæ¢ããªã³ã«ãïŒã¯ãªãã¯ãåŸ ã€ïŒãã¹ããŒãªãŒãéå§ã§ããããã«ããŸãã ããã¹ããnvl_screenã«è¡šç€ºããå§ãããšããã«ãç»é¢èªäœãå ã®å Žæã«æ»ããŸãã
ã¡ãªã¿ã«ãäžæåæ¢ã®ããè¡ã¯æ¢ã«pythonã«ãããŸãã1è¡ãå«ããã«ã¯ã '$'ã§å§ããã ãã§ååã§ãã'pythonïŒ 'ãããã¯å ã«é·ãã³ãŒããèšè¿°ããå¿ èŠããããŸãã ã²ãŒã ã«ãã£ãŠå®è¡ãããã³ãŒãã¯Ren'Pyèªäœã®ã¢ãžã¥ãŒã«ãåç §ãããããããããæ瀺çã«ã€ã³ããŒãããå¿ èŠã¯ãããŸããã
åå²ãšå€æ°ãè¿œå ãã
ãã®æç¹ã§ãã²ãŒã ã¯ããã¹ãã衚瀺ãããªãŒããŒã§ãããå¿ èŠã«å¿ããŠèæ¯ãå€æŽããŸãã ã¡ã€ã³ã¡ãã¥ãŒãšèšå®ã®ä¿åãå·»ãæ»ãã¯ããã§ã«ç®±ããåºããŠåäœããŸãã ããããã€ã©ã¹ãå ¥ãã®ã¹ããŒãªãŒãæžãããã®ãªãããããæžããã§ããããïŒ ããã¹ãã®åã«å°ããªã¡ãã¥ãŒãè¿œå ããŸãã
label start: menu: " ": $ debug_mode = True jump debug_menu " ": jump the_very_start_lazlo_nooptions " ": label the_very_start: #show screen nvl nvl clear hide screen nvl scene bg monet_palace_image $ Ren'Py.pause(None) " â : â , , , , !"
ããã§ãã²ãŒã ããªã³ã«ããåŸããŠãŒã¶ãŒïŒãŸãã¯éçºè ïŒã¯ãå¿ èŠã«å¿ããŠãããã°ã¢ãŒãã«å ¥ãããå°å ¥ã®æ¢è£œã®éšåãã¹ãããããŠãæåŸã®ã³ãããããããã«éšåã®ãã¹ããéå§ã§ããŸãã line show screen nvlã¯äžèŠãšããŠã³ã¡ã³ãã¢ãŠããããŠããŸã-åè¿°ã®ããã«ãç»é¢ã¯ããã¹ããæŽæ°ããããšèªåçã«è¡šç€ºãããŸãã ã芧ã®ããã«ãã³ã¡ã³ãã¯çµ¶å¯Ÿã«æçœãªæ¹æ³ã§æ©èœããŸãã
ã©ãã«ãã¡ãã¥ãŒããã®ä»ã®ã€ã³ãã³ãããããããã¯ã¯ãä»»æã®æ·±ãã«ãã¹ãã§ããŸãããå®éã«ã¯ãããã¹ãã10ããŒãžã®ãšããœãŒãã«åå²ããããšããŸãã ãã®ãããªåãšããœãŒãã¯ãã€ã³ãã³ããªãã®åå¥ã®ã©ãã«å ã«èšè¿°ããïŒéå§ã©ãã«å ãŸãã¯åããã¡ã€ã«å ã«ããå¿ èŠã¯ãããŸããïŒããããšããœãŒãããå¥ã®ãšããœãŒããžã®ç§»è¡ã¯ãžã£ã³ãã«ãã£ãŠå®è¡ãããŸãã ãããã£ãŠãæ°å段éã®ã€ã³ãã³ããšæŠãã ãã§ãªããã³ãŒãã®ã¢ãžã¥ãŒã«æ§ãæäŸããŸããåãšããœãŒããåå¥ã«ãã¹ãã§ããã©ã®å€æ°ãèªã¿åããæžã蟌ã¿ãã©ãã«ç§»åã§ããããç°¡åã«ç¢ºèªã§ããŸãã
ã²ãŒã å ã®ã¡ãã¥ãŒãšå€æ°ã¯ãŸã£ããåãããã«é 眮ãããŠããŸãã ã²ãŒã ã®10åéã®çããšããœãŒãã§ãä¿¡ããããªãã»ã©ã®éã®å€æ°ãšã©ãã«ãããããããã³ã¬ãªãŒèªè¡šèšã®ã·ã³ãã«ãªããŒãžã§ã³ãæ¡çšããŸããã ïŒããšããœãŒãlazloã®ååïŒã€ãŸããè¥ãããŒãã¡ãŒãè¹å¡ãšããŠéãããšãã§ããLazloããã®å€§æŽãïŒãšã©ãã«èªäœã®ååã ãã®ã¢ãããŒãã§ã¯ãååã¯ããªãé¢åã§ããã3ãæåã«èª°ããship_listingå€æ°ãäœæããTrue Godã1ã€ã®ã©ã³ãã ã€ãã³ãã®ããŒã«ãããäžæ¹ã®ã©ã³ãã ã€ãã³ãã®çµæã«åœ±é¿ãäžããå Žæãç¥ã£ãŠããããšããã¹ããããããåªããŠããŸãæµ·ã
çµè«ã®ä»£ããã«
ãã®æç¹ã§ãRen'Pyã§äžèšã®Choicescriptããã³inklewriterã®æ©èœãæ¢ã«åçŸããŠããŸãã ç§ãã¡ã®ããŒãã¯èªæµ·ããæºåãã§ããŠããããã§ãã 次ã®èšäºã§ã¯ãç»é¢äžã®èšèªRenPyã䜿çšããŠããè€éãªã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããã«çŽç²ãªpythonã䜿çšããŠããã«è€éãªã€ã³ã¿ãŒãã§ã€ã¹ãäœæããæ¹æ³ã瀺ããŸãã