Visual Programming Framework UniFlow のご紹介/Introducing UniFlow

7b13f432547b92d04c79b749adb535e0?s=47 Tetsuya Mori
October 23, 2019

Visual Programming Framework UniFlow のご紹介/Introducing UniFlow

2019/10/23 (Wed) に開催された Roppongi.unity #5 にて発表した「UniFlow - Visual Programming Framework for Unity」の紹介スライドです。

7b13f432547b92d04c79b749adb535e0?s=128

Tetsuya Mori

October 23, 2019
Tweet

Transcript

  1. גࣜձࣾΩοζελʔ$50 ৿ɹ఩࠸ 6OJ'MPX  8FE 3PQQPOHJVOJUZJOϝϧΧϦBU࿡ຊ໦ώϧζ dਓྨΛίϯύΠϧ͔࣌ؒΒղ์͢Δd SPQQPOHJVOJUZ 7JTVBM1SPHSBNNJOH'SBNFXPSL ͷ͝঺հ

  2. ͜Μ͹Μ͸ʂ 

  3. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ

  4. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  5.  ࠓ೔ͷ-5ʹ͍ͭͯ ηογϣϯ֓ཁ εϥΠυ ಈը 6OJUZ-FBSOJOH.BUFSJBMT ʹͯެ։༧ఆ

  6. w$Λॻ͔ͣʹॲཧΛ࣮૷͍ͨ͠ਓ w%PNBJOͱ7JFXΛ੾Γ෼͚ͨઃܭ Λ͍ͨ͠ਓ w6OJUZͷίϯύΠϧΛ଴͍ͬͯΔؒʹ ;ͱ5XJUUFSΛݟ͍ͯͨΒ࣌ؒ͘Β ༹͍͔ͨ͜͠ͱ͕͋Δਓ  ࠓ೔ͷର৅ऀ ηογϣϯ֓ཁ

  7. w6OJ'MPXͷ঺հ w6OJ'MPXΛ༻͍ͨσϞ  ࠓ೔࿩͢ίτ ηογϣϯ֓ཁ

  8. w"TTFU4UPSFͰൢച͞Ε͍ͯΔ "SCPS΍#PMUͳͲʹ͍ͭͯ w6OJUZҎ߱Ͱ౥ࡌ͞ΕΔ༧ఆ ͷ7JTVBM4DSJQUJOHػೳʹ͍ͭͯ  ࠓ೔࿩͞ͳ͍ίτ ηογϣϯ֓ཁ

  9. ηΫγϣϯλΠτϧ w+PC$50BU,JET4UBS*OD w'BNJMZ࠺ɾ່ w6OJUZྺ೥໨ w!NPOSZ wBLB΋ΜΓ͌ઌੜ 9 ࣗݾ঺հ ηογϣϯ֓ཁ

  10.  ࣗݾ঺հ"XBSE ηογϣϯ֓ཁ .JDSPTPGU.71 GPS%FWFMPQFS5FDIOPMPHJFT 6OJUZ"NCBTTBEPS

  11.  ࣗݾ঺հ+PC ηογϣϯ֓ཁ ະबֶࣇʙখֶߍ௿ֶ೥޲͚ͷ ৬ۀମݧΞϓϦʮͬ͜͝ϥϯυʯΛ ೥Ҏ্ʹΘͨΓ։ൃɾӡӦ

  12. ηΫγϣϯλΠτϧ wΩοζελʔֶशா 1JYJW#005)ʹͯ ޷ධൢചதʂ w"TTFU#VOEMF w։ൃൿ࿩ wւ֎ۈ຿ͷ͓࿩͠ wษڧձ։࠵ w"OESPJEࣗಈςετ w7FDUPS(SBQIJDT

    12 ࣗݾ঺հ13 IUUQTLJETTUBSUCGCPPUIQN ηογϣϯ֓ཁ
  13.  ࣗݾ঺հ13 ηογϣϯ֓ཁ #΋ͷϥδ ύʔιφϦςΟ΍ͬͯ·͢ʂ ήετืूதʂ

  14. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  15. 6OJ'MPXͷ֓ཁ 

  16.  ֓ཁ 6OJ'MPXͷ֓ཁ 6OJ'MPX ॲཧͷ ஞ࣮࣍ߦ (SBQI7JFX Πϕϯτ ଴ͪड͚ 044

    γάφϧʹΑΔ υϝΠϯ઀ଓ
  17.  ॲཧͷஞ࣮࣍ߦ 6OJ'MPXͷ֓ཁ wʮ˓˓Λͨ͠Βɺ˘˘Λ͢Δʯ ͱ͍͏ॲཧΛ਺चͭͳ͗ʹ࣮ߦ wશͯͷ৘ใ͸4FSJBMJ[F͞Εͯอ࣋ ͞ΕΔʢ4DFOF1SFGBCʣ w໪࿦"TTFU#VOEMF"EESFTTBCMF ʹ΋ରԠ

  18.  Πϕϯτ଴ͪड͚ 6OJ'MPXͷ֓ཁ wʮϘλϯ͕λοϓ͞ΕͨΒʯʮఢػʹ ࣗػ͕Ϳ͔ͭͬͨΒʯͱ͍ͬͨɺ ΠϕϯτॲཧʹରԠ wجຊతͳΠϕϯτ͸αϙʔτࡁ w"VEJP "OJNBUJPO 5JNFMJOF

    ͷ࠶ੜऴྃ଴ͪͳͲ΋͋Γ
  19.  γάφϧʹΑΔυϝΠϯ઀ଓ 6OJ'MPXͷ֓ཁ w1VSF$Ͱ࣮૷͞ΕΔυϝΠϯॲཧ ͱͷڥքΛڮ౉͢͠ΔͨΊͷ4JHOBM ͱ͍͏࢓૊ΈΛ࣮૷ࡁ w6OJ'MPXίϯϙʔωϯτؒͷ ઀ଓʹ΋ར༻Մೳ

  20.  (SBQI7JFX 6OJ'MPXͷ֓ཁ w6*&MFNFOUTͷ(SBQI7JFXΛ ༻͍ͨϏδϡΞϥΠζ w&YQFSJNFOUBM͸͍ͭ֎ΕΔͷ͔͠Βʜʁ wҰఆͷϧʔϧʹԊͬͨίϯϙʔωϯτ Λ࡞Δ͜ͱͰ֦ு΋༰қ

  21.  0QFO4PVSDF4PGUXBSF 6OJ'MPXͷ֓ཁ w044ͱͯ͠(JU)VCͷ 1VCMJD3FQPTJUPSZͰ։ൃத w⭐͍ͩͬ͘͞ʂ w .*5-JDFOTFΛઃఆ͍ͯ͠·͢

  22. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  23. 6OJ'MPXͷΠϯετʔϧ 

  24.  Πϯετʔϧ 6OJ'MPXͷΠϯετʔϧ

  25. w6OJUZ1BDLBHF.BOBHFS ʢಠࣗϨδετϦʣʹͯఏڙ wݱࡏ WQSFWJFX͕ఏڙ  Πϯετʔϧ 6OJ'MPXͷΠϯετʔϧ

  26.  Πϯετʔϧ 6OJ'MPXͷΠϯετʔϧ { "dependencies": { "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0",

    // ... "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0" }, "scopedRegistries": [ { "name": "Unofficial Unity Package Manager Registry", "url": "https://upm-packages.dev", "scopes": [ "com.stevevermeulen", "jp.cysharp", "dev.monry", "com.unity.simpleanimation", "dev.upm-packages" ] } ] } Packages/manifest.json
  27.  Πϯετʔϧ 6OJ'MPXͷΠϯετʔϧ

  28.  Πϯετʔϧ 6OJ'MPXͷΠϯετʔϧ

  29. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  30. 6OJ'MPXͷ࢖͍ํ 

  31.  6OJ'MPX(SBQI 6OJ'MPXͷ࢖͍ํ

  32.  %&.0 6OJ'MPXͷ࢖͍ํ

  33. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  34. 6OJ'MPXͷ֦ு 

  35. wConnectorBaseΛܧঝ wpublic override IObservable<Message> OnConnectAsObservable() ʹϝοηʔδ͕ྲྀΕ͖ͯͨ࣌ͷॲཧΛ ॻ͘  $POOFDUPS#BTF 6OJ'MPXͷ֦ு

  36. wIMessageComposableΛ࣮૷ wग़ྗ͢Δ஋ͱΩʔͷϦετΛฦ͢  ग़ྗ 6OJ'MPXͷ֦ு

  37.  ग़ྗ 6OJ'MPXͷ֦ு IEnumerable<IComposableMessageAnnotation> IMessageComposable.GetMessageComposableAnnotations() { return new[] { ComposableMessageAnnotationFactory.Create(

    () => Result, "SomeOutput" ), }; }
  38. wIMessageCollectableΛ࣮૷ wೖྗՄೳͳܕͱΩʔͱॲཧͷϦετΛ ฦ͢ wCollectorͱ͍͏ಛघͳΫϥεΛ ௨ͯ͠஋Λճऩ͢Δ  ೖྗ 6OJ'MPXͷ֦ு

  39.  ೖྗ 6OJ'MPXͷ֦ு IEnumerable<ICollectableMessageAnnotation> IMessageCollectable.GetMessageCollectableAnnotations() { return new[] { CollectableMessageAnnotationFactory.Create(

    SourceCollector, x => Source = x, nameof(Source) ), }; }
  40. wηογϣϯ֓ཁ w6OJ'MPXͷ֓ཁ w6OJ'MPXͷΠϯετʔϧ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு w·ͱΊ  ΞδΣϯμ ΠϚίί

  41. ·ͱΊ 

  42.  ·ͱΊ ·ͱΊ w6OJ'MPXΛ࢖͏ͱ$Λॻ͔ͣʹ ৭ʑͳॲཧΛ࣮૷Ͱ͖Δʂ w6OJUZͰͰ͖Δίτ͸6OJ'MPXͰɺ Ͱ͖ͳ͍ίτ͸$Ͱɻ w(JU)VC4UBS෇͚ͯͶͬʂ

  43.  ஫ҙࣄ߲ ·ͱΊ wݱࡏͷόʔδϣϯ͸ v0.1.0-preview.34.1 Ͱ͢ɻ wେ෼҆ఆ͖ͯ͠·͕ͨ͠ɺࠓޙ΋ ഁյతมߋ͕ೖΔՄೳੑ͕͋Γ·͢ɻ w஋ͷೖग़ྗͷॲཧ͸վળ༧ఆ͋Γ

  44.  "QQFOEJY w,JET4UBS5FDI/PUF w https://kidsstar-tbf.booth.pm/ w6OJ'MPX(JU)VC w https://github.com/monry/UniFlow w6OJ'MPX:PV5VCF w

    Πϯετʔϧฤ w ࢖͍ํฤ
  45. 5IBOLZPVGPSZPVS BUUFOUJPO