Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
59
クッキークリッカーは1週間で作れるか?
kakuhito
0
270
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
Into the Great Unknown - MozCon
thekraken
40
2.1k
GraphQLとの向き合い方2022年版
quramy
49
14k
Automating Front-end Workflow
addyosmani
1371
200k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
Balancing Empowerment & Direction
lara
5
700
Raft: Consensus for Rubyists
vanstee
140
7.2k
A better future with KSS
kneath
239
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
What's in a price? How to price your products and services
michaelherold
246
12k
Thoughts on Productivity
jonyablonski
70
4.9k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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!