Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
1週間でノベルゲームはつくれるか
Search
かくひと
August 30, 2025
0
25
1週間でノベルゲームはつくれるか
ノベルゲームを1週間で作った知見を共有します。
1. ステートマシン
2. 話作り
3. ノベルゲームぽくすること
かくひと
August 30, 2025
Tweet
Share
More Decks by かくひと
See All by かくひと
等身大のゲームづくり
kakuhito
0
60
クッキークリッカーは1週間で作れるか?
kakuhito
0
280
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
25
Context Engineering - Making Every Token Count
addyosmani
9
540
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Done Done
chrislema
186
16k
Claude Code のすすめ
schroneko
65
200k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
48
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
63
Chasing Engaging Ingredients in Design
codingconduct
0
78
How STYLIGHT went responsive
nonsquared
100
6k
Leo the Paperboy
mayatellez
0
1.2k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
1週間でノベルゲームはつくれる? かくひと
自己紹介 ⚫ パズル/ノベル好き ⚫ unity1weekは7回参加 (@kaku_suke_33) かくひと
⚫昔の親友を花火大会に誘いたい けど、どこか変わっていて ⚫電話で興味を「ひく」ゲーム つくった作品: 『 もしもし、しんゆう 』 うすいしおさんとの 共同作品
⚫ ここまで分岐が複雑なものははじめて ⚫ 工数の見積もりが甘く、けっこう苦労した ⚫ その知見を共有できたら...... ノベルゲームつくった
1. ステートマシン 2. 話作り 3. ノベルゲームぽくすること 難しかったこと
ステートマシンが難しい
ノベルゲームにおけるステートマシンとは? 今回複雑な分岐が多かったので 必要だと判断 ⚫ シナリオ進行状態を管理する ⚫「ステート」と「矢印」で構成 冒険に行くの じゃ YES No
好きなポ〇モン を選ぶのじゃ
ノベルゲームの進行はこの3つでできる(はず) 1. 自動進行 2. 選択肢による進行 3. ...? 1,2のみ実装して進めていった
最初のコード 結構いいのでは? async UniTask RunGameLoop(StateMachine sm, CancellationToken cancellationToken) { while
(true) { var (chatLines, canAuto) = sm.Enter(); // ステートに入る await ProcessChat(chatLines, cancellationToken); // チャット進行 // ①自動進行 if (canAuto) { sm.MoveByAuto(); } // ②アイテム選択による進行 else { var selectedItem = await WaitForItemSelection(cancellationToken); sm.MoveByItem(selectedItem.Value); } } }
後々のコード なにか、へん......(最終的に3,4百行に) async UniTask RunGameLoop(StateMachine sm, CancellationToken cancellationToken) { while
(true) { var (chatLines, canAuto) = sm.Enter(); // ステートに入る await ProcessChat(chatLines, cancellationToken); // チャット進行 if (A1についた) { if (Flagを通ったことがある) C1に行く; else B1に行く; } if (A2についた) { if (A3についた) { if (A4についた) { : : // ①自動進行
3が足りなかった 1. 自動進行 2. 選択肢による進行 3. 条件進行 この3つが揃えばステートマシンで ノベルゲーム進行できる(はず) •
フラグ達成による進行 • 一度読んだ文章を短縮版に差し替え
所感 ⚫ 小規模作品であれば自作でもできそう ⚫ これ以上複雑になるならライブラリを使ったほうがよさそう
話の作りこみが難しい
起・転・結はわりとすぐできた 旧友に電話をかけよう ゲーム部分 夏も終わるし花火大会に行きたい うまくいかなかったりうまくいったりする エンディング 電話でうまいこと興味をひく 起 転 結
承
「承」が難しい ⚫一番長い、かつゲームとして遊ぶ部分 ⚫何書いてもいいがゆえに自由すぎてつらい
「承」に遊びごたえをつくる ⚫ 選択進行と条件進行を使いたおしたい ⚫『逆転裁判』にならい、特定のアイテムを出すタイミングをつくる カラオケよく 行ってたな オオカミ娘 好きだったよね SNSで見たけど 花火大会の会場で
ライブするんだって! 特定アイテム 次の話題選び 大事かも...! この流れを軸にして、メインの話、サブの話を作っていった
「制約をつくって探索」をくりかえす Discordのようす 何の話題で興味をひく? Q. 制約:過去と今で価値観かわってそうなもの 親友が好きだった「食べ物 / ゲーム / 音楽」
具体的に何にする?(固有名詞も) Q. 制約:オオカミやケモノ関連 「肉 / ジャングルマスター / オオカミ娘」
ノベルゲームぽくすることが難しい
ノベルゲームぽくする機能 文字送り トランジション ⚫ TMPに1文字置く→待つ(UniTask.Delay)の繰り返し ⚫ 終わるまで文字送りの音をループし続ける ⚫ フラッシュ:上に白画像おいて透明度イージング ⚫
(もうちょっと凝りたかった)
その他アニメーション(うすいしおさん作) 雲 アイテム獲得 2枚の画像でループ ⚫ 透明度を濃くする + ひょこっ ⚫ ひょこっ:Rotate
+ Yoyo
おわりに
⚫ 小規模にノベルゲームをつくれて経験になった ⚫ ステートマシンの勉強になった ⚫ ノベルゲームとしての機能部分をつくる経験になりました ⚫ ライブラリ使ったり自作で作ったりしてみたい ⚫ 共同制作楽しかった
⚫ 絵がとてもかわいかった ⚫ ストーリーや実装を いっしょにわいわい作れてよかった 感想
Thank You For Listening!