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
プログラマとサウンドデザイナをつなぐサウンド ミドルウェア
Search
Hattori_Yoshiaki
July 29, 2014
2
3.2k
プログラマとサウンドデザイナをつなぐサウンド ミドルウェア
IGDA SigAudio 8で講演したスライドです。いくつか追加修正をしています。
Hattori_Yoshiaki
July 29, 2014
Tweet
Share
More Decks by Hattori_Yoshiaki
See All by Hattori_Yoshiaki
HDRオーディオを実装してみて思ったこと
hattori_yoshiaki
0
2.9k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Done Done
chrislema
185
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
The Invisible Side of Design
smashingmag
301
51k
Site-Speed That Sticks
csswizardry
11
880
Building an army of robots
kneath
306
46k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Agile that works and the tools we love
rasmusluckow
331
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
ϓϩάϥϚͱαϯυσβΠφΛͭͳ͙αϯυ ϛυϧΣΞ גࣜձࣾηΨɹୈҰCSݚڀ։ൃ෦ɹϓϩάϥϚ ෦ɹٛ໌ɹ
ࣗݾհ • גࣜձࣾηΨͰϓϩάϥϚΛͬͯ·͢ • ϓϩδΣΫτͰɺओʹαϯυΛ୲ • CRIͷϥΠϒϥϦͱͷ͖߹͍ɺ̍̌Ҏ্
ΞδΣϯμ • CRIͬͯʁ • αϯυϓϩάϥϚʔͬͯʁ • ϛυϧΣΞͬͯʁ • ϛυϧΣΞΛͬͯͰ͖Δࣄ •
ͳͥCRIͳͷ͔ʁ • CRIͷػೳΛͬͨσϞ • αϯυσβΠφʔͱϓϩάϥϚʔͷ͜Ε͔Β • ࣭ٙԠ
CRIͬͯʁ
CRIͱʁ • Իɺө૾Λઐͱͨ͠ϛυϧΣΞ։ൃձࣾ • ຊͰҰ൪ΘΕ͍ͯΔαϯυϛυϧΣΞձࣾ • ࠷ۙUnityUnrealEngineͷήʔϜΤϯδϯʹର Ԡ • ݩʑηΨͱCRIձ͕ࣾಉͩͬͨ͡ͷͰɺηΨͷϓϩ
άϥϚCRIΛબͿ͜ͱ͕ଟ͍
CRIͷϛυϧΣΞͱ • ADX2 • ΦʔσΟΦ౷߹ιϦϡʔγϣϯ • Sofdec2 • ಈը࠶ੜϛυϧΣΞ •
ClipperɺϑΝΠϧϚδοΫPRO
αϯυϓϩάϥϚʔͬͯʁ
αϯυϓϩάϥϚʔͬͯԿʁ • ؆୯ʹݴ͏ͱɺαϯυσβΠφʔ͕࡞ͬͨԻΛɺήʔ ϜதͰ໐ΒͤΔΑ͏ʹ͢Δਓ • αϯυσβΠφʔ͕࡞ۀ͍͢͠Α͏ʹɺπʔϧΛ ࡞ͬͨΓͯ͠ɺڥΛ͑Δ͜ͱΓ·͢ • ϓϩδΣΫτͷنʹΑͬͯɺଞͷࣄʢ̎Dͱ͔ʣ ͱ݉͢Δࣄ͕ଟ͍
αϯυϓϩάϥϚʔͬͯԿʁ • ԻΛಈ͖ʹ߹Θͤͯ࠶ੜ͢Δ • นʹ͕ͨͬͨλΠϛϯάͰɺணԻΛ໐Β͢ • ઓಆ͕࢝·ͬͨΒɺBGMΛΓସ͑Δ • NPCʹ͔͚ͨ͠ΒɺηϦϑΛ࠶ੜ͢Δ •
ͳͲͳͲ
αϯυϓϩάϥϚʔͬͯԿʁ • ൃԻݯͱϓϨΠϠʔͷؒʹน͕͋Δ͔ௐͯɺԻྔΛ มԽͤ͞Δ • ϓϨΠϠʔ͕͍ΔॴʹΑͬͯɺڥԻϦόʔϒͷ ύϥϝʔλΛมԽͤ͞Δ • BGMΛϏʔτʹ߹ΘͤͯΓସ͑Δ •
ͳͲͳͲ
αϯυϓϩάϥϚʔͬͯԿʁ • ൃԻͷཧ͔ΒϦόʔϒͷͳͲͷΤϑΣΫτ·Ͱࣗ લͰશ෦࡞ͬͪΌ͏ • ϓϩάϥϚʔͷਓͱԻڹʹର͢ΔཧղͳͲɺϋʔυ ϧ͕ߴ͍ʢେख͔͍͠͠ʣ • ਓ͕࡞ͬͨͷΛ͏ͷख •
ͦΕ͕ϛυϧΣΞʂ
ϛυϧΣΞͬͯʁ
ϛυϧΣΞͬͯԿʁ • ϛυϧΣΞʢӳ: Middlewareʣɺίϯϐϡʔλͷ Ͱɺίϯϐϡʔλͷجຊతͳ੍ޚΛߦ͏ΦϖϨʔςΟ ϯάγεςϜ(OS)ͱɺ֤ۀॲཧΛߦ͏ΞϓϦέʔ γϣϯιϑτΣΞͱͷதؒʹೖΔιϑτΣΞͷ͜ ͱɻʢby Wikipediaʣ •
؆୯ʹݴ͏ͱɺඪ४ʹແ͍ػೳΛ༻ҙͯ͘͠ΕΔιϑ τΣΞ
ϛυϧΣΞͬͯԿʁ • ͜͏͍͏͜ͱΓ͍ͨ • ͰϓϩάϥϚͷ͕࣌ؒΓͳ͍ • αϯυ୲ɺ͍͍ͩͨ݉ • ͦͦ։ൃதʹԻΛฉ͍͍ͯΔϓϩάϥϚ͕গ •
ͦΕɺϛυϧΣΞͰͰ͖ΔΑʂ
Γ͍ͨ͜ͱ
Γ͍ͨ͜ͱ • ंͷΤϯδϯԻΛɺճసʹΑͬͯม͍͑ͨ • ͦΕAISACͰग़དྷΔΑʂ • ҰൠతʹRTPC(RunTime Parameter Control) •
ճసʹԠͯ͡ϐονΛม͑ͨΓɺෳͷΤϯδϯԻ ΛϘϦϡʔϜΛม͑ͯɺಉ࣌ʹ࠶ੜ͢Δ
0 0.25 0.5 0.75 1 1000 2000 3000 4000 5000
ճసͷԻ ߴճసͷԻ
Γ͍ͨ͜ͱ • ຖճಉ͡ॐ͕໐Δͷɺ୯ௐͰ͍ʂ • ͰɺϓϩάϥϚʹϥϯμϜͰ໐Βͯ͠Β͏ͷେ ม • ࣗͷ͖ͳ࣌ʹɺ໐Β͢σʔλΛՃ͍ͨ͠ • ͦΕCue࠶ੜͰग़དྷΔΑʂ
Γ͍ͨ͜ͱ • ಥવରԠϋʔυ͕૿͑ͨʂ • Ͱɺσʔλڞ௨Ͱ͍࣋ͪͨͳ͊(ಡΈସ͑ͷΈ Λ࡞ͬͯͯݴ͍ͮΒ͍) • ADX2ͳΒɺಉ͡σʔλ͑ΔΑʂ
Γ͍ͨ͜ͱ • BGMΛ໐Βͬ͠ͺͳ͠͡Όͳͯ͘ɺγνϡΤʔγϣϯ ʹΑͬͯΓସ͍͑ͨ • ͰɺͬͭΓΓସΘΔͷɺෆࣗવͰ͍ • ഥʹ߹ΘͤͯΓସ͍͑ͨʂ • ͦΕϏʔτγϯΫػೳͰग़དྷΔΑʂ
Γ͍ͨ͜ͱ • ࠓͷͲΜͳԻ͕ͳ͍ͬͯΔͷ͔Θ͔Βͳ͍ • ࠶ੜཤྺݟ͍ͨ • ϓϩάϥϚʹσόοάදࣔͷػೳΛ͚ͭͯΒ͏ͷ େม • ͦΕϓϩϑΝΠϥͰग़དྷΔ༧ఆͩΑʂ
Γ͍ͨ͜ͱ • σʔλͷߋ৽ΛखݩͰ͙͢ʹ֬ೝ͍ͨ͠ • σʔλͷࠩ͠ସ͑ͷʹɺήʔϜΛ࠶ىಈͤ͞Δͷ ΊΜͲ͏ • ͦΕɺΠϯήʔϜϓϨϏϡʔͰग़དྷΔΑʂ
ͳͥCRIͳͷ͔ʁ
ͳͥCRIͳͷʁ • ଞͷαϯυϛυϧΣΞ • Wwise • FMOD • Miles •
ຊͷϛυϧΣΞCRI͚ͩ
ͳͥCRIͳͷʁ • ։ൃऀͱຊޠͰΓͱΓ͕Ͱ͖Δ • ฦ͕ૣ͍ʂ • ͍͍ͩͨ࣍ͷʹฦࣄ͕དྷΔ • Wwise࠷ۙૣ͍Β͍͠ •
ݸผͷཁ݁ߏฉ͍ͯ͘ΕΔ
CRIͷػೳΛͬͯɺͲΜͳදݱ͕Ͱ͖Δͷ͔ʁ ※͍͢·ͤΜɺಈըެ։ग़དྷ·ͤΜͰͨ͠
αϯυσβΠφͱϓϩάϥϚͷ͜Ε͔Β
αϯυσβΠφͱϓϩάϥϚͷ͜Ε͔Β • ϛυϧΣΞͷػೳͲΜͲΜ্͕͍ͬͯ͘ • αϯυσβΠφͷग़དྷΔ͜ͱͲΜͲΜ૿͑Δʁ • αϯυͱϓϩάϥϚͷۀ͕ਐΉ • WwiseͰϓϩάϥϚEventΛϦΫΤετ͢Δͷ͕ ࣄʹͳ͍ͬͯΔ
• αϯυͱϓϩάϥϚͷ͠߹͍ෆཁʹͳΔʁ
ͦΕͳ͍
αϯυσβΠφͱϓϩάϥϚͷ͜Ε͔Β • ͲΜͳʹػೳ͕૿͑ͯɺԿΛ͏͔αϯυͱϓ ϩάϥϚ͕͠߹Θͳ͍ͱܾ·Βͳ͍ • ͲΜͳػೳΛ͏ͷ͔ɾ࡞Δͷ͔ɺϓϩδΣΫτʹ Կ͕ॏཁ͔͔Βͳ͍ͱܾ·Βͳ͍ • ϓϩδΣΫτͷίϯηϓτͷ͢Γ߹Θ͕ͤॏཁʂ •
ग़དྷΔ͜ͱ͕૿͑Δ͔Βͦ͜ɺαϯυͱϓϩάϥϚ ີʹ͠߹͏ඞཁ͕͋Δ
αϯυσβΠφͱϓϩάϥϚͷ͜Ε͔Β • ཾ͕͘ͷ߹ • ࢦ͢ͷԿ͔ʁ • ϦΞϧͳ֗ • Կ͕ඞཁ͔ʁ •
ΨϠɺஔԻɺΞϯϏΤϯτ
αϯυσβΠφͱϓϩάϥϚͷ͜Ε͔Β • ϛυϧΣΞ৽װઢ͡Όͳͯ͘ߴಓ࿏ • ಓඋ͞Ε͍ͯΔ͚ͲɺΔͷࣗͨͪ • ͲΜͳϧʔτΛ௨ͬͯతʹ͔͏͔ܾΊΔͷࣗ ͨͪ • ήʔϜͷίϯηϓτͱ͍͏ਤΛΈͯɺͲΜͳυϥΠ
ϒʹ͢Δ͔͍͋͠·͠ΐ͏
·ͱΊ
·ͱΊ • ϛυϧΣΞػೳ͕๛ • Γ͍ͨ͜ͱ͕ɺϓϩάϥϚʔແ͠Ͱग़དྷΔ • Ұ൪େࣄͳͷɺػೳͰͳ͘ɺԿΛ࡞Δͷ͔ • ϓϩάϥϚʔͱαϯυσβΠφʔͷ͠߹͍͕ॏཁ •
ϓϩάϥϚʔ͕ԻΛฉ͍ͯͳͯ͘ٽ͔ͳ͍
͓·͚
αϯυϓϩάϥϚʔͷࢿ࣭ • ͍͜͠ͱϛυϧΣΞ͕ͳΜͱ͔ͯ͘͠ΕΔͷͰɺ ήʔϜͷԻʹରͯ͠ڵຯ͕͋ΔͻͱͳΒͩΕͰOK • ͰϛυϧΣΞ͕தͰԿΛ͍ͬͯΔ͔·ͬͨ͘ ͔Βͳ͍ͱɺόά͕ग़ͨ࣌ʹࠔΔͷͰɺ͋Δఔͷ ͕ࣝ͋ͬͨํ͕͍͍ • ࣌ʑαϯυϓϩάϥϚʔͷٻਓใ͕͋ΔͷͰɺͦ
ΕΛࢀߟʹ͢Δͱ͍͍͔
αϯυϓϩάϥϚʔͷࢿ࣭ • αϯυϓϩάϥϚʔͷٻਓใʹॻ͍ͯ͋Δɺ͋ͬͨΒྑ͍εΩϧͷྫ • ϚϧνεϨου • ̏Dֶ • ϩʔΧϥΠζύΠϓϥΠϯ •
ΞίʔεςΟΫϞσϧ • C++ʹର͢Δਂ͍ࣝ • πʔϧ࡞ΔҝʹC#͕͑Δͱྑ͍
͓·͚ɹͦͷ̎
αϯυϓϩάϥϚʔΛࢦ͢ਓ͚ใ • ॻ੶ • αϯυϓϩάϥϛϯάೖɹٕज़ධࣾ • σδλϧαϯυॲཧೖɹCQग़൛ • ίϯϐϡʔλԻָ―ྺ࢙ɾςΫϊϩδʔɾΞʔτ
αϯυϓϩάϥϛϯάೖ ɹԻڹ߹ͷجຊͱCݴޠʹΑΔ࣮ • ܗσʔλΛCݴޠͰՃ͢Δ ํ๏ΛɺεςοϓɾόΠɾεςο ϓͰղઆͯ͋͠Γɺೖऀʹ Θ͔Γ͍͢༰ʹͳ͍ͬͯΔ • ͘͠ɺPSGFMԻݯʹ͍ͭ ͯઆ໌͞Ε͍ͯΔͷͰɺੲͷ
ήʔϜ͕Ͳ͏ͬͯԻΛ࡞ͬͯ ͍ͨͷ͔ΛΔ͜ͱग़དྷΔͷ ͰɺΦεεϝ
σδλϧαϯυॲཧೖ • Cݴޠ͡Όͳͯ͘ɺMATLABΛ ͬͯઆ໌͞Ε͍ͯΔͷͰɺ ͪΐͬͱ͔ΓͮΒ͍Ͱ͕͢ɺ FIRIIRͷσδλϧϑΟϧ λʔͷઆ໌͕ɺجຊ͔Βίʔυ Λަ͔͑ͯΓ͘͢આ໌͞Ε ͍ͯ·͢ɻ •
ADPCMͷѹॖԻʹ͍ͭͯ આ໌͞Ε͍ͯΔͷͰɺͲ͏ͬ ͯѹॖ͍ͯ͠Δͷ͔ڵຯ͕͋Δ ਓʹΦεεϝͰ͢ɻ
ίϯϐϡʔλԻָ―ྺ࢙ɾςΫϊϩδʔɾΞʔτ • 1996ʹॻ͔Εͨݹ͍ຊͳͷͱɺ ஈ͕14363ԁʢ੫ࠐΈʣͰߴ͍ͷ Ͱɺ͋·ΓΦεεϝग़དྷ·ͤΜɻ ͔͠͠ɺσδλϧΦʔσΟʹ͍ͭͯ ͻͱ௨Γॻ͔Ε͍ͯΔͷͱɺԻڹ ৺ཧֶʹ͍ͭͯॻ͔Ε͍ͯΔͷ Ͱɺ̍Ͱֶ͘Δັྗత •
͓ͶͩΜߴ͍͚Ͳɺϖʔδ 1000ϖʔδ͑ΔͷͰɺങ͏࣌ ֮ޛ͍ͯͩ͘͠͞ɻ • ֶੜ͞ΜɺਤॻؗʹೖΕͯΒ ͍·͠ΐ͏