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
kugi
October 01, 2022
Programming
0
210
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
unity1week online 共有会 #18 「2年ぶりのunity1week - PlayFabで作る非同期オンラインゲーム」
kugimasa
0
54
Chill in the Box / RayTracingCamp10
kugimasa
0
670
ほたるのひかり/RayTracingCamp10
kugimasa
1
860
WebGPUTracer / RayTracingCamp9
kugimasa
0
1k
WebGPUに触れてみた/RayTracingCamp9
kugimasa
1
2.5k
FluorSwitch / RayTracingCamp8
kugimasa
0
1.7k
unity1week online 共有会 #6 「継続は力なり」
kugimasa
0
41
日常4コマ -kugi日記-
kugimasa
1
110
unity1week online 共有会 #4 「作り込みのための引き出し by NOAちゃんファンクラブ」
kugimasa
0
120
Other Decks in Programming
See All in Programming
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.3k
Six and a half ridiculous things to do with Quarkus
hollycummins
0
170
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
520
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
0
1.2k
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
0
180
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
Advance Your Career with Open Source
ivargrimstad
0
510
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
1
110
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
210
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
200
Software Architecture
hschwentner
6
2.3k
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
230
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
For a Future-Friendly Web
brad_frost
180
9.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Speed Design
sergeychernyshev
32
1.2k
The Cult of Friendly URLs
andyhume
79
6.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Automating Front-end Workflow
addyosmani
1371
200k
Designing for humans not robots
tammielis
254
26k
How STYLIGHT went responsive
nonsquared
100
5.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
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