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
0
240
unity1week online 共有会 #9 「暗闇の中の光と音」
https://unityroom.com/games/glow_in_the_dark
kugi
October 01, 2022
Tweet
Share
More Decks by kugi
See All by kugi
RGBでも蛍光を!? / RayTracingCamp11
kugimasa
2
490
FluorTracer / RayTracingCamp11
kugimasa
0
450
unity1week online 共有会 #18 「2年ぶりのunity1week - PlayFabで作る非同期オンラインゲーム」
kugimasa
0
84
Chill in the Box / RayTracingCamp10
kugimasa
0
980
ほたるのひかり / RayTracingCamp10
kugimasa
2
1.2k
WebGPUTracer / RayTracingCamp9
kugimasa
1
1.3k
WebGPUに触れてみた / RayTracingCamp9
kugimasa
1
2.9k
FluorSwitch / RayTracingCamp8
kugimasa
0
2.2k
unity1week online 共有会 #6 「継続は力なり」
kugimasa
0
70
Other Decks in Programming
See All in Programming
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
120
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
210
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
7
3.2k
安いハードウェアでVulkan
fadis
1
820
The free-lunch guide to idea circularity
hollycummins
0
380
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
180
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
150
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
200
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
4.6k
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
240
Claude Code Skill入門
mayahoney
0
440
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
340
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
420
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
Bash Introduction
62gerente
615
210k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
130
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
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