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.3k
プログラマとサウンドデザイナをつなぐサウンド ミドルウェア
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 World Runs on Bad Software
bkeepers
PRO
72
12k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Practical Orchestrator
shlominoach
190
11k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Building an army of robots
kneath
306
46k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
920
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Ace a Technical Interview
jacobian
280
24k
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ϖʔδ͑ΔͷͰɺങ͏࣌ ֮ޛ͍ͯͩ͘͠͞ɻ • ֶੜ͞ΜɺਤॻؗʹೖΕͯΒ ͍·͠ΐ͏