SlideShare ist ein Scribd-Unternehmen logo
1 von 34
MusicEngine for Unity/ADX2LE
GEEKDRUMS
Examples
Games I made with MusicEngine
MusicPong
http://unitygameuploader.jpn.org/game/1233.html
Included in MusicEngine as an Example Project.
Space to go
http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=25923
LudumDare #29 gold medal on Audio category(compo)
VOXQUARTER
http://voxquest.tumblr.com/
Now in development
Need a library
that can detect
“Musical Time”
Intelligent Music System for everyone.
What is MusicEngine
A single MonoBehaviour script.  Music.cs
Things you can do
 easily access to What bar/beat/unit is it now?
 easily animate With Synced to Music.
Things you can NOT do
 animate with synced to audio data: use GetSpectrumData instead.
 change music dynamically: use ADX2LE/WWise instead.
DOWNLOADS
https://github.com/geekdrums/MusicEngine
You can see MusicPong(whole Unity project) inside Example folder.
You can use Music.cs alone.
or ADX2LE version is here↓
https://github.com/geekdrums/MusicEngineForADX
Premise
Make music for your own.
• MusicEngine can’t auto detect your music tempo/meters.
You always have ONE Music.
• You can always access to musical info from Music.something(static members)
1MusicalTime=sixteenth note(note)
• Music.MusicalTime increases 1 per 1 sixteenth note.
• (note)You can modify this unit depends on musics or sections.
How to make MusicPong
Music Pong | UnityGameUploader
http://unitygameuploader.jpn.org /game /1233.html
Make Pong.
SINGLE PLAYER PONG
Make Music
https://soundcloud.com/geekdrums /musicpong
5 steps to get things done.
Step1. Add Music component
Step2. Quantize sound
Step3. Fit int the beat
Step4. Animate along the beat
Step5. Scene transition with the music
Step1. Add Music component
Drag Music.cs to a gameobject
default section info will be added
(tempo=120, 4/4)
You are ready to access Music.Just from your code.
Note:
If you music doesn’t starts from 0 sample,
please specify the EntryPointSample.
StartTimeSamples (inside the section info) will be automatically
calcurated from Start Timing.
Tips1: Timing & Section
class Timing
• int Bar;
• int Beat;
• int Unit; //sixteenth note
Note: Starts from (0,0,0). Last timing of 4 bar, 4/4 section will be (3,3,3).
class Music.Section
• int UnitPerBeat=4; //how many unit per beat
• int UnitPerBar=16; //how many unit per bar
• int Tempo=120; //beat per minutes
• Timing StartTiming; //section’s start timing
Note: If you want to use 7/8, try UnitPerBeat=4 & UnitPerBar=14.
Ready
SYSTEM ALL GREEN
Tips2: DebugText
Attach 3DText(TextMesh) to DebugText→
Current Timing(0Bar, 3Beat, 3Unit) Musical Time(16=1bar)
Current section. ”Start” section starts from (0,0,0), tempo = 128.
Note: You can suspend/resume or change pitch of music. It’s no probrem for timing mesuring.
Step2. Quantize sound
 Music.QuantizePlay(AudioSource source, int transpose);
• Audio will be quantized to musical time.
• “transpose” argument: 1 = half tone , 12 = octave.
Ex. Ball.cs↓ Quantizing the reflect sounds.
Quantize + transpose.
Simply fun.
GOOD COST PERFORMANCE!
Step3. Fit in the beat
bool Music.IsJustChangedBar()/Beat()/At(Timing)
Turns true on every ONE FRAME the bar/beat/timing changes.
Ex. Field.cs↓ Changing backgroundColor
Music synced events.
BACK COLOR CHANGE LOOKS COOL.
Tips3: Just & Near
Timing Music.Just : changes JUST after the beat.
Timing Music.Near : indicates the NEARest beat.
Note: If the tempo=120 and you have 60 frame per sec, 1 MusicalTime has 7.5 frames in average.
Note: If you want to do something just BEFORE the timing, IsNearChanged event would be useful.
Step4. Animate along the beat
MUSIC SYNCED ANIMATION
Step4-1.Blink animation
bool Music.IsFormerHalf
blink true/false in forer/later of a musical time.
bool Music.IsJustChanged
Turns true every one frame of sixteenth notes.
Ex. Paddle.cs↓ damage blink animation.
Step4-2. Linear animation
float Music.MusicalTime
float Music.MusicalTimeFrom(Timing)
Get float time of music.
Ex. Padddle.cs↓ paddle showing animation in the beginning.
Step4-3. Swing animation
float Music.MusicalCos(cycle, offset, min, max)
return cos value that swings from max=1 to min=0.
Ex. Field.cs↓ field floor & wall color animations.
Step5. Scene transition with the music
EASY TO TRANSITION
Music.Seek(Timing)/SeekToSection(string name)
Seek to any musical timing.
Ex. Ball.cs↓ Game over logic.
Ex. Field.cs↓ Restart logic.
Step5-1. Seek music to change scene.
Step5-2. Change scene by section info.
Music.CurrentSection
Get current section info.
Ex. Field.cs↓I used section name as a scene.
Done.
MUSIC IS (KIND OF) A MASTER CLOCK OF THIS GAME.
Difference between
Unity+ADX2LE version &
Unity StandAlone
IT’S ALMOST SAME.
Use Block instead of Section
Use “Block Resequencing” technique together.
No tempo & meter change inside a music.
Each block starts from (0,0,0) timing.
Fit the wave length to the block. like this.
Block resequencing, Aisac(RTPC)
Music.Play(musicName, firstBlockName)
Music.SetNextBlock(name/index)
Music.SetAisac(name/index, value) →
That’s all.

Weitere ähnliche Inhalte

Was ist angesagt?

Another world cutscene analysis
Another world cutscene analysisAnother world cutscene analysis
Another world cutscene analysisamybrockbank
 
Manipulation 3 breakdown
Manipulation 3 breakdownManipulation 3 breakdown
Manipulation 3 breakdowngks1996
 
How you think the sound in your chosen example has been produced zelda
How you think the sound in your chosen example has been produced zeldaHow you think the sound in your chosen example has been produced zelda
How you think the sound in your chosen example has been produced zeldaconor0994
 
Python korea(emacs)
Python korea(emacs)Python korea(emacs)
Python korea(emacs)Johnny Cho
 
Creating a game using C++, OpenGL and Qt
Creating a game using C++, OpenGL and QtCreating a game using C++, OpenGL and Qt
Creating a game using C++, OpenGL and Qtguestd5d4ce
 
Audacity Presentation
Audacity Presentation Audacity Presentation
Audacity Presentation raech101
 
It's so quiet. Let's make music.
It's so quiet. Let's make music.It's so quiet. Let's make music.
It's so quiet. Let's make music.Loren Segal
 
How you think the sound in your chosen example has been produced final fantasy
How you think the sound in your chosen example has been produced final fantasyHow you think the sound in your chosen example has been produced final fantasy
How you think the sound in your chosen example has been produced final fantasyconor0994
 
Web audio, Trackers and Making Music
Web audio, Trackers and Making MusicWeb audio, Trackers and Making Music
Web audio, Trackers and Making MusicGibDevs
 
Tutorial presentation
Tutorial presentationTutorial presentation
Tutorial presentationkaeldrid
 
IG3 PROGRAMMING ANNOTATIONS
IG3 PROGRAMMING ANNOTATIONSIG3 PROGRAMMING ANNOTATIONS
IG3 PROGRAMMING ANNOTATIONSElliotBlack
 
Audacity introduction
Audacity introductionAudacity introduction
Audacity introductionGerhard Lock
 
Manufaktoried jueboxes goes to sell
Manufaktoried jueboxes goes to sellManufaktoried jueboxes goes to sell
Manufaktoried jueboxes goes to sellRoweleas s.r.o.
 
Blind Test Rules Of The Game
Blind Test   Rules Of The GameBlind Test   Rules Of The Game
Blind Test Rules Of The Gamesdugot
 
Autonomous Band Project Writeup
Autonomous Band Project WriteupAutonomous Band Project Writeup
Autonomous Band Project WriteupSamantha Luber
 
Comments
CommentsComments
Commentsluke
 

Was ist angesagt? (19)

Another world cutscene analysis
Another world cutscene analysisAnother world cutscene analysis
Another world cutscene analysis
 
Post production
Post productionPost production
Post production
 
Manipulation 3 breakdown
Manipulation 3 breakdownManipulation 3 breakdown
Manipulation 3 breakdown
 
How you think the sound in your chosen example has been produced zelda
How you think the sound in your chosen example has been produced zeldaHow you think the sound in your chosen example has been produced zelda
How you think the sound in your chosen example has been produced zelda
 
Python korea(emacs)
Python korea(emacs)Python korea(emacs)
Python korea(emacs)
 
Creating a game using C++, OpenGL and Qt
Creating a game using C++, OpenGL and QtCreating a game using C++, OpenGL and Qt
Creating a game using C++, OpenGL and Qt
 
Audacity Presentation
Audacity Presentation Audacity Presentation
Audacity Presentation
 
It's so quiet. Let's make music.
It's so quiet. Let's make music.It's so quiet. Let's make music.
It's so quiet. Let's make music.
 
How you think the sound in your chosen example has been produced final fantasy
How you think the sound in your chosen example has been produced final fantasyHow you think the sound in your chosen example has been produced final fantasy
How you think the sound in your chosen example has been produced final fantasy
 
Web audio, Trackers and Making Music
Web audio, Trackers and Making MusicWeb audio, Trackers and Making Music
Web audio, Trackers and Making Music
 
Tutorial presentation
Tutorial presentationTutorial presentation
Tutorial presentation
 
IG3 PROGRAMMING ANNOTATIONS
IG3 PROGRAMMING ANNOTATIONSIG3 PROGRAMMING ANNOTATIONS
IG3 PROGRAMMING ANNOTATIONS
 
Audacity introduction
Audacity introductionAudacity introduction
Audacity introduction
 
Web & sound
Web & soundWeb & sound
Web & sound
 
Speech Analyzer
Speech AnalyzerSpeech Analyzer
Speech Analyzer
 
Manufaktoried jueboxes goes to sell
Manufaktoried jueboxes goes to sellManufaktoried jueboxes goes to sell
Manufaktoried jueboxes goes to sell
 
Blind Test Rules Of The Game
Blind Test   Rules Of The GameBlind Test   Rules Of The Game
Blind Test Rules Of The Game
 
Autonomous Band Project Writeup
Autonomous Band Project WriteupAutonomous Band Project Writeup
Autonomous Band Project Writeup
 
Comments
CommentsComments
Comments
 

Ähnlich wie MusicEngine for Unity/ADX2LE(English)

Audacity Workshop
Audacity WorkshopAudacity Workshop
Audacity WorkshopThomas S.
 
Apple Garage Band
Apple Garage BandApple Garage Band
Apple Garage Bandjobb
 
From Hardware To Live
From Hardware To LiveFrom Hardware To Live
From Hardware To LiveRudy
 
Core audio
Core audioCore audio
Core audioscussen
 
Add a software instrument and record midi and quantize in your daw
Add a software instrument and record midi and quantize in your dawAdd a software instrument and record midi and quantize in your daw
Add a software instrument and record midi and quantize in your dawSebastián La Rocca
 
Abbey road chambers
Abbey road chambersAbbey road chambers
Abbey road chambersJono Bacon
 
BeepComp - Chiptune Creator - User's Guide (v0.2.2)
BeepComp - Chiptune Creator - User's Guide (v0.2.2)BeepComp - Chiptune Creator - User's Guide (v0.2.2)
BeepComp - Chiptune Creator - User's Guide (v0.2.2)Hiro Morozumi
 
Structuring Music Using Linked Lists
Structuring Music Using Linked ListsStructuring Music Using Linked Lists
Structuring Music Using Linked ListsCynthia Marcello
 
The Acoustic Singer/Songwriter Manual
The Acoustic Singer/Songwriter ManualThe Acoustic Singer/Songwriter Manual
The Acoustic Singer/Songwriter ManualShankha Chatterjee
 
"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo ChoiKeunwoo Choi
 
MIDI DAW II - Class 6
MIDI DAW II - Class 6MIDI DAW II - Class 6
MIDI DAW II - Class 6Walt Ribeiro
 
ONTAP - Recording Equipment
ONTAP - Recording EquipmentONTAP - Recording Equipment
ONTAP - Recording EquipmentWRDSB
 
Below are some exercises to practice your skills with sound and image.pdf
Below are some exercises to practice your skills with sound and image.pdfBelow are some exercises to practice your skills with sound and image.pdf
Below are some exercises to practice your skills with sound and image.pdffeelinggift
 

Ähnlich wie MusicEngine for Unity/ADX2LE(English) (20)

Audacity Workshop
Audacity WorkshopAudacity Workshop
Audacity Workshop
 
Apple Garage Band
Apple Garage BandApple Garage Band
Apple Garage Band
 
From Hardware To Live
From Hardware To LiveFrom Hardware To Live
From Hardware To Live
 
Core audio
Core audioCore audio
Core audio
 
Add a software instrument and record midi and quantize in your daw
Add a software instrument and record midi and quantize in your dawAdd a software instrument and record midi and quantize in your daw
Add a software instrument and record midi and quantize in your daw
 
Time Based Effects
Time Based EffectsTime Based Effects
Time Based Effects
 
Abbey road chambers
Abbey road chambersAbbey road chambers
Abbey road chambers
 
Polyanna manual
Polyanna manualPolyanna manual
Polyanna manual
 
Midi
MidiMidi
Midi
 
BeepComp - Chiptune Creator - User's Guide (v0.2.2)
BeepComp - Chiptune Creator - User's Guide (v0.2.2)BeepComp - Chiptune Creator - User's Guide (v0.2.2)
BeepComp - Chiptune Creator - User's Guide (v0.2.2)
 
Structuring Music Using Linked Lists
Structuring Music Using Linked ListsStructuring Music Using Linked Lists
Structuring Music Using Linked Lists
 
The Acoustic Singer/Songwriter Manual
The Acoustic Singer/Songwriter ManualThe Acoustic Singer/Songwriter Manual
The Acoustic Singer/Songwriter Manual
 
"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi
 
60 minutes to music
60 minutes to music60 minutes to music
60 minutes to music
 
MIDI DAW II - Class 6
MIDI DAW II - Class 6MIDI DAW II - Class 6
MIDI DAW II - Class 6
 
Assign 21 lip sync
Assign 21 lip syncAssign 21 lip sync
Assign 21 lip sync
 
ONTAP - Recording Equipment
ONTAP - Recording EquipmentONTAP - Recording Equipment
ONTAP - Recording Equipment
 
How to use reason
How to use reasonHow to use reason
How to use reason
 
Below are some exercises to practice your skills with sound and image.pdf
Below are some exercises to practice your skills with sound and image.pdfBelow are some exercises to practice your skills with sound and image.pdf
Below are some exercises to practice your skills with sound and image.pdf
 
How to use reason
How to use reasonHow to use reason
How to use reason
 

Mehr von Sho Iwamoto

重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて
重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて
重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについてSho Iwamoto
 
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」Sho Iwamoto
 
ScrapBoxについて - インタラクティブミュージック発表会2018
ScrapBoxについて - インタラクティブミュージック発表会2018ScrapBoxについて - インタラクティブミュージック発表会2018
ScrapBoxについて - インタラクティブミュージック発表会2018Sho Iwamoto
 
インタラクティブミュージック発表会2018
インタラクティブミュージック発表会2018インタラクティブミュージック発表会2018
インタラクティブミュージック発表会2018Sho Iwamoto
 
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」Sho Iwamoto
 
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」Sho Iwamoto
 
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食について
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食についてGDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食について
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食についてSho Iwamoto
 
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'Sho Iwamoto
 
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~Sho Iwamoto
 
MusicEngine for Unity 2015/5/5 Update
MusicEngine for Unity 2015/5/5 UpdateMusicEngine for Unity 2015/5/5 Update
MusicEngine for Unity 2015/5/5 UpdateSho Iwamoto
 
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作Sho Iwamoto
 
GDCスカラーシップに応募しよう!
GDCスカラーシップに応募しよう!GDCスカラーシップに応募しよう!
GDCスカラーシップに応募しよう!Sho Iwamoto
 
About musicengine
About musicengineAbout musicengine
About musicengineSho Iwamoto
 
About TeamVOX(for BitSummit2014)
About TeamVOX(for BitSummit2014)About TeamVOX(for BitSummit2014)
About TeamVOX(for BitSummit2014)Sho Iwamoto
 
TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)Sho Iwamoto
 
インタラクティブミュージック研究会
インタラクティブミュージック研究会インタラクティブミュージック研究会
インタラクティブミュージック研究会Sho Iwamoto
 

Mehr von Sho Iwamoto (20)

重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて
重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて
重い音楽と軽い音楽 欧米と日本のゲーム音楽の違いについて
 
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」
ゲーム音楽演出を進化させる「インタラクティブミュージック」と「音楽的ゲームデザイン」
 
ScrapBoxについて - インタラクティブミュージック発表会2018
ScrapBoxについて - インタラクティブミュージック発表会2018ScrapBoxについて - インタラクティブミュージック発表会2018
ScrapBoxについて - インタラクティブミュージック発表会2018
 
インタラクティブミュージック発表会2018
インタラクティブミュージック発表会2018インタラクティブミュージック発表会2018
インタラクティブミュージック発表会2018
 
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」
ゲームデザインを改善/批評するための時間構造モデル「ワンダールクス」
 
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」
SIG-Audio #14 GDC Audio報告会「最先端のInteractive Musicとその未来」
 
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食について
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食についてGDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食について
GDC2017 SIG-Audio報告会 番外編:サンフランシスコの朝食について
 
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'
GDC2017 - Epic AND Interactive Music in 'Final Fantasy XV'
 
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~
ゲームにおけるインタラクションのための音楽技術「MAGI」~瞬間、波形、重ねて~
 
MusicEngine for Unity 2015/5/5 Update
MusicEngine for Unity 2015/5/5 UpdateMusicEngine for Unity 2015/5/5 Update
MusicEngine for Unity 2015/5/5 Update
 
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
 
GDCスカラーシップに応募しよう!
GDCスカラーシップに応募しよう!GDCスカラーシップに応募しよう!
GDCスカラーシップに応募しよう!
 
GCS2014 Kawaz
GCS2014 KawazGCS2014 Kawaz
GCS2014 Kawaz
 
Music engineadx
Music engineadxMusic engineadx
Music engineadx
 
LudumDare
LudumDareLudumDare
LudumDare
 
About musicengine
About musicengineAbout musicengine
About musicengine
 
LudumDareとは
LudumDareとはLudumDareとは
LudumDareとは
 
About TeamVOX(for BitSummit2014)
About TeamVOX(for BitSummit2014)About TeamVOX(for BitSummit2014)
About TeamVOX(for BitSummit2014)
 
TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)
 
インタラクティブミュージック研究会
インタラクティブミュージック研究会インタラクティブミュージック研究会
インタラクティブミュージック研究会
 

Kürzlich hochgeladen

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoordharasingh5698
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 

Kürzlich hochgeladen (20)

Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 

MusicEngine for Unity/ADX2LE(English)

Hinweis der Redaktion

  1. では早速、最初の講演に移らせていただきます、申し遅れました私、このインタラクティブミュージック研究会の設立者でもあります、 スクウェア・エニックス サウンドプログラマーの岩本翔ともうします。よろしくお願い致します。 今日紹介するのは、僕が普段使っているMusicEngineという、Unity用の音楽ライブラリです。
  2. で、宣伝兼ねて採用事例を紹介していきますが、最初に断っておきますがこれは仕事で作っているものとは何の関係もありません。 このライブラリ自体は長いこと趣味で作っていたもので、同人ゲーム開発とかゲームジャムで何度も使っています。 2,3年前くらいからかな?で、全部Unityとこのエンジン、あと一部ADX2LEを組み合わせて作っています。
  3. で、まずこちらのMusicPong、今日はこれをメインに使って解説していきます。 このゲームはプロジェクトファイルごと全部MusicEngineのサンプルの中に入っていますので、誰でも触れます。 使っている素材は音楽1つと効果音1つのみ、グラフィックは全部Planeという、これ以上ないくらいシンプルなゲームです。 で、やってない人のほうが多いと思いますが、もうプレイしたという方は? じゃあプレイしてない人にやってほしいので、手をあげてないそこの方お願いします。 じゃあやってみてください、お願いします。 普通のPongの1人版というか、まぁスカッシュみたいなもんですが、どうぞ。 で、普通Pongっていうと球をこう落とさないように、守ってあげるわけですが、 守られているこの球ですね、残念ながらこの球はですね、音楽に合わせてこっちを攻撃してくるんですね。 だから多分敵ですね。でもこいつが死ぬとゲームオーバーなんですよねぇ。 //...適当にクリアしてもらう、または自分でやる... という感じで、音楽と一緒にクリア、という風になっています。 攻撃のタイミングとか、アニメーションの演出とか、あと最後のクリアまで全部音楽に合わせてるので、 こういうのが非常に簡単に作れます、というのを今日お見せします。
  4. で、あと、こっからただの宣伝ですが、Space to go、 この作品はLudumDareというオンラインゲームジャムにて2日間で1人で作成しました。ありがたいことにAudio部門で世界1位を獲得しました。 これもMusicEngineで音楽と同期させてます、同期っていうか、「プレイヤーがスペースキーを押さないと音楽が進まない」という感じなんですが、 言ってもわからないと思うので、ちらっと動画を。 (動画流す) 作ったゲームを海外の女の子が実況プレイしてくれるって素晴らしいですね、 皆さん是非LudumDareに参加しましょう。 こんな感じで、音楽に同期した演出を作っています。
  5. そして最後に、現在鋭意制作中の音楽RPG。なんか画面が黒いのばっかりですね。 なんか気が付いたら黒くなってるんですよねー。 どんなゲームかというと…… 多分何が起こってるかさっぱりわからないと思うんですが、コマンド選択式のRPGです。 こちらではADX2LEを一緒に使っています。 技が全部音楽に合ってる、合ってるって言うより音楽が技なんですよね。 それでこうやって、ある条件を満たすとサビみたいのに言って、敵をボコボコにすると。 こんなの作ってます。 で、この音楽を変化させるのにはADX2LEというのを使ってるんですが、 前まではLE自体が無料でもUnityがPro版じゃないとプラグインを使えなかったんですが、 今月初めにUnity5が出て、なんと誰でも完全に無料でUnityとADX2LEが使えるようになりました。 ということで、まだ触ったことない方も、チャンスだと思いますので是非試してみましょう。 ということで、色々見ていただきましたが、とにかくこういった 音楽を同期したゲームを作るのに必要なのが、
  6. 「音楽時間」という情報です。 音楽っていうのは、御存知の通り何秒から何、とは言わないわけです、何小節目の何拍目からこう、とか、 音楽の時間で表現します。それは曲によって違うし、さらに曲の中でも変わるかもしれない。 だから、普通は音楽に合わせて何か演出するには、それをプログラムで計算しなきゃいけないので、 簡単にやろうとすると、じゃあ曲はテンポ120で作ってくださいとか、途中で拍子を変えないでくださいとか、 色々と制限があるわけです。 それはひとえに、プログラムが「音楽の時間」を知らない、からです。プログラムはただ秒間44100サンプルの情報を 流しているだけであって、そのサンプルが今何小節目の頭なのか、とか、16部音符の長さがいくつか、なんてのは知りもしない。 もしエンジンまたはライブラリがそういった「音楽時間」を認識することができれば、 そういう環境は「Intelligent Music System」という風に表現されます。 MusicEngineはこの力を皆さんに与えるものです。で、中身はどうなってるかっていうと、
  7. 中身は非常にシンプルで、ソースコード1つになっています。 これを入れるだけでもう使えます。他の準備は一切いりません。 これを使うと、 音楽時間、すなわち今何小節目の何拍目?が取得できる、 そしてそれに合わせたアニメーションを作るための機能が使える、という事になります。 逆にできないことというのは、例えば このエンジンは波形はまったく見てないんですね、見てるのは今のサンプル数だけなので、 波形の情報をうまく使ってかっこよく動かしたい!という人はUnity標準でついてるGetSpectrumDataとか使えばいいと思います。 または、ゲームに合わせて音楽を変えるというのも、このエンジンは音楽流してるのから情報取るだけなんで、できません。 ADX2LEなどと併用することで可能になります。
  8. では早速DLしてみましょう。 ExamplesにはMusicPongが入ってますが、自分でやる分にはコード1つでOKです。 PCあってUnity入ってる方はDLしてみると一緒に色々できると思いますので是非どうぞ。 Examplesの中にはこんな感じで、MusicPongがそのまま入ってるのと、 あとご自身で何か作られるときに試しに使える素材として、SE一つとテンポ120で4小節の音楽一つが入ってます。 これはVOXQUESTっていうゲームで僕が作ったタイトル曲ですね。 ADXと一緒に使う場合は別バージョンがありますのでそちらをどうぞ。基本的な機能は同じなので、共通部分を解説していきます。
  9. それで、使うにあたっていくつか前提を共有しておきたいと思います。 まず1つ目、音楽は自分で用意しましょう、またはテンポや拍子は自分で調べましょう。 このエンジンは波形解析とか何もやりません、自分でテンポがわかっているものを使ってください。 そして2つ目、音楽は常に一つだけ流れている、という前提です。まぁ言われてみればアタリマエではあるんですが、この前提を立てておくことで、 基本的にメンバーにはすべてMusic.なんとか、というStaticメンバでアクセスできるようにしてあります。速度最重視です。 クロスフェードなんて甘えです。音楽が混ざるなんてことはその時点でぶれている証拠です。 まぁ、今はできるようにしましたけどねw でも基本的にMusic.で常に「今の音楽」にアクセスできるようになってます。 そして3つ目、「音楽時間」と呼んでいるものには、最小の単位を一つ定める必要があって、デフォルトではこれが「16部音符」になっています。 といっても、いつでも8分音符とか3連付とか6連付に変更できます。MusicalTimeという変数とか概念が出てくるんですが、 それは基本的にこれを1つのユニットとして数えています。
  10. それでは、MusicPongの作り方を見て行きましょう。
  11. ということで、Pongを作ります。まぁプログラマなら一瞬ですね。ぽんっとできますね。 だいたい1時間~3時間くらいでしょうか?
  12. さてそして、今回のゲーム性も考慮して音楽を作ります。結局ここが一番難しいです。 完全に音楽を主軸でゲームを作る場合、音楽がレベルデザインとか開始演出とかクリア演出すべてを包含していなければいけないので、 それを考えながら音楽を作る必要があります。 今回だと、開始演出があって、徐々にリズムが増えていって…… あと、変拍子にも対応してますってのを見せたかったんで、後半に7/8拍子を入れています。 そしてそのまま盛り上がってクリアと。 考えるのは大変ですが、ここまでできたらもうゲームのダイナミクスがとても明確にイメージできるので、 ゲームを企画するという観点からも非常に良いプロセスだと思っています。
  13. さぁそして、曲ができてしまえばこっちのもの、あと5ステップくらいで、次々にゲームと音楽を融合させていきます。 一応Unityの基礎知識無い人はちょっと置いてけぼりにしてしまうんですが、コンポーネントつけるところから、 クオンタイズして、演出して、アニメーションして、シーン遷移と見ていきます。
  14. というわけで、DLしたスクリプトをコンポーネントとしてはっつけます。 すると、デフォルトのセクション情報が挿入されます。テンポ120の場合はこのままでOKです。 曲に応じて、テンポの他に拍子とか、途中でそれが変化する場合はセクションの情報を追加していきます。 で、これでもう準備OKです、これでコードの中からMusic.Justってやったら、すぐにでも タイミング情報を取得できます。
  15. でそのタイミング情報なんですが、中身こんな感じになってます。 何小節目の何拍目の16部音符いくつ目か、をそれぞれ、Bar,Beat,Unitと呼んでいます。 すべて0スタートになっているので、最初は000で始まって、例えば4小節の最後は333になっています。 プログラマの方にはわかりやすいと思うんですが、DAWは1から始まる場合もあるので、DAWを見ながら小節数打ち込む場合はちょっと注意という感じですかね。 で、これを取得するためにさっき設定してもらった「セクション」、すなわち拍子とテンポの情報が必要になります。 最初のUnitPerBeatっていうのが、1拍にいくつ音楽時間、Unitが入るか。なんで16ビートなら4ですね。 UnitPerBarは同様に1小節にUnitがいくつ入るか、なので、16にしたら4拍子、12にしたら3拍子になりますね。 変拍子はここを変えることで対応できて、例えば7拍子なら14にするような感じで表現できます。
  16. こうやって拍子を指定したら準備OKです。
  17. じゃあちょっと準備できたかどうか、これだけじゃわからないので、デバッグテキストで確認してみましょう。 3DTextを作ってここに指定してくれれば、再生したら情報が見れます。 なんかバグってるかと思ったらここを見て確認してみてください。 これは途中でピッチを変えたりしてもちゃんとついてくるので、ほとんど大丈夫だと思いますが。
  18. じゃあ最初に、ゲーム作ってて一番大事なことって、やっぱり、気持ちよさだと思うんですね。 というわけで、とりあえずクオンタイズさせてみましょう。これだけでゲームが音楽的に、気持ちよくなります。 やり方は簡単で、AusioSourceのPlayを呼ぶ代わりにMusic.QuantizePlayに渡すだけです。 これで自動的にMusicalTimeに合わせて再生されます。音程変更も同時にできるので、これだけで音楽的な反応のバリエーションが作れます。 MusicPongでは、壁、天井で音程を変えています。こんな感じで。(デモ) そのままだとドの音なので、天井は7半音上げてソにしています。
  19. という感じで、これだけで気持ちよくなりました。 まぁ、Pongはあまり連続してたくさん鳴るわけじゃないんで、これだけじゃ盛り上がらないんですけど、 それにしてもやっぱり、インタラクティブミュージックは低コストで効率いいなぁと思います。
  20. さてじゃあ次は、気持よくできたら、やっぱカッコよくしたいですよね。音楽と合わせて画面がバッと切り替わるとVJっぽくてかっこいい。 というわけで、音楽に合わせたイベントを使って演出してみます。そこで使えるのが、このIsJustChanged系です。 一番よく使います。これは任意のタイミング、小節頭とか、拍とか、指定して、そのフレームだけを検知することができます。 MusicPongでは、例えば背景の色を切り替えたりしていますね。
  21. こんな感じで、演出を音楽に合わせることができます。背景色変えるのは楽にかっこよくできてオススメ。
  22. ちなみに、さっきJustChangedとか出てきましたが、実はMusicエンジンには Justともう一つ、Nearという2種類のタイミング情報が同時にあります。 Justはその名の通り、ジャストに来てから切り替わるんですが、 Nearは常に、一番近いタイミング、を指すようになっています。 図にするとこんな感じ。 音ゲー的なタイミング判定には必要かなーとか、ちょうどこの拍に来た直後だともう遅い!って場合などに使えます。 まぁでも、基本的にJustで事足ります。
  23. ではでは、次にやっぱりゲームをクオリティ高く見せるためには、アニメーションが重要です。 しかもこれが音楽に合ってると、とてもカッコいい。というわけで、アニメーション作ってみます。 アニメーションに使えるのは色々あるので、好きなのを選んで使っていただければいいんですが、
  24. まず最初に簡単な点滅から見て行きましょう。 Music.IsFormerHalfっていうのがあります。これは1音楽時間の中で前半か後半か、で切り替わります。 さっきの図で言うとここの前半と後半、でTrue,Falseになります。これを使ったら、 いい感じの速さの点滅が1行で書けます。 で、その点滅の時間もIsJustChangedっていうプロパティで ここの音楽時間に何回来ましたか、という単位で更新していくと、 16部音符ごとに点滅して、点滅4回で終わり、っていうのが非常に簡単に書けます。 こういうのは別に音楽同期しなくてもいいんですけど、いちいち時間変数を用意して自分で剰余とって……ってやるより、 はるかに早く作れる、というのがひとつ利点になっています。
  25. 次に最初のパドルが出てくるときに音に合わせてびょーんと出てくるアニメーションを見てみましょう。 MusicalTimeというプロパティで、音楽時間をfloatで取得できます。 開始タイミングを指定してここからの時間、なども計算できます。 ここのコードだと、パドルが出てくるのは音楽時間のゼロからなんで、音楽時間を直接取って、 それを16つまり1小節分の時間で割って、1小節で伸ばしています。 あと、ボールが攻撃してくるビームのアニメーションもこれを使って計算していますね。結構何にでも使えると思います。
  26. さらに、音楽に同期させようとしてよくあるのが、音楽にあわせて色とか大きさを波打たせる動き、 これも最初はいちいち音楽時間をCosに変換してたんですが、あまりに良く使うんで面倒になって、MusicalCosという関数にしました。 これを使って、こういう色のアニメーションも一行で作れます。 Cycleに音楽時間を指定して、なので16にすると1小節で1周、で初期値をずらしたければそれをオフセットして、 あとはminとmaxはデフォルトでは使いやすいように01にしてますが、お好みで-1から1とかでも使えます。
  27. そして最後にシーン遷移です。 これも音楽に合わせて作ってあるので、普通は色んなマネージャ的なクラスが必要になるところが、 「皆音楽を見てやりなさい」ってなってるので、非常に楽に作れます。
  28. 例えば、ゲームオーバーとかも曲を移動させるだけでできるんですね。 Seek関数で、タイミングを指定、またはセクションを分けておけば名前でも指定できるので楽です。 リスタートも同様にやってるので、非常に簡単にできています。
  29. ゲームクリアに至ってはもっと簡単で、曲が進んだら自動的にクリアセクションに行くので、 あとはそれを各自が見て状態を変えるだけなんですね。 音楽が状態も時間も含んでいるおかげで、音楽がマスタークロックの役割となって、 全部のオブジェクトがそれぞれ勝手に音楽から情報を取ってこれるので、 ゲームと音楽も同期するし、作る上でも非常に簡単にシーンの遷移が実現可能という、一石二鳥な感じになってます。
  30. というわけで、演出を簡単に入れていくことができました。 やっぱり、曲を作るのは大変ですが、同期したゲームを作るのは、 作業の上でもゲームデザインの上でも非常に便利だなぁという風に思います。
  31. 最後に、ADX2LE版との違いをまとめておきます。 基本的なAPIは同じなので、同じ感覚で使えると思いますが、いくつか違う所があります。
  32. まず、ADX2には元から「ブロック」という機能があります。 これを使って、音楽を数小節単位で分けておくと、小節に合わせた音楽の遷移が可能というものです。 これと共存するために、Sectionという情報はBlockというものに置き換わっていて、 あとSectionには拍子やテンポの情報がありましたが、それはBlockじゃなくて曲で一つ固定、という仕様になっています。 これはまぁ、ADXのツール側も1つのキューにテンポを一つ指定する感じになっているので、それに合わせた感じです。 なので、ブロックの中にあるのはそのブロックが何小節ですか、という情報だけです。 あと、ブロックはこんな感じに並んでますが、タイミング情報はそれぞれのブロックで全部ゼロから始まります。 ブロックは相互に行き来できるので、それぞれに先とか後という関係はないです。 で、ADXは再生時間を取ってくるときに一番上の波形のサンプルを返すので、できれば一番上には小節数ピッタリの音を置いてください。 じゃないと違うブロックに行った時に前のサウンドが残っててタイミングがゼロに戻らない、という現象が起こります。
  33. ブロックを設定したらブロック遷移とかブロックを指定しての再生開始とか、 Aisacといった制御も簡単にアクセスできるようになっています。 Aisacってこういう、パラメータを自分でコントロールできるやつですね。 まぁこれはMusicEngineなくても元から簡単にできるんですが、Musicエンジンを使う上でのラッパーのようなものですね。
  34. ということで、ありがとうございました。 皆さんこれで、是非色んな音楽とゲームの融合を試してみてください。