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
130
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
WebGPUTracer / RayTracingCamp9
kugimasa
0
450
WebGPUに触れてみた
kugimasa
0
1.4k
FluorSwitch / RayTracingCamp8
kugimasa
0
1.2k
unity1week online 共有会 #6 「継続は力なり」
kugimasa
0
27
日常4コマ -kugi日記-
kugimasa
1
90
unity1week online 共有会 #4 「作り込みのための引き出し by NOAちゃんファンクラブ」
kugimasa
0
99
Agileなラクダたちの道のり
kugimasa
0
99
カニをハックしてみた
kugimasa
0
1.3k
HU hackathon online 2020 オープニング
kugimasa
0
30
Other Decks in Programming
See All in Programming
유연한 Composable 설계
l2hyunwoo
0
380
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
Google's Recipe for Scaling (Web) Security – LocoMocoSec 2024
lweichselbaum
0
170
Javaの現状2024夏 / Java current status 2024 summer
kishida
4
1.4k
開発部に不満を持っていたCSがエンジニアにジョブチェンしてわかった「勝手に諦めない」ことの大切さ
sakuraikotone
28
16k
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
1
410
20240706_CDKConf
takuyay0ne
0
1.2k
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
データカタログ運用物語 〜令和6年夏の理想と現実〜
kuro_kurorrr
0
110
Featured
See All Featured
Fireside Chat
paigeccino
25
2.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
Being A Developer After 40
akosma
72
580k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
Optimizing for Happiness
mojombo
373
69k
A Tale of Four Properties
chriscoyier
155
22k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Automating Front-end Workflow
addyosmani
1362
200k
The World Runs on Bad Software
bkeepers
PRO
63
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
357
18k
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