PowerAppsにLive2Dを実装してみる

##はじめに

近頃Live2Dで遊んでいて、ふと「これPowerAppsにも簡単に組み込めるな。。」と思い立ち、何となくやってみました。

ちなみに作るのは「クイズアプリ」にしようと思ってます。
まぁ単純に、Live2Dモデルを組み込むなら「ナビゲーター」として登場させるのが無難だろうな、という浅はかな理由です（笑）

今回使用しているLive2Dモデルは、公式がサンプルとして公開してくれている「桃瀬ひより」さん。
https://www.live2d.com/download/sample-data/

これ、なんと、小規模なら商業用にも使えちゃうみたいです。（詳しくは公式サイトチェック）
しかも無料とは思えないほどハイクオリティ！すごい！

と、前置きはこのくらいにして、実際の作業に入っていきます。

##作業の流れ

今回はテストなので、あまり作り込もうとは思ってません。
サクッと実装までやっちゃいたいと思います。

1. モーション出力
2. アプリ実装
3. 動作テスト

と、この位のイメージです。まぁ2時間もあれば終わる。。といいな。。

##1. モーション出力

出力するモーションはシンプルに以下の3つにしようかな、と思ってます。

1. アイドリングモーション
2. 正解用モーション
3. 不正解用モーション

では実際の作業に入っていきます。
（Live2D Cubism Editorは導入してある前提で進めます）

①公式サイトからサンプルモデルをダウンロードして、解凍します。
https://www.live2d.com/download/sample-data/

②展開したフォルダ内の「.can3」をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/05fa327e-38d0-9b95-8741-599bcc62d24f.png)

③Cubism Editorが起動してくるので、自分の場合は「free版」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/5e3bc28e-ea35-3066-9670-783e6c47603e.png)

④なんか以下の確認が出るので、「置き換え」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/0024bd6e-aef9-e2b1-5511-00b9e43d20a4.png)

⑤対応するファイルとして、下記を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/c16b588e-30d4-079b-4302-e77b93f231e7.png)

⑥モデルが読み込まれましたね。左ウィンドウの真ん中、「シーン」がアニメーションになるので、出力したいものを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/a2d50a3d-a384-fdc4-c1c8-425ae29f8edf.png)

⑦上部メニューから「ファイル」→「画像/動画書き出し」→「GIFアニメ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/3d370d92-a893-81a0-2476-dab28814a167.png)

⑧出力設定を確認して、「OK」を押します。出力先は任意です。（今回は感謝を込めて（？）ロゴを表示させてます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/9466dfd7-c9fc-e361-5a98-522e9690e0b0.png)

⑨あとは出力したい分、書き出しを繰り返して完了です。超簡単ですね。（公式に感謝）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/67d27314-114d-eba2-3ec9-d30d7b8053a7.png)

##2. アプリ実装

Live2Dの用意が終わったので、アプリを作成していきます。
アプリ作成についての情報はゴロゴロ転がっているので詳細は割愛します。（ポイントだけ書きます。。。面倒なわけじゃないよ！）

2.1 空のアプリを作成します。（今回はタブレットサイズにします）

2.2 タイトルを作成します。ちなみにタイトルは「桃瀬ひよりさんクイズ」です。本当シンプルですね(笑)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/5e80aa27-d3de-93e3-9b36-ef28cebda348.png)

2.3 ここからがポイントです。新しくページを作成して、「メディア」→「画像」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/7db6cc87-7e12-ceae-c3a2-da80a41c93b5.png)

2.4 プロパティの「画像」に対して「画像ファイルの追加」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/2d6b88f4-7ec2-36aa-4dc1-d7edc1584961.png)

2.5 エクスプローラーから、先ほど作成したGIFを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/8e5eaca0-85f8-98bd-0186-2e82d7e7fec0.png)

2.6 これでLive2Dが組み込まれました。画像じゃ解りませんが、ぬるぬる動いてます(笑)

2.7 クイズを作成しました。本当シンプルですな。。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/d66db5f4-3279-310e-4cae-ed56f83fec15.png)

2.8 次に「正解」と「不正解」を作ります。先ほどと同じように、各ページに正解用と不正解用のモーションを表示させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/f12b4341-3e70-ec81-27f6-aba53f21b3b3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/b5fe4c03-d17c-076f-7a7b-507fbba2099a.png)

2.9 これで全てのページが完成したので関数を組み込みます。今回はページ移動だけの簡単なお仕事です（？）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401336/34d75d84-a42f-aae6-2194-670802abc08b.png)

2.9 全てのボタンに関数を入れ終わったので、これで完成です！最後にテストしましょう！

##3. 動作テスト

では、実際にプレイしてみます。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> <br>PowerAppsにLive2Dを組み込んでみました！<br>モデルはLive2D公式サンプルモデルの桃瀬ひよりさんです。ハイクオリティなサンプルをありがとうございます！<br>（Qiita投稿用にツイート） <a href="https://t.co/FZcvtYEx5L">pic.twitter.com/FZcvtYEx5L</a></p>&mdash; baba-k (@babak86117211) <a href="https://twitter.com/babak86117211/status/1258950456295845888?ref_src=twsrc%5Etfw">May 9, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ばっちりですね！

##4. おわり

なんとか目標時間内に終わらせることが出来ました！（この後、歯医者に行かなければならないのです。。）
これも全て、使いやすいサンプルモデルを公開してくれている公式さんのおかげですね！
本当にありがとうございます！