【体験版】the School love of Cheyenne Point


ABOUT
両親の仕事の都合でシャイアン・ポイント学園に転校してきたあなた。
これから様々な人々と交流し、色々なイベントを経験してゆきます。
部活に恋に、忙しくも楽しい学生生活を満喫しましょう!
これから様々な人々と交流し、色々なイベントを経験してゆきます。
部活に恋に、忙しくも楽しい学生生活を満喫しましょう!
CHARACTER
HOW TO PLAY
学園生活を送ると様々な選択肢に遭遇します。
様々なキャラクターに遭遇したり、イベントが起こることがあるかもしれません。
ハッピーエンドになるか、バッドエンドになるかはあなた次第!
様々なキャラクターに遭遇したり、イベントが起こることがあるかもしれません。
好きな選択肢を選んでみましょう!
選択肢によってはキャラクターとの親睦が深まったり、特別なイベントを見ることができるかも……?
ハッピーエンドになるか、バッドエンドになるかはあなた次第!


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Game</title> <style type="text/css"> @import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&display=swap'); html { font-family: "M PLUS Rounded 1c", sans-serif; font-weight: 400; font-style: normal; } #start { position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("https://scp-jp-storage.wikidot.com/local--files/file:4137401-77-k1fd/%E3%83%8E%E3%83%99%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A1%E3%82%A4%E3%83%B3%E7%94%BB%E9%9D%A2.png"); background-size: contain; background-repeat: no-repeat; background-position: center; } #start_btn { position: absolute; top: 50%; left: 0; display: inline-block; padding: 2vw 5vw; background: linear-gradient(180deg, rgba(255, 39, 191, 1) 0%, rgba(255, 145, 99, 1) 66%); cursor: pointer; font-size: 3vw; font-weight: 700; transition: all 200ms ease-in-out; transform: scale(1); } #start_btn:hover { transform: scale(1.03); transform-origin: center; } #main { width: 100vw; height: 100vh; overflow: hidden; position: relative; } #bg { position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 100vw; height: 56.25vw; z-index: 1; background-size: contain; background-repeat: no-repeat; background-position: center; background-image: url("https://scp-jp-storage.wikidot.com/local--files/file:4137401-77-k1fd/%E3%83%8E%E3%83%99%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A1%E3%82%A4%E3%83%B3%E7%94%BB%E9%9D%A2.png"); } #window { position: relative; width: 100vw; height: 56.25vw; z-index: 2; background-size: contain; background-repeat: no-repeat; background-position: center; background-image: url("https://scp-jp-storage.wikidot.com/local--files/file:4137401-82-lqqa/%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6.png"); } #name { position: absolute; top: 34.5vw; left: 8%; width: 100vw; height: 30px; line-height: 30px; z-index: 3; font-size: 3vw; font-weight: 700; color: white; } @media (max-width: 940px) { #name { top: 34vw; } } @media (max-width: 670px) { #name { top: 33vw; } } @media (max-width: 450px) { #name { top: 32vw; } } @media (max-width: 330px) { #name { top: 30vw; } } #text { position: absolute; bottom: 3vw; left: 5%; width: 70%; height: 13vw; font-size: 2.5vw; color: white; text-shadow: 0 0 5px black; } #character { width: 65%; height: 100%; top: 0; right: 0; position: absolute; z-index: 1; background-image: url("https://scp-jp-storage.wikidot.com/local--files/file:4137401-54-1dvs/073_default_1.png"); background-size: 100%; background-position: bottom center; } #next_btn { position: absolute; bottom: 3vw; right: 5%; font-weight: 700; height: 3vw; font-size: 2.5vw; color: white; text-shadow: 0 0 5px black; z-index: 2; cursor: pointer; } #end { position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; background-image: url("https://scp-jp-storage.wikidot.com/local--files/file:4137401-77-k1fd/%E3%83%8E%E3%83%99%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A1%E3%82%A4%E3%83%B3%E7%94%BB%E9%9D%A2.png"); background-size: contain; background-repeat: no-repeat; background-position: center; } #end_desc { position: absolute; top: 50%; left: 5%; width: 100vw; height: 30vh; z-index: 1; } #end_desc_heading { font-size: 3vw; font-weight: 700; color: white; margin-bottom: 0.5rem; text-shadow: 0 0 5px black; } #end_desc_text { font-size: 2vw; color: white; line-height: 1.5; text-shadow: 0 0 5px black; } </style> <!-- preload all images --> </head> <body> <div id="game"> <div id="start" style="display: block"> <div id="start_btn"> NEW GAME </div> </div> <div id="main" style="display: none"> <div id="bg"> <div id="window"> <div id="name">なまえ</div> <div id="text">てきすと</div> </div> <div id="character"></div> <div id="next_btn"> <div id="next_btn_text">Click to NEXT</div> </div> </div> </div> <div id="end" style="display: none"> <div id="end_desc"> <div id="end_desc_heading"> 体験版はここまでです </div> <div id="end_desc_text"> プレイしていただき、ありがとうございました! <br> 続きは製品版でお楽しみください。 </div> </div> </div> </div> </body> <script type="text/javascript"> let userName = ""; let currentIndex = 0; let isAnimating = false; // テキストアニメーション中かどうかのフラグ let animationTimerId = null; // アニメーションタイマーID let skipAnimation = false; // アニメーションスキップフラグ // ノベルゲームの内容 const CONTENTS = [ { "name": "[[USERNAME]]", "text": `「いけな~い遅刻遅刻!」 今日は私が私立シャイアン・ポイント学園へ転入する日! 本当は手続きのためにもっと早く登校するはずだったのに寝坊しちゃって最悪……`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `まあいいか!気を取り直していこう! 新しい学校、一体どんなことが待ち受けているんだろう!ワクワクだよ~~~!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `あっ!曲がり角から人が! 危ない!ぶつかる!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `ドシン!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `いたた......`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "???", "text": `「ごめんなさい、お怪我はありませんか?」`, "background": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-78-pmmo/073_%E3%82%B9%E3%83%81%E3%83%AB1.png", "character": null }, { "name": "[[USERNAME]]", "text": `「はっ、はい!」`, "background": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-78-pmmo/073_%E3%82%B9%E3%83%81%E3%83%AB1.png", "character": null }, { "name": "[[USERNAME]]", "text": `なんだかかっこいい人に覆いかぶさられている。`, "background": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-78-pmmo/073_%E3%82%B9%E3%83%81%E3%83%AB1.png", "character": null }, { "name": "???", "text": `「本当に申し訳ありません……今すぐどきますね。お手をどうぞ」`, "background": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-78-pmmo/073_%E3%82%B9%E3%83%81%E3%83%AB1.png", "character": null }, { "name": "[[USERNAME]]", "text": `「あ……ありがとうございます」`, "background": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-78-pmmo/073_%E3%82%B9%E3%83%81%E3%83%AB1.png", "character": null }, { "name": "???", "text": `「その制服……もしかしてうちの…シャイアン・ポイント学園の生徒ですか? それにしては見ない顔ですね……もしかして転入生ですかね。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "[[USERNAME]]", "text": `「そうですけど……」 この人、全校生徒の顔を覚えているの……?`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "???", "text": `「そうですか、シャイアン・ポイント学園にようこそ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-57-va2r/073_smile_2.png" }, { "name": "???", "text": `「それでは、またお会いしましょう。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-57-va2r/073_smile_2.png" }, { "name": "[[USERNAME]]", "text": `……かっこいい人だったな。 でも結局誰だったんだろう……?`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `「って、ぼーっとしてたらもうこんな時間!?急がなくちゃ!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-97-9dem/%E9%80%9A%E5%AD%A6%E8%B7%AF.png", "character": null }, { "name": "[[USERNAME]]", "text": `遅刻しなくて助かった~ 知らない人だらけで緊張するなぁ…… 担任の先生はどんな人だろう。`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "???", "text": `「おい、お前ら席につけ~」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "[[USERNAME]]", "text": `あっ!先生がきた…… うわっ、めっちゃアロハじゃん。教職員がアロハ着て許されるの?`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "???", "text": `「転校生がいるから一応自己紹介しておくぞ。 私はこのクラスの担任のクレフだ。よろしくな。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "クラスの男子", "text": `「転校生ってやっぱあの子か!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "クラスの女子", "text": `「なのにそんなによれよれの白衣で大丈夫なの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "クレフ", "text": `「うるせぇなあ~ とにかく転校生を紹介するぞ。前に出てきてくれ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "[[USERNAME]]", "text": `「は、はい! 私の名前は———[[USERNAME]]です。よろしくお願いします。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "クレフ", "text": `「[[USERNAME]]さんは両親の仕事の都合でこっちに引っ越してきたんだ。 お前ら仲良くしてやれよ~」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "クラス全員", "text": `「は~い!!!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-72-vkrw/clef_default_2.png" }, { "name": "[[USERNAME]]", "text": `クラスの皆、優しそうでよかった~! 目指せ!友達100人!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "", "text": `がやがや.....`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "クラスの男子", "text": `「どこから引っ越してきたんだ?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-74-85bw/mob1_default_2.png" }, { "name": "[[USERNAME]]", "text": `「████からだよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-74-85bw/mob1_default_2.png" }, { "name": "クラスの女子", "text": `「入る部活とか決めてる?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-76-l7cx/mob2_default_2.png" }, { "name": "[[USERNAME]]", "text": `「う~ん、まだ決めてないな。どんな部活があるの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-76-l7cx/mob2_default_2.png" }, { "name": "", "text": `わいわい がやがや.....`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "[[USERNAME]]", "text": `ふう…質問が多くて疲れたな…`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "???", "text": `「ねえ、[[USERNAME]]さん? 私、アイリスっていうの。よろしくね!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `こちらこそよろしく!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「転校してきたばかりだから、 まだこの学校のことをわかってないよね…… よければ私が案内しようか?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `「えっ、いいの?ありがとう!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `親切な子……友達になれたらいいな!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "", "text": `キーン コーン カーン コーン.......`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "[[USERNAME]]", "text": `昼休憩だ!`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-95-7a0q/%E6%95%99%E5%AE%A4.png", "character": null }, { "name": "アイリス", "text": `「まずここ、職員室! 先生に用がある時はここに来るといいよ~」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `「この学校、先生の恰好が個性的だね……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「本当だよね!教頭が結構自由な人だからかなぁ…… じゃあ次行こうか!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "???", "text": `「おや、また会いましたね。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "[[USERNAME]]", "text": `「えっ?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "アイリス", "text": `「わあ!生徒会長だ![[USERNAME]]さん、もう生徒会長と知り合いだったの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-68-7fdr/105_surprised.png" }, { "name": "[[USERNAME]]", "text": `「えっ!この人が生徒会長!?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "???", "text": `「今朝は話している時間がありませんでしたからね…… 改めて自己紹介をしますね。私はカイン。この学園の生徒会長をしています。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "[[USERNAME]]", "text": `生徒会長だったんだ……どうしよう、緊張するよ……`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-55-tn58/073_default_2.png" }, { "name": "カイン", "text": `「ふふ、そんなに緊張しないで。何か困ったことがあれば何でも相談してくださいね。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-57-va2r/073_smile_2.png" }, { "name": "[[USERNAME]]", "text": `「はい!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-57-va2r/073_smile_2.png" }, { "name": "[[USERNAME]]", "text": `「ふぅ……朝ぶつかった人がまさか生徒会長だったなんて……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": null }, { "name": "アイリス", "text": `「生徒会長はすごく優しいから、そこまで緊張しなくていいよ!困ったことは何でも相談にのってくれるんだよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「実は彼、弟もいるんだけど……<span style="font-size: 50%">本当に似てないよねあの二人…</span>」`, "text_html": true, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-65-ih5n/105_sad_2.png" }, { "name": "[[USERNAME]]", "text": `「?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-65-ih5n/105_sad_2.png" }, { "name": "アイリス", "text": `「ううん、何でもないよ!行こう!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-96-wbag/%E8%81%B7%E5%93%A1%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-63-b7pc/105_default_1.png" }, { "name": "アイリス", "text": `「次はここ!保健室! 怪我したらすぐここに来て先生に手当してもらってね。 気分が悪くなった時もすぐ言うんだよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `「うん。それにしても…… 保健室っていつもこんなに人でいっぱいなの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「あはは……いつもはここまでではないんだけど…… 多分どこかで喧嘩があったのかな?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `この学校ってもしかしてかなり物騒だったりする?`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "???", "text": `「おい、邪魔だ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-60-cyd4/076_default_2.png" }, { "name": "アイリス", "text": `「げぇっ!最悪! また喧嘩してたの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "[[USERNAME]]", "text": `大きくて怖い人が二人立っている……`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "???", "text": `「どうしようと私の勝手だろう。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-58-sd5s/076_angry_2.png" }, { "name": "???", "text": `「フン!忌々しい……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-69-kpg7/682_angry_1.png" }, { "name": "アイリス", "text": `「こんなところにいたら巻き込まれちゃいそう……行くよ、[[USERNAME]]!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "[[USERNAME]]", "text": `「う、うん!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "アイリス", "text": `「ごめんね……まさかあの二人が喧嘩してるタイミングなんて……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-65-ih5n/105_sad_2.png" }, { "name": "[[USERNAME]]", "text": `「もしかして知り合いなの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-65-ih5n/105_sad_2.png" }, { "name": "アイリス", "text": `「うーん……知り合いというか……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-65-ih5n/105_sad_2.png" }, { "name": "アイリス", "text": `「あの髪の長い方はアベル。私が勝手に巻き込まれた部活の部長で不良だよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "http://localhost:8000/images/game/splite/105_default_3.png" }, { "name": "アイリス", "text": `「もう片方は……学年が違うから名前は知らないんだけど、よく色んな人と喧嘩していて有名な不良だよ。クソトカゲってあだ名で呼ばれてる。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "http://localhost:8000/images/game/splite/105_default_3.png" }, { "name": "アイリス", "text": `「あの二人には近寄らないほうがいいよ!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "[[USERNAME]]", "text": `「うん……そうみたいだね……気を付ける。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-91-vciz/%E4%BF%9D%E5%81%A5%E5%AE%A4.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "アイリス", "text": `「気を取り直して、次は図書館!この学校の図書館はすごく大きいからどんな本でもあるよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-92-2og8/%E5%9B%B3%E6%9B%B8%E9%A4%A8.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "[[USERNAME]]", "text": `「本当に大きいね!街の図書館よりも大きいんじゃないの?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-92-2og8/%E5%9B%B3%E6%9B%B8%E9%A4%A8.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「本当だよ~誰がこんな量の本を管理してるんだろうね。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-92-2og8/%E5%9B%B3%E6%9B%B8%E9%A4%A8.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「最後に屋上!ここでお昼ごはんを食べない?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-64-9emd/105_default_2.png" }, { "name": "アイリス", "text": `「と思ってたけど……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "クレフ", "text": `「よう、学校を案内してやってるのか。感心感心。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "[[USERNAME]]", "text": `「クレフ先生、ここで何してるんですか?」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "クレフ", "text": `「何って昼飯食ってるんだよ。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "[[USERNAME]]", "text": `シナモンロールをほおばっている……`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-71-a0y6/clef_default_1.png" }, { "name": "アイリス", "text": `「も~!他の場所で食べてくださいよ!」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "アイリス", "text": `「ご飯は教室で食べようか。」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, { "name": "[[USERNAME]]", "text": `「うん……」`, "background": "http://scp-jp-storage.wikidot.com/local--files/file:4137401-93-foni/%E5%B1%8B%E4%B8%8A.png", "character": "https://scp-jp-storage.wikidot.com/local--files/file:4137401-61-9kvx/105_angry_2.png" }, ] // テキストを一文字ずつ表示する関数 function animateText(element, text, index = 0) { isAnimating = true; // アニメーションスキップの確認 if (skipAnimation) { element.textContent = text; isAnimating = false; skipAnimation = false; return; } if (index < text.length) { element.textContent += text.charAt(index); // タイマーIDを保存して後でキャンセルできるようにする animationTimerId = setTimeout(() => animateText(element, text, index + 1), 50); // 0.05秒ごとに1文字表示 } else { isAnimating = false; animationTimerId = null; } } // HTMLテキストを一文字ずつ表示する関数(タグを考慮) function animateHTMLText(element, html) { isAnimating = true; let plainText = html.replace(/<[^>]*>/g, ''); let currentText = ''; let textIndex = 0; let htmlIndex = 0; // アニメーションスキップの確認 if (skipAnimation) { element.innerHTML = html; isAnimating = false; skipAnimation = false; return; } function addNextChar() { // アニメーションスキップの確認 if (skipAnimation) { element.innerHTML = html; isAnimating = false; skipAnimation = false; return; } if (textIndex >= plainText.length) { element.innerHTML = html; isAnimating = false; animationTimerId = null; return; } // 次のプレーンテキスト文字を探す while (htmlIndex < html.length) { if (html[htmlIndex] === '<') { // タグの始まりを見つけたら、終わりまで全て追加 let tagEnd = html.indexOf('>', htmlIndex); if (tagEnd !== -1) { currentText += html.substring(htmlIndex, tagEnd + 1); htmlIndex = tagEnd + 1; } else { // タグが閉じられていない場合(エラー処理) currentText += html[htmlIndex]; htmlIndex++; } } else { // プレーンテキスト文字を追加 currentText += html[htmlIndex]; htmlIndex++; textIndex++; break; } } element.innerHTML = currentText; // タイマーIDを保存 animationTimerId = setTimeout(addNextChar, 50); // 0.05秒ごとに1文字表示 } addNextChar(); } // シナリオを表示する関数 function showContent(index) { if (index >= CONTENTS.length) { // シナリオが終了した場合、エンド画面を表示 document.getElementById("main").style.display = "none"; document.getElementById("end").style.display = "block"; // イベントリスナ解除 document.getElementById("main").removeEventListener("click", setupClickEvent); return; } // アニメーションの状態をリセット isAnimating = false; skipAnimation = false; if (animationTimerId !== null) { clearTimeout(animationTimerId); animationTimerId = null; } const content = CONTENTS[index]; const nameElement = document.getElementById("name"); const textElement = document.getElementById("text"); const bgElement = document.getElementById("bg"); const characterElement = document.getElementById("character"); // 名前の表示([[USERNAME]]を置き換え) nameElement.textContent = content.name.replace(/\[\[USERNAME\]\]/g, userName); // テキストの初期化 textElement.textContent = ""; // テキストの表示([[USERNAME]]を置き換え) const displayText = content.text.replace(/\[\[USERNAME\]\]/g, userName); // text_htmlがtrueの場合はinnerHTMLで挿入、それ以外はinnerTextで挿入 if (content.text_html) { textElement.innerHTML = ""; // 一度クリア animateHTMLText(textElement, displayText); } else { animateText(textElement, displayText); } // 背景画像の設定 if (content.background) { bgElement.style.backgroundImage = `url("${content.background}")`; } // キャラクター画像の設定 if (content.character) { characterElement.style.backgroundImage = `url("${content.character}")`; characterElement.style.display = "block"; } else { characterElement.style.display = "none"; } } // クリックイベントの設定 function setupClickEvent() { document.getElementById("main").addEventListener("click", () => { if (isAnimating) { // アニメーション中の場合は、アニメーションをスキップしてテキストを全て表示 const content = CONTENTS[currentIndex]; const textElement = document.getElementById("text"); // アニメーションタイマーをキャンセル if (animationTimerId !== null) { clearTimeout(animationTimerId); animationTimerId = null; } // スキップフラグを設定 skipAnimation = true; // テキストを即時表示 if (content.text_html) { textElement.innerHTML = content.text.replace(/\[\[USERNAME\]\]/g, userName); } else { textElement.textContent = content.text.replace(/\[\[USERNAME\]\]/g, userName); } isAnimating = false; } else { // 次のシナリオへ currentIndex++; showContent(currentIndex); } }); } // 画像プリロード用の関数 function preloadImages() { // プログレスバーを作成(オプション) const preloaderElement = document.createElement('div'); preloaderElement.id = 'preloader'; preloaderElement.style.position = 'fixed'; preloaderElement.style.top = '50%'; preloaderElement.style.left = '50%'; preloaderElement.style.transform = 'translate(-50%, -50%)'; preloaderElement.style.width = '100vw'; preloaderElement.style.height = '56.25vw' preloaderElement.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; preloaderElement.style.zIndex = '9999'; preloaderElement.style.display = 'flex'; preloaderElement.style.flexDirection = 'column'; preloaderElement.style.justifyContent = 'center'; preloaderElement.style.alignItems = 'center'; preloaderElement.style.color = 'white'; const progressBar = document.createElement('div'); progressBar.style.width = '50%'; progressBar.style.height = '20px'; progressBar.style.backgroundColor = '#333'; progressBar.style.borderRadius = '10px'; progressBar.style.overflow = 'hidden'; progressBar.style.marginTop = '20px'; const progressIndicator = document.createElement('div'); progressIndicator.style.width = '0%'; progressIndicator.style.height = '100%'; progressIndicator.style.backgroundColor = '#ff91c3'; progressIndicator.style.transition = 'width 0.3s ease-out'; const progressText = document.createElement('div'); progressText.style.marginTop = '10px'; progressText.style.fontSize = '16px'; progressText.textContent = '画像を読み込み中... 0%'; progressBar.appendChild(progressIndicator); preloaderElement.appendChild(document.createElement('h2')).textContent = '画像読み込み中...'; preloaderElement.appendChild(progressBar); preloaderElement.appendChild(progressText); document.body.appendChild(preloaderElement); // すべての画像URLを取得 const imageUrls = new Set(); // UIの固定画像 imageUrls.add("https://scp-jp-storage.wikidot.com/local--files/file:4137401-77-k1fd/%E3%83%8E%E3%83%99%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A1%E3%82%A4%E3%83%B3%E7%94%BB%E9%9D%A2.png"); imageUrls.add("https://scp-jp-storage.wikidot.com/local--files/file:4137401-82-lqqa/%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6.png"); // CONTENTSから背景とキャラクター画像を抽出 CONTENTS.forEach(content => { if (content.background) { imageUrls.add(content.background); } if (content.character) { imageUrls.add(content.character); } }); // 画像の総数 const totalImages = imageUrls.size; let loadedImages = 0; return new Promise((resolve) => { // 画像が1つもない場合は即時完了 if (totalImages === 0) { document.body.removeChild(preloaderElement); resolve(); return; } // 各画像をプリロード imageUrls.forEach(url => { const img = new Image(); img.onload = () => { loadedImages++; // プログレスバーと情報を更新 const progress = Math.floor((loadedImages / totalImages) * 100); progressIndicator.style.width = `${progress}%`; progressText.textContent = `画像を読み込み中... ${progress}%`; // すべての画像が読み込まれたら完了 if (loadedImages === totalImages) { // 少し遅延を入れて100%表示を見せる setTimeout(() => { document.body.removeChild(preloaderElement); resolve(); }, 500); } }; img.onerror = () => { // エラー時も読み込み済みとしてカウント loadedImages++; console.error(`画像の読み込みに失敗しました: ${url}`); const progress = Math.floor((loadedImages / totalImages) * 100); progressIndicator.style.width = `${progress}%`; progressText.textContent = `画像を読み込み中... ${progress}%`; if (loadedImages === totalImages) { setTimeout(() => { document.body.removeChild(preloaderElement); resolve(); }, 500); } }; img.src = url; }); }); } // ゲーム開始時の処理 document.getElementById("start_btn").addEventListener("click", async () => { userName = prompt("名前を入力してください", "████"); if (userName === null || userName === "") { userName = "████"; } // 画像プリロードの開始 await preloadImages(); // プリロード完了後にゲーム画面を表示 document.getElementById("start").style.display = "none"; document.getElementById("main").style.display = "block"; // 最初のシナリオを表示 currentIndex = 0; // アニメーション状態をリセット skipAnimation = false; showContent(currentIndex); // クリックイベントの設定 setupClickEvent(); }); </script> </html>


















