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
unity1week online 共有会 #9 「暗闇の中の光と音」
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kugi
October 01, 2022
Programming
240
0
Share
unity1week online 共有会 #9 「暗闇の中の光と音」
https://unityroom.com/games/glow_in_the_dark
kugi
October 01, 2022
More Decks by kugi
See All by kugi
RGBでも蛍光を!? / RayTracingCamp11
kugimasa
2
600
FluorTracer / RayTracingCamp11
kugimasa
0
550
unity1week online 共有会 #18 「2年ぶりのunity1week - PlayFabで作る非同期オンラインゲーム」
kugimasa
0
94
Chill in the Box / RayTracingCamp10
kugimasa
0
1.1k
ほたるのひかり / RayTracingCamp10
kugimasa
2
1.3k
WebGPUTracer / RayTracingCamp9
kugimasa
1
1.4k
WebGPUに触れてみた / RayTracingCamp9
kugimasa
1
3.1k
FluorSwitch / RayTracingCamp8
kugimasa
0
2.3k
unity1week online 共有会 #6 「継続は力なり」
kugimasa
0
76
Other Decks in Programming
See All in Programming
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
7
2.4k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
320
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
Modding RubyKaigi for Myself
yui_knk
0
830
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
760
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
480
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
400
今さら聞けないCancellationToken
htkym
0
210
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
190
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4.7k
CSC307 Lecture 17
javiergs
PRO
0
290
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
370
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
310
Into the Great Unknown - MozCon
thekraken
41
2.5k
For a Future-Friendly Web
brad_frost
183
10k
The agentic SEO stack - context over prompts
schlessera
0
790
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Transcript
暗闇の中の光と音 kugi(@kugi_masa) unity1week online共有会 #9
プロフィール kugi @kugi_masa 新卒2年目 ゲームプログラマ 趣味は4コマ漫画と壁登り アザラシを偽ったセイウチ
私と unity1week 「さがす」 アニマルハンター 「密」 蜜蜂 Cluster Bee 「ふえる」 Groundwater
「あける」 すきすきスキマん 「回」 NOA’s Project 「2」 Kani と Uni 「ちゅう」 诺亚的任务 「正」 正座ネコ 「そろえる」 Fxxxin Fashion Club 合計9回参加 うち4回共同開発
今回のゲーム ヒカリを集めてゴールを目指すゲーム サウンド制作:NaTsu Beats Glo t Dak
アイディアの出発点 蓄光(燐光) 物質が光を吸収し、 その吸収したエネルギーによって 光を発光する現象 腐敗した生物から生じた黄リンが酸化する際に 青白い光を発したことから燐光と呼ばれる
ヒカリを「ためる」 ヒカリを吸収して(ためて)、 その吸収した(ためた)エネルギーによって 発光するゲーム 物質が光を吸収し、 その吸収したエネルギーによって 光を発光する現象
エネルギーの吸収と消費 ヒカリの粒子 ヒカリのカーテン エネルギーの吸収方法
エネルギーの吸収と消費 ためたエネルギーで移動 発光度合いが変化 エネルギー消費によるアクション エネルギーは運動量 エネルギーは光量
サウンドについて NaTsuさんが1つの曲を作曲し、それを3つに分解 エネルギーは音数 ① ② ③ ② エネルギーの割合に応じて 再生するトラック数を増やす ①
② ③
サウンドについて 自然な切り替わりにするための試み • 再生位置を同期させるため、3つのAudioSourceを同時に再生 • エネルギー段階が切り替わるタイミングで各AudioSourceの音量を調整 • 切り替え時は線形補間で調整 E ①
② ③ ① ② ③
表現したいもの • ためたエネルギーが別のモノに伝搬していく様子 ◦ 移動による探索 ◦ 発光表現 ◦ 音楽の盛り上がり •
暗闇の中で儚く消えていきそうだけど発光する光 • 暗いけど暖かさを感じられる空間 • 蓄光材質の質感
儚さの表現 • 移動する力を失い停止 • 発光の消滅 • サウンドも無音に エネルギーがある状態との差をつける カメラ演出、光の減衰、音量 さまざまな部分でイージング関数を使用
線形補間よりも余韻に浸れた イージング関数チートシート
蓄光材質の質感 表面下散乱(サブサーフェススキャッタリング) 物質の内部に入り込んだ光が散乱され、その光が物質の表面に放出される 表面での光の反射 表面下散乱
表面下散乱を擬似的に表現 Fast Subsurface scattering shader in Unity URP for mobile
by Enrique Ventura 仮想的な光源方向 光源方向 視線方向
今回のゲーム用に改変 • ゲーム画面はほとんど真上からの視点 • 暗闇のため、強めのディレクショナルライトは設置したくない カメラの後方に光源があると仮定して シーン上のライト方向ではなく、カメラ方向で代用 照り返しは真上にポイントライトを設置
マップ作成 ヒカリの粒子の配置 Unityをもっと使いやすく!Unityカイゼン委員会! - Unityステーション by Unity Japan • 数値フィールドで数学関数を用いる機能
• 数学の力を借りる ◦ 「美しい曲線」で検索 x=(1+cos(5*2*pi*#/25))*cos(2*pi*#/25) z=(1+cos(5*2*pi*#/25))*sin(2*pi*#/25)
ライティング設定 ライトマップとライトプローブのベイク • カーテン位置にポイントライト、エリアライトを設置しベイク ◦ ベイクに時間がかかるため、テスト時はライトマップサイズを抑える ◦ 周辺にライトプローブを設置 • 粒子は触れると消えるため、ベイクせずポストプロセス(Bloom)のみ
• 影については基本的にオフ HIGH QUALITY LIGHTING using Light Probes - Unity Tutorial by Brackeys
改善点 • ライティング調整 ◦ 発光度合いが強すぎるヒカリのカーテン • BGMに馴染むSE • クリアタイムによるスコア ◦
ゆったりとした音楽や空間とは裏腹に、 焦らせてしまうタイム表示 ◦ ヒカリの粒子を取りたくなる反面、 いかに省エネできるかになってしまった ◦ そもそもスコア自体不要だったかもしれない
まとめ • 現実世界の現象から着想を得てゲームを作った • 表現したいものを詰め込むことができた • 夫婦で共同制作できた Glow in the
Dark / relaxing music by NaTsu Beats フルバージョンの曲も是非聞いてみてください!
Tha y o lni!
参考文献 • Glow in the Dark • イージング関数チートシート • Fast
Subsurface scattering shader in Unity URP for mobile • Unityをもっと使いやすく!Unityカイゼン委員会! - Unityステーション • Unity 2021.2で強化されたインスペクターの数式機能や、複数要素選択時の線形配置機能について • HIGH QUALITY LIGHTING using Light Probes - Unity Tutorial • Glow in the Dark / relaxing music