Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ココがダメだよWebCamTexture

 ココがダメだよWebCamTexture

イケてないと悪評高いUnityのWebCamTextureを使ってみたので、ダメな部分を紹介します。

Masaya Yashiro

June 21, 2017
Tweet

More Decks by Masaya Yashiro

Other Decks in Technology

Transcript

  1. ίί͕μϝͩΑ
    WebCamTexture
    @yashims85

    View Slide

  2. ήʔϜҎ֎ͰUnity

    View Slide

  3. ήʔϜҎ֎ͰUnity
    "OESPJEJ04྆ରԠ
    6*ΤσΟλ
    σόΠεػೳ

    View Slide

  4. ͳΜ͔ͩΜͩ
    ήʔϜҎ֎΋࡞Γ΍͍͢

    View Slide

  5. ΧϝϥΞϓϦ

    View Slide

  6. WebCamTextureͱ͸

    View Slide

  7. WebCamTexture
    • Unityඪ४ͷσόΠεΧϝϥAPI
    • Χϝϥͷө૾͕Ϩϯμʔ͞ΕΔTextureͷࢠΫϥε
    • Android/iOS/Editor্Ͱ໰୊ͳ͘ಈ͘
    • ྑ͍ᷚ͸ฉ͔ͳ͍
    • ΧϝϥΞηοτങ͏ʹͯ͠΋ɺҰ౓WebCamTexture
    ࢖ͬͯΈͳ͍ͱͲ͏͍͏ͷ͕ཉ͍͔͠෼͔Βͳ͍

    View Slide

  8. ࢖͍ํ
    private struct Fhd
    {
    public const int Width = 1920;
    public const int Height = 1080;
    }
    private int Fps = 30;
    private WebCamTexture WebCam { get; set; }
    void Start()
    {
    WebCam = new WebCamTexture(
    WebCamTexture.devices[0].name, Fhd.Width, Fhd.Height, Fps
    );
    WebCam.Play();
    }
    private void OnDestroy()
    {
    WebCam.Stop();
    Destroy(WebCam);
    }

    View Slide

  9. ؆୯ͩʔ

    View Slide

  10. ͳΜ͔ΊͬͪΌॏ͍
    (ϊʔϚϧͷΧϝϥΞϓϦͱൺ΂ͯ)

    View Slide

  11. ͳΜ͔ΊͬͪΌॏ͍
    private struct Fhd
    {
    public const int Width = 1920;
    public const int Height = 1080;
    }
    private int Fps =
    8;
    private WebCamTexture WebCam { get; set; }
    void Start()
    {
    WebCam = new WebCamTexture(
    WebCamTexture.devices[0].name, Fhd.Width, Fhd.Height, Fps
    );
    WebCam.Play();
    }

    View Slide

  12. ·ͩ୺຤ʹΑͬͯ͸ॏ͍

    View Slide

  13. ·ͩ୺຤ʹΑͬͯ͸ॏ͍
    private struct Hd
    {
    public const int Width = 1280;
    public const int Height = 720;
    }
    private int Fps = 8;
    private WebCamTexture WebCam { get; set; }
    void Start()
    {
    WebCam = new WebCamTexture(
    WebCamTexture.devices[0].name, Hd.Width, Hd.Height, Fps
    );
    WebCam.Play();
    }

    View Slide

  14. ͳΜ͔Portraitͷ࣌ө૾͕ߥ͍

    View Slide

  15. ͳΜ͔Portraitͷ࣌ө૾͕ߥ͍
    private struct Hd
    {
    public const int Width = 720;
    public const int Height = 1280;
    }
    private int Fps = 8;
    private WebCamTexture WebCam { get; set; }
    void Start()
    {
    WebCam = new WebCamTexture(
    WebCamTexture.devices[0].name, Hd.Width, Hd.Height, Fps
    );
    WebCam.Play();
    }

    View Slide

  16. औಘग़དྷΔΞεൺ͕
    มΘΒͳ͍ΜͰ͕͢

    View Slide

  17. มΘΒͳ͍Ξεൺ
    ཉ͍͠Ξεൺ ฦͬͯ͘Δө૾ͷΞεൺ
    Y ԣ')%
    Y ԣ')%

    Y ॎ')%
    Y ԣ')%

    Y ')%௕ล
    Y ԣ')%

    Y )%௕ล
    Y ԣ)%

    View Slide

  18. LandscapeͰ͔͠ը૾͕औΕ
    ͳ͍ͷͰCenterCrop͢Δ͠
    ͔ͳ͍

    View Slide

  19. LandscapeͰ͔͠ը૾͕औΕ
    ͳ͍ͷͰCenterCrop͢Δ͠
    ͔ͳ͍

    View Slide

  20. ࠷ऴతͳPortraitͷղ૾౓
    • VGA: 640x480
    QY
    QY
    ࢀߟ

    View Slide

  21. WebCamTextureΫι͞·ͱΊ
    • VGAҎԼΛ֮ޛ
    • 15FPS(ྲྀੴʹϠόΠͷͰ௿εϖ୺຤͸ແࢹ͠
    ͯͪΐͬͱ໭ͨ͠)
    • ి஑৯͏

    View Slide

  22. ͦ͏ͩ
    AssetΛങ͓͏

    View Slide

  23. NatCamΛങͬͨ
    • https://www.assetstore.unity3d.com/jp/#!/content/52154
    • ࢖͑ͯͳ͍͚Ͳɺ৭ʑߴػೳ
    • iOS/AndroidରԠ
    • FaceTrackingͰ͖Δ
    • Texture2D΁ͷอଘαϙʔτ
    • Movie΋Մ

    View Slide

  24. ݁ՌɺͲ͏͔ͩͬͨ

    View Slide

  25. Ͱ͖ͨ
    • FPS͕޲্
    • ߴղ૾౓Ͱॏ͘ͳΒͳ͍
    • ফඅిྗ࡟ݮ

    View Slide

  26. Ͱ͖ͳ͔ͬͨ
    • औಘղ૾౓ࢦఆ
    • 16:9ղ૾౓͔͠ϓϦηοτͰ༻ҙ͞Εͯͳ
    ͍
    • มߋग़དྷΔ͔͸ະݕূ

    View Slide

  27. ͋Δఔ౓ͷ඼࣭UP

    View Slide

  28. ·ͱΊ
    WebCamTextureΛϞόΠϧͰ࢖͏৔߹ɺੑ
    ೳ໘ͰͭΒΈ͕͋Δɻ
    ͓·͚Ͱ࢖͏ͳΒྑ͍͕ɺओཁػೳͷ৔߹͸
    AssetΛೖΕͨ΄͏͕ྑ͍ɻ

    View Slide