Slide 1

Slide 1 text

APIs for VJ-ing APIs for VJ-ing amagitaJayosi

Slide 2

Slide 2 text

@amagitakayosi

Slide 3

Slide 3 text

࠷ۙAtomύοέʔδΛ࡞ͬͯ·͢

Slide 4

Slide 4 text

ࠓ೔͸๻͕࡞ͬͨ "UPNύοέʔδΛ
 ঺հσϞͭͭ͠ ࢖͍ͬͯΔ"1*Λ ղઆ͠·͢ʂʂʂʂ

Slide 5

Slide 5 text

glsl livecoder

Slide 6

Slide 6 text

HMTMMJWFDPEFS w "UPNͰ7+Ͱ͖Δύοέʔδ w (-4-ͷ࣮ߦ؀ڥ w (-4-Ͱө૾ΛϦΞϧλΠϜʹੜ੒ͨ͠Γ w ಈըը૾Λϩʔυͯ͠
 (-4-ͰՃ޻Ͱ͖ΔΑ͏ʹͨ͠Γ

Slide 7

Slide 7 text

(-4-γΣʔμʔͷҰछ w %$(ͰӄӨΛܭࢉ͢ΔͨΊͷݴޠ w )-4- %JSFDU9 ͱ͔ɺ.FUBM NBD04 ͱ͔ w ߦྻܭࢉʹศརͳϏϧτΠϯؔ਺ w qPBUEPU WFDB WFDC ͱ͔

Slide 8

Slide 8 text

γΣʔμʔΞʔτ w (-4-͸(16ύϫʔΛϑϧ׆༻Ͱ͖Δ w ʮ(-4-͚ͩͰෳࡶͳάϥϑΟοΫදݱΛ
 ɹඳըͰ͖ΔͷͰ͸ʁʯ w Ұ෦ͷਓʑ͕େڵฃ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

ࢀߟLJOUSPl&MFWBUFEz IUUQTXXXZPVUVCFDPNXBUDI WK#W#NJ5SP

Slide 11

Slide 11 text

ී௨ͷ%άϥϑΟοΫε w ਺ઍʙ਺ສϙϦΰϯ γΣʔμʔ

Slide 12

Slide 12 text

൘ϙϦ w ࡾ֯ܗݸ γΣʔμʔ͚ͩͰશͯΛදݱ

Slide 13

Slide 13 text

طଘͷϥΠϒίʔσΟϯά؀ڥ w ,PEFMJGFNFUBMͰॻ͚ΔσεΫτοϓΞϓϦ w 4IBEFSUPOF&NBDT $MPKVSF w ):-0(&/)BTLFMM੡"MU(-4-؀ڥ w 4ZOUIDMJQTFδϟό

Slide 14

Slide 14 text

4ZOUIDMJQTF

Slide 15

Slide 15 text

طଘ؀ڥ΁ͷෆຬ • ίʔυิ׬͍ͨ͠ • linter࢖͍͍ͨ • ϞδϡʔϧγεςϜ࢖͍͍ͨ • GLSLʹ͸جຊincludeͱ͔ͳ͍

Slide 16

Slide 16 text

"UPNύοέʔδͱͯࣗ͠࡞ w طଘͷύοέʔδΛར༻Ͱ͖Δ w MJOUFS BVUPDPNQMFUF FUDʜ w &MFDUSPOͳͷͰɺϒϥ΢βͷ༷ʑͳ
 "1*Λར༻Ͱ͖Δ w +4੡(-4-όϯυϥʔΛ࢖͑Δ

Slide 17

Slide 17 text

DeMO

Slide 18

Slide 18 text

IUUQTXXXqJDLSDPNQIPUPTIFMMPDBUGPPE API

Slide 19

Slide 19 text

HMTMMJWFDPEFSͰར༻ͯ͠Δ"1* w 8FC"VEJP"1* w 8FC.*%*"1* w (BNFQBE"1* w HFU6TFS.FEJB w 04$ 8*1

Slide 20

Slide 20 text

8FC"VEJP"1* w ݴΘͣͱ஌ΕͨԻΛग़͢΍ͭ w γϯηͱ͔΋࡞ΕΔ w ࢓༷͕ίϩίϩมΘΔ w (JU)VCͰٞ࿦͕ݟΕΔ

Slide 21

Slide 21 text

Ի੠ೖྗ͔Βछྨͷ৘ใΛऔಘ w Իྔ w ೾ܗ w εϖΫτϥϜ w प೾਺ଳ͝ͱͷԻྔΛղੳͨ͠΋ͷ

Slide 22

Slide 22 text

Ի੠ೖྗ͔Βछྨͷ৘ใΛऔಘ w Իྔ w ೾ܗ w εϖΫτϥϜ w प೾਺ଳ͝ͱͷԻྔΛղੳͨ͠΋ͷ AnalyserNodeͰ ҰؾʹऔಘͰ͖Δ

Slide 23

Slide 23 text

(-4-ʹσʔλΛ౉͢ w +4͔Β(-4-ʹ౉ͤΔσʔλͷ਺͸্ݶ͕͋Δ w େྔͷσʔλΛ౉͢ʹ͸ςΫενϟΛ࢖͏ʂ w ೾ܗΛ6JOU"SSBZʹม׵͠ɺ
 5)3&&%BUB5FYUVSFͰ(16ଆʹૹΔ

Slide 24

Slide 24 text

೾ܗΛUFYUVSFͱͯ͠දݱ

Slide 25

Slide 25 text

εϖΫτϥϜ΋ಉ༷

Slide 26

Slide 26 text

8FC.*%*"1* w .*%*ָثͷԋ૗৘ใͷن֨ w ϒϥ΢β͔ΒָثΛ໐Βͨ͠Γ w .*%*ίϯτϩʔϥʔͰ
 8FCΞϓϦΛૢ࡞ͨ͠Γ

Slide 27

Slide 27 text

.*%*ϝοηʔδͷߏ଄ w .*%*ίϯ౳Ͱ࢖ΘΕΔϝοηʔδ͸όΠτ 0xB0 0x00 0x7F ϝοηʔδͷछྨ ίϯτϩʔϧ൪߸ ஋

Slide 28

Slide 28 text

UFYUVSFʹม׵ w YͷUFYUVSFʹϚοϐϯά w CZUF໨Y࣠ w CZUF໨Z࣠ w CZUF໨஋

Slide 29

Slide 29 text

ྫY#YY' 256 128

Slide 30

Slide 30 text

ྫY#YY' x=0xB0=172 y=0 0x7F = 128 (/255) = ໌Δ͞൒෼

Slide 31

Slide 31 text

OPUFPOPGG͸ಛผѻ͍͍ͨ͠ w OPUFPOP⒎͸όΠτ໨͕YY w YͷςΫενϟΛ࡞Δ x=Իͷߴ͞ ৭=Իྔ

Slide 32

Slide 32 text

(BNFQBE"1* w ήʔϜύουͷ৘ใΛऔಘ͢Δ w ϑϨʔϜຖʹϙʔϦϯά͢Δඞཁ͕͋Δ

Slide 33

Slide 33 text

ήʔϜύουͷ઀ଓΛ଴ͬͯ rAF಺ͰຖϑϨʔϜ Ϙλϯ৘ใΛऔಘ͢Δ

Slide 34

Slide 34 text

HFU6TFS.FEJB w ϚΠΫ΍Χϝϥͷө૾ΛऔಘͰ͖Δ w WJEFPཁૉͷTSDʹࢦఆͰ͖Δ

Slide 35

Slide 35 text

getUserMediaͷ݁Ռ͔Β videoཁૉΛ࡞ͬͯ THREE.VideoTextureͰ GLSLʹ౉͢

Slide 36

Slide 36 text

04$ ະରԠ w .*%*ΑΓ΋ॊೈͰɺ
 ༷ʑͳϝοηʔδΛఆٛͰ͖Δϓϩτίϧ w ָثͱ͔ϥΠϒίʔσΟϯάۀքͰ͸
 σϑΝΫτʹͳΓͭͭ͋Δ w ରԠͯ͠΁Μͷʁͱ͍͏ཁ๬͕͋ͬͨ

Slide 37

Slide 37 text

04$ϝοηʔδͷߏ଄ w Ϛδ͔Α /foo/bar 1 baz [1 2 3] OSCΞυϨε ೚ҙͷจࣈྻ OSCҾ਺
 ೚ҙݸͷҾ਺

Slide 38

Slide 38 text

04$ʹରԠ͢Δʹ͸ w NJEJYZ[Έ͍ͨͳΤϯυϙΠϯτͰ
 .*%*ͬΆ͘ରԠ͢Δ͔͠ͳ͍ʜʜʁ w 5PVDI04$ʹ͸.*%*ϒϦοδ͕͋Γɺ
 ࣅͨΑ͏ͳ͜ͱΛ΍͍ͬͯΔͬΆ͍

Slide 39

Slide 39 text

͓·͚TUBDLHMHMTMJGZ w CSPXTFSJGZͷ(-4-൛ w 
 ͱ͔ॻ͘ͱόϯυϧͯ͘͠ΕΔ w HMTMJGZ༻ͷϥΠϒϥϦ͕
 OQNͰଟ਺ެ։͞ΕͯΔ

Slide 40

Slide 40 text

ݟ֮͑͋Δ։ൃਞ

Slide 41

Slide 41 text

͍ΖΜͳϥΠϒϥϦ͕͋Δɻੈքʜʜ

Slide 42

Slide 42 text

ࡢ೔HMTMJGZαϙʔτ͠·ͨ͠

Slide 43

Slide 43 text

·ͱΊ

Slide 44

Slide 44 text

(-4-ͨͷ͍͠ʂʂʂ w ࠷ۙझຯͰ8FCΞϓϦશવॻ͍ͯͳ͍ w ΈΜͳ(-4-΍Ζ͏ͥ

Slide 45

Slide 45 text

1BUDIFTXFMDPNF

Slide 46

Slide 46 text

eNJOY VJ-ING!!! eNJOY VJ-ING!!!