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
Unityでインタラクティブミュージックやってみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Cova8bitdots
July 17, 2018
2.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unityでインタラクティブミュージックやってみた
サポーターズColab で登壇した時の資料です
Cova8bitdots
July 17, 2018
More Decks by Cova8bitdots
See All by Cova8bitdots
Unity6.3 AudioUpdate
cova8bitdots
0
230
Latest_Information_of_CICD_for_UnityAppWithAppleVisionPro
cova8bitdots
0
130
HandGestureTool for AppleVisionPro
cova8bitdots
0
150
NinjaGazeTyping 制作秘話
cova8bitdots
0
370
UnityとGoogleCloudFunction を連携して社内サービスを作った話
cova8bitdots
0
230
Unity-chan.Terrastal!!
cova8bitdots
0
500
ExampleOfTilemap2D
cova8bitdots
0
180
unity_lt_2021_Dec.pdf
cova8bitdots
0
990
HowToUseAudioMixer
cova8bitdots
0
180
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
We Are The Robots
honzajavorek
0
250
Making Projects Easy
brettharned
120
6.7k
A Tale of Four Properties
chriscoyier
163
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
HDC tutorial
michielstock
2
710
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
390
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Transcript
UNITYͰ ΠϯλϥΫςΟϒϛϡʔδοΫͬͯΈͨ ϛυϧΣΞɾωΠςΟϒϓϥάΠϯʹཔΒͳ͍ͰؤுͬͯΈͨ
͡Ίʹ ༰ ▸ ΠϯλϥΫςΟϒϛϡʔδοΫͱʁ ▸ Unity ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ▸ αϯυγεςϜͷσϞϯετϨʔγϣϯ
ΠϯλϥΫςΟϒϛϡʔδοΫͱ ༰ ▸ ΠϯλϥΫςΟϒϛϡʔδοΫͱʁ ▸ Unity ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ▸ αϯυγεςϜͷσϞϯετϨʔγϣϯ
ΠϯλϥΫςΟϒϛϡʔδοΫͱ આ໌ ΠϯλϥΫςΟϒϛϡʔδοΫ ‣ ରతͳԻָ ‣ ϢʔβʔͷೖྗʹΑͬͯԻָ͕มԽ ‣ ࡞ۂऀ(࡞ऀ)ͷҙਤ͠ͳ͍ λΠϛϯάͰมԽ͢ΔՄೳੑ͕͋Δ
ྫ) ɾϢʔβʔͷϘλϯೖྗͷλΠϛϯάͰ ɹBGM͕ऴΘΔʢεϓϥτΡʔϯͷχϡʔεը໘ʣ ɾCrypt of NecroDancer ɹγϣοϓ͕ۙͮ͘ͱϝϩσΟʔΛՎ͏ ɹళͷ͕ฉ͑͜Δ ΞμϓςΟϒϛϡʔδοΫ ‣ దԠతͳԻָ ‣ ঢ়گʹԠͯ͡ಈతʹมԽ͢ΔԻָ ‣ ࡞ۂऀ(࡞ऀ)ͷҙਤ௨Γʹ ੍ޚՄೳ ྫ) ɾεʔύʔϚϦΦϒϥβʔζͷΓ͕࣌ؒ ɹ͘ͳͬͨΒςϯϙ্͕͕Δ ɾϘεઓͷ֤ܗଶͰҟͳΔBGMΛྲྀ͢ ࢀߟɿCRIϛυϧΣΞɹήʔϜԻָΛม͑Δ ʮΞμϓςΟϒϛϡʔδοΫͱʁʯɹ(2009)
ΠϯλϥΫςΟϒϛϡʔδοΫͱ ͳͥ͞Ε͍ͯΔʁ ΠϯλϥΫςΟϒϛϡʔδοΫಋೖྫ ▸ FINAL FANTASY XV ಠࣗͷαϯυγεςϜMAGI Λ։ൃɾར༻ http://cedil.cesa.or.jp/cedil_sessions/view/1447
▸ εϓϥτΡʔϯγϦʔζ χϡʔεը໘Ͱεςʔδհͷͱ͖ͷSEͱΩϟϥΫλʔͷಈ͖͕BGMͷ1,3ഥͱಉظ χϡʔεը໘ͳͲϢʔβʔͷϘλϯೖྗͷλΠϛϯάʹ߹ΘͤͯBGM͕ऴྃ͢Δ ৄࡉͳղઆΛ͍ͯ͠Δϒϩάɹhttp://blog.nine-gates.com/1640/ ▸ FTL: Faster Than Light ότϧBGMͱ௨ৗBGM͕γʔϜϨεʹΓସΘΔ https://youtu.be/l6AJdn8RTNM AAA λΠτϧ͔ΒΠϯσΟʔζ·Ͱ༷ʑͳήʔϜͰಋೖɾ࣮͞Ε͍ͯΔ
ΠϯλϥΫςΟϒϛϡʔδοΫͱ ݁ہΠϯλϥΫςΟϒϛϡʔδοΫͬͯԿʁ ▸ γʔϜϨεͳԻָมԽ ▸ λΠϛϯά͕ಉظ͞ΕͭͭBGMΛΓସ͑ɾՃɾআ ▸ ॎͷભҠʢ࠶ੜτϥοΫͷ૿ݮɾΓସ͑ʣ ▸ ԣͷભҠʢ࠶ੜτϥοΫͷ࠶ੜՕॴͷมߋʣ
▸ Իָʹ߹ΘͤͨΠϕϯτͷ࣮ߦ ▸ BGMͷϏʔτʹ߹ΘͤͯΠϕϯτΛԆɺಉظ࣮ߦ ▸ ԻָͷભҠλΠϛϯάΛࡉ͔͘ઃఆͯ͠ʮΑΓࣗવͳભҠʯʹ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ༰ ▸ ΠϯλϥΫςΟϒϛϡʔδοΫͱʁ ▸ Unity ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ▸ αϯυγεςϜͷσϞϯετϨʔγϣϯ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ UNITY ͷΦʔσΟΦपΓͷ(෮श) ▸ Unity5.x ͰΦʔσΟΦ͕ڧԽ͞Εͨ ▸ ݸਓతʹ5.x ͷΞοϓσʔτΦʔσΟΦΞοϓσʔτͱݺΜͰ·͢ɻͦΕ͘Β͍େਐา
▸ AudioMixer ͷՃ, SnapShot ػೳͷՃ ▸ MasterVolume ͷཧ͕Մೳ ▸ SnapShot ͷସʹΑΔμοΩϯάػೳͷ࣮ݱ ▸ LPF, HPF ͳͲͷ֤छϑΟϧλ͕ΧςΰϦຖʹదԠՄೳ ▸ ADPCM͕ར༻Մೳʹ ▸ ADPCMͱݴ͑εʔϑΝϛɻʢFCͰҰ෦Χηοτར༻͞Ε͍ͯͨʣ εʔύʔϚϦΦϒϥβʔζ3ͷBGMͰςΟϯύχͷԻͱ͔͕ೖͬͨͷADPCMͷ͓͔͛ ▸ ωΠςΟϒϓϥάΠϯΛ͔͚ΔΑ͏ʹͳͬͨʂ ▸ αϯϓϧίʔυͷίϝϯτͷগͳ͞ʮͲ͏ͤઐͷਓ͔͠ΘΜͰ͠ΐʯతͳײ͡ͳͨΊ ϋʔυϧߴ͍Ͱ͢ʢମݧஊ ▸ ҰԠαϯϓϧΛՃͯ͠ಠࣗϓϥάΠϯΛ࡞ͬͯΈ·͕ͨ͠ Ի৴߸ॲཧͷجຊతͳ͕ࣝແ͍ͱखग़·ͤΜɻ ▸ Ұݟ༷શ͓அΓ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ UNITY ͷΦʔσΟΦपΓͷ(ϛυϧΣΞपΓ) ▸ ήʔϜۀքͰΘΕ͍ͯΔϛυϧΣΞ ▸ CRI ADX2( CRI
MiddleWare) ▸ ࠃͷѹతγΣΞ ▸ ॻ੶͋ΔͷͰຊޠใ͕ଟ͍ ▸ Wwise( Audiokinetic ) ▸ ίϯγϡʔϚʔͰͷ࠾༻͕ߴ͍ ▸ ੈքతʹඪ४ͰΘΕ͍ͯΔ ▸ ADX2ͰՄೳͳ͜ͱେͰ͖Δ ▸ ϓϥάΠϯΛಠࣗʹ։ൃՄೳ ▸ FMOD( Firelight Technologies) ▸ UnityͷΦʔσΟΦͷத ▸ ѹతຊޠใͷগͳ͞(ന
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ UNITY ͷΦʔσΟΦपΓͷ ▸ ࠓճ͜ΕΒϛυϧΣΞʹཔΒͳ͍ͰؤுͬͯΈ·͢ ֤छϛυϧΣΞఏڙͷձ༷ࣾ͢Έ·ͤΜ ▸ ඇϛυϧΣΞͰ͋Ε @geekdrums
͞Μ࡞ͷMusicEngine ͱ͍͏ͷ͕͋Γ·͢(ࠓճ͍·ͤΜ) https://github.com/geekdrums/MusicEngine ࢀߟ ▸ UnityͰαϯυΤϯδϯ(ADX2, Wwise, FMOD)Λѻ͏ࡍʹ ͓͍͑ͨ͞ࣄ https://qiita.com/dTAT/items/2226d261498947dc2bda ݟʹߦͬͨΒ͍͍ͶϘλϯΛԡͦ͏ʢϚʣ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ αϯυԋग़ ▪جຊతͳͷ ‣ ϛϡʔτ ‣ LowPassFilter ‣ HighPassFilter
‣ Reverb ‣ Echo ‣ Fade ‣ FadeIn ‣ FadeOut ‣ CrossFade ▪ͪΐͬͱߴ ‣ μοΩϯά ‣ αΠυνΣʔϯೖྗ ‣ ࠶ੜτϥοΫͷมಈ ‣ τϥοΫ(ϨΠϠʔ)ͷ૿ݮ ‣ ࠶ੜҐஔͷγʔΫ ‣ ϏʔτಉظʢΫΥϯλΠζʣ ‣ ֤छϑΟϧλ ‣ ϑϥϯδϟʔ ‣ ϐονγϑτ ͕ؔਂ͍߲ ͕ؔਂ͍߲
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ BGM_A ΛFadeOutͤ͞ͳ͕ΒBGM_BΛFadeInͤ͞Δํ๏ ࣌ؒ Իྔ FADEIN Πϝʔδ
࣌ؒ Իྔ FADEOUT Πϝʔδ C#తʹFadeIn FadeOutதಉ͡ॲཧ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ Cross FadeͷΠϝʔδҎԼͷײ͡ ࣌ؒ Իྔ CrossFade Πϝʔδ
BGM_A BGM_B τʔλϧͷԻྔ ࣌ؒ Իྔ ࣮ࡍ BGM_A BGM_B τʔλϧͷԻྔ ɾΠϝʔδ௨ΓʹͳΒͳ͍ ɾCrossFadeதʹτʔλϧͷԻྔ͕ ɹมԽͯ͠͠·͏
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ ԻͷΤωϧΪʔΛߟ͑ͯΈΔ ▸ ԻͷΤωϧΪʔઈରͷ̎Ͱఆٛ͞ΕΔ ▸ ΫϩεϑΣʔυதͷΤωϧΪʔ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ ઢมԽͷ߹ ▸ FadeIn : A(t) =
t ▸ FadeOut: B(t) = (1-t ) ▸ ΤωϧΪʔ ʹ ▸ ͜͜ͰS1 (t) = S2 (t)=1 ͱԾఆ͢Ε
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ Ͳ͏͢Ετʔλϧ͕ҰఆʹͳΔ͔ʁ ▸ ͱͳΔ ▸
͜ΕΛͬͯΈΔ ʹ ▸ ͜͜ͰS1 (t) = S2 (t)=1 ͱԾఆ͢Ε
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ CROSSFADE ▸ ࡾ֯ؔͷΧʔϒͰ࣮ͯ͠ΈΔ ࣌ؒ Իྔ CrossFade Πϝʔδ BGM_A
BGM_B τʔλϧͷԻྔ ࣌ؒ Իྔ ࣮ࡍ BGM_A BGM_B τʔλϧͷԻྔ ɾԻྔมԽ͕ແ͍͔ΒҧײΛݮΒͤͨ ɾࣗવʹBGMΛΓସ͑Ͱ͖Δ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ࠶ੜτϥοΫͷมߋ ▸ ॎͷભҠ ▸ ࠶ੜτϥοΫ(AudioSource)ͷ૿ݮ ▸ ผָثͰԋ͞Ε͍ͯΔτϥοΫʹΓସ͑Δ https://twitter.com/giginet/status/985420935657275392
youtu.be/2fDdrdVjVIw ▸ BGMʹϦζϜηΫγϣϯ͕Ճ͞ΕΔ youtu.be/l6AJdn8RTNM ▸ ԣͷભҠ ▸ ࠶ੜҐஔΛγʔΫ ▸ 1A -> 2A -> Ξτϩ ▸ ֤·ͱ·ΓͰτϥοΫΛׂ͢Ε τϥοΫͷΓସ͑ʹΑΔٖࣅతԣભҠͷ࣮ݱՄೳ
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ॎͷભҠ ▸ جຊํɿAudioSourceͷʹΑΔΰϦԡ͠ ▸ ָ֤ثɺϨΠϠʔຖʹԻݯΛ༻ҙ ▸ શ෦ಉ࣌࠶ੜͭͭ͠ɺ֤AudioSourceͷԻྔΛૢ࡞ ▸
͋·Γʹྔ͕ଟ͘ͳΔͱॏ͍ ▸ Γ͍ͨ߹ϛυϧΣΞʹཔΖ͏(εςϚ) ▸ ύλʔϯʹԠͯ͡ԻݯΛ༻ҙ ▸ BGMΛ֤ύλʔϯʹԠͯ͡Γସ͑Δ ▸ CrossFade͕׆͖Δ!!
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ԣͷભҠ ▸ Unity ͰભҠϙΠϯτΛఆٛ͢Δͷใྔతʹॲཧతʹ͍͠ ▸ ಛʹLoopԻݯΛ͏ͱͳΔͱқ͕͞Βʹ্͕Δ ▸ ભҠϙΠϯτΛݶఆ֤ͯ͠τϥοΫΛ༻ҙ
▸ ΠϯτϩɾϧʔϓɾΞτϩͰ۠Δ ▸ ϢʔβʔͷλΠϛϯάΛݟͭͭʮྑ͍λΠϛϯάͰτϥοΫΛΓସ͑Δʯ ▸ ʮྑ͍λΠϛϯάʯ͕ඇৗʹॏཁ গ͠ͰζϨΔͱϢʔβʔʹόϨΔˍؾ࣋ͪѱ͍αϯυʹͳΔ ▸ CrossFade͕׆͖Δ!!
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ࠶ੜτϥοΫͷมߋ ▸ ભҠ͢Δͱ͖ͷҙ ▸ ms ͰζϨΔͱBGMʹʮউखʹʯΤϑΣΫτ͕͖ͭ·͢ ▸ ݻఆζϨΔ
▸ EchoϑΟϧλ͕͔͔ͬͨঢ়ଶ ▸ ͣΕ෯͕࣌ؒͰมΘΔ ▸ ϑϥϯδϟʔ͕͔͔ͬͨঢ়ଶ ▸ ϑϥϯδϟʔɿϗϫΠτϊΠζͰδΣοτΤϯδϯΛ࡞ΔͳͲͷΤϑΣΫλʔ ▸ τϥοΫؒͰʮςϯϙ(BPM)ʯ͕ҟͳΔͱͦͦؾ࣋ͪѱ͍Ͱ͢ɻ ▸ FadeOutૣ͘ɺFadeInΊͳͲ͕ඞཁ ▸ τϥοΫؒͰௐʢίʔυʣ͕ҧ͏ͱ߹ʹΑͬͯෆڠԻ ▸ 2, ૿4 ҟͳΔ߹ɺΑ΄ͲҙਤతͰͳ͚Εආ͚Δ͖ ▸ 3, 4, 5, 8(ΦΫλʔϒ্) ͋ͨΓͰखΛଧͭΑ͏ʹ͢Δͱྑ͍
UNITY ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ΠϕϯτͷϏʔτಉظ(ΫΥϯλΠζ) ▸ ࠶ੜτϥοΫʹʮBPMʯʮഥࢠʯΛఆٛ ▸ ຖϑϨʔϜࢹͯ͠ҙͷഥʹΓସΘͬͨΒΠϕϯτΛ࣮ߦͤ͞Δ ▸ [ҙ] ▸
BPM͕͋·Γʹߴ͘ɺϏʔτ͕ࡉ͔͍ͱ ήʔϜΤϯδϯͷΞοϓσʔταΠΫϧ͕ߋ৽ݕʹؒʹ߹Θͳ͘ͳΔ ▸ 30FPS: 33[ms], 60FPS: 16[ms] ▸ BPM240 : 250[ms] : 62.5[ms] : 31.25[ms] ▸ ԻήʔͰOnBeat ͷલޙఆΛ͠Α͏ͱ͢Δͱ લޙ1FະຬͩͬͨΓ͢ΔՄೳੑ͕͋Δ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ༰ ▸ ΠϯλϥΫςΟϒϛϡʔδοΫͱʁ ▸ Unity ͰΠϯλϥΫςΟϒϛϡʔδοΫΛߦ͏ʹʁ ▸ αϯυγεςϜͷσϞϯετϨʔγϣϯ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ ▸ σʔλఆٛɿScriptableObjectΛར༻ ▸ AssetBundleԽ͍͢͠ ▸ ύϥϝʔλ͕େ( 30 ఔ)
▸ Inspector Ͱઃఆ͢Δͷݫ͍͠ (தུ)
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ ▸ σʔλఆٛɿScriptableObjectΛར༻ ▸ AssetBundleԽ͍͢͠ ▸ ύϥϝʔλ͕େ( 30 ఔ)
▸ Inspector Ͱઃఆ͢Δͷݫ͍͠ ▸ ઐ༻ͷΦʔαϦϯάπʔϧΛ༻ҙ ▸ Load࣌ʹϓϩδΣΫτͷશՕॴʹ͋Δ AudioData ͷScriptableObjectΛऔಘ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ(ΦʔαϦϯάπʔϧ) ΈΜͳେ͖TreeView ൃԻ੍ݶઃఆՄೳ ΫΥϯλΠζͳͲͷ Ϗʔτใઃఆ Intro, Loop ͷܗΛදࣔ IntroLength
͚ͩͣΒͯ͠Loop෦ඳը બதͷσʔλදࣔΤϦΞ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ ▸ ఏڙػೳ(࣮ࡁΈ) ▸ BGMͷFadeIn/FadeOut/CrossFade ▸ ൃԻ੍ݶ(ઌணޙண, ಉ࣌ൃԻ, ൃԻִؒ
) ▸ ΠϕϯτͷϏʔτಉظ ▸ Πϯτϩ͖BGM࠶ੜ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ ▸ ϏʔτಉظγεςϜʹ͍ͭͯ 1. ΠϕϯτQueueΛఆٛ 2. SoundManagerʹରͯ͠ΠϕϯτΛొ
3. SoundManagerଆͰBGMΛࢹͯ͠ ࢦఆͷϏʔτʹ͖ͨΒQueueશ࣮ͯߦ ͱ͍͏ײ͡Ͱ࣮͍ͯ͠·͢ ʢҙ֎ͱ͜ΜͳΜͰ͍͚ͪΌ͍·͢ʣ
αϯυγεςϜͷσϞϯετϨʔγϣϯ ࡞தͷαϯυγεςϜ ▸ ॾࣄʹΑΓ·ͩGitHub্ʹެ։Ͱ͖·ͤΜʢ͝ΊΜͳ͍͞ʣ ▸ ςϯϙ͕Մมͳ߹ͷϏʔτಉظ͕ະରԠ ▸ LoopτϥοΫΛෳઃఆՄೳʹ֦ு ▸ ΞτϩͷઃఆՃ
▸ αϯϓϧ͕Θ͔ΓͮΒ͍ͷͰΘ͔Γ͍͢αϯϓϧΛ࡞Δ ▸ υΩϡϝϯτඋ͖͠Εͯͳ͍ ▸ ֤छBugFix ▸ etc… ▸ ࠓळެ։༧ఆͰؤு࣮͍ͬͯͯ͠ΔͷͰ͏গʑ͓͍ͪͩ͘͞ ▸ ͪΌΜͱ͓൸࿐ग़དྷΔΑ͏ʹͳΓ·ͨ͠ΒɺͲ͔͜ͷษڧձͳͲͰൃද͢Δ༧ఆͰ͢
UNITYͰΠϯλϥΫςΟϒϛϡʔδοΫͬͯΈͨ ·ͱΊ ▸ ΠϯλϥΫςΟϒϛϡʔδοΫ ▸ γʔϜϨεʹۂ͕มΘΔ ▸ Πϕϯτ͕Իָతʹؾ࣋ͪͷྑ͍λΠϛϯάͰ࣮ߦ͞ΕΔ ▸ Unity
ͰؤுΕεΫϦϓτॻ͚ͩ͘Ͱ ͦͦ͜͜ΠϯλϥΫςΟϒϛϡʔδοΫग़དྷ·͢ ▸ ෛՙɾͬͱ৭ʑΓ͍ͨ߹ϛυϧΣΞΛ͓͏ ▸ ͦͦదͳ໘ͰΘͳ͍ͱޮՌബͳͷͰ ήʔϜɾөըͳͲ͔Βԋग़ϓϥϯΛษڧ͠Α͏