STYLY Mobile ARコンテンツ制作で使えるPlayMaker Tips

# はじめに

こんにちは。
ARコンテンツの制作が好きな [@koyoarai_](https://twitter.com/koyoarai_)です。

ARコンテンツ制作のプラットフォームは2020年現在、Instagram ARフィルターの[SparkAR](https://sparkar.facebook.com/ar-studio/)や、SnapChatの[Lens Studio](https://lensstudio.snapchat.com/)など数多くあり、その中の一つにSTYLY Mobileがあります。STYLY MobileのARコンテンツ制作はUnityのPlayMakerで実装を行います。


今回、STYLY Mobile ARプラットフォームで1つ作品をつくりました。
そこでこちらでは制作に用いたPlayMaker Tipsを紹介します。



<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">TrompEX (トロンペクス)というARの作品をつくりました。<br>歪み・ズレ・揺らぎによって、空間の捉え方を拡張させ、偶然生まれた違和感や、溶け込み具合を楽しむことができます。<br>STYLY Mobileアプリから体験できるので、ぜひ！！<a href="https://twitter.com/hashtag/NEWVIEW?src=hash&amp;ref_src=twsrc%5Etfw">#NEWVIEW</a> <a href="https://twitter.com/hashtag/STYLY?src=hash&amp;ref_src=twsrc%5Etfw">#STYLY</a> <a href="https://t.co/kVraxZJTel">pic.twitter.com/kVraxZJTel</a></p>&mdash; koyo arai (@koyoarai_) <a href="https://twitter.com/koyoarai_/status/1325669665323020289?ref_src=twsrc%5Etfw">November 9, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

※ STYLY MobileについてはSTYLY公式の[こちらのブログ](https://styly.cc/ja/manual/styly_mobile/)が参考になります。



### 環境

- Unity 2019.3.6f1
- Unity Plugin for STYLY 1.1.4
- PlayMaker 1.9.0.p21

注意) Unity Plugin for STYLYやPlayMakerの更新によってこちらの情報が古くなることがあります。上記バージョンと異なる場合、公式から最新の情報のご確認をお願いします。

## 1. カメラの取得

STYLY Mobile上とUnityEditor上で動作するように、[GameObject is Null]によって2つの処理を切り分けられるようにしています。カメラを取得した後の処理は、state以降に追加するとわかりやすいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/6fc18c9f-26ba-c77b-1c42-d2d7dfe6ae09.png)

参考 : [【Unity/Playmaker】カメラの取得とカメラを使ったインタラクションの実装方法](https://styly.cc/ja/tips/player_camera_playmaker/)

## 2. Post-processing Stack v1の追加

STYLY Mobileでは2020年12月現在、Post-Processing Stack v1に対応しています。(v2は非対応)
[Unity-Technologies/PostProcessingのv1ブランチ](https://github.com/Unity-Technologies/PostProcessing/tree/v1)からDLし、下記のPlayMakerを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/003f0c44-ddab-5ac4-f02f-33c1feb49dfb.png)

VariablesのタブからPost Processing ProfileのInspectorにチェックを付け、PlayMakerFSMコンポーネントのControls→Post Processing Profileに設定したいProfileをアタッチします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/e17f94ae-98f4-b7c4-ba84-9ebf528d8a82.png)


参考 : [STYLYでPost-Processing Stackを使う](https://styly.cc/ja/tips/use-post-processing-stack-with-styly_afjk_postprocessingstack/)

## 3. デバイスの向きを取得する

Device Prientation Eventで向き一つずつの処理を追加します。
今回は、Left, Right, Portraitを取得したかったので、その他はNoneに設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/3e8f57e5-cd67-bcb9-d34d-f6a41d38394d.png)

各stateに追加したい処理を記述します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/c941fdbc-536e-a7b4-e604-c0e8a99bbd73.png)


## 4. オブジェクトをカメラに追従させる (親オブジェクトをカメラにする)

親オブジェクトをカメラ(BackgroundPlane)にすることにより、オブジェクトをカメラに追従させることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/ab3234ae-4088-2132-fcaf-1cbbca520e45.png)

## 5. オーディオリアクティブ

[PlayMaker 【Unity/Playmaker】オーディオビジュアライザの作り方](https://styly.cc/ja/tips/audiovisualizer_discont_playmaker/)の記事をそのまま参考にしました。

## 6. AR空間のカメラ映像の取得

Unity Plugin for STYLY 1.1.4ではいくつかPlayMakerのカスタムアクションが利用でき、その中にAR空間のカメラ映像の取得できる[Get AR Camera Image]と[Set Projection Texture Mapping]の2つのアクションが含まれていました。

Get AR Camera Imageでは、Textureに保存できるため自身のマテリアルのテクスチャに適用しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/d6933919-b466-d243-a52a-8a642d9338dc.png)

Set Projection Texture Mappingでは、マテリアルを直接指定する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/91ebcd90-5b22-3c45-cb83-d7a59a2c9c0a.png)


## 7. (おまけ) PlayMakerのテンプレート化

PlayMakerを右クリック→Save templateでテンプレート化することができます。テンプレート化されたPlayMakerはPaste Templateから呼び出すことができます。基本的に上記のようないくつかの場面で使えそうな機能はテンプレート化するのがおすすめです。
![Pasted_Image_2020_12_29_15_07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/7110672b-dc7b-8491-0bbd-a0573111465e.jpeg)

![Pasted_Image_2020_12_29_15_08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139949/03b512ca-efb5-eb48-b839-be27656adfec.jpeg)


# おわりに

以上、STYLY Mobile ARコンテンツ制作で使えるPlayMaker Tipsでした。
私はSTYLY Mobileでの制作で詰まった際、Facebookグループの[STYLY助け合い所さん](https://www.facebook.com/groups/stylyusers)に投稿しSTYLYの運営のみなさまに助言をいただく機会がありました。STYLY Mobileでの制作を行う場合、こちらへの参加もお勧めします。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">PlayMakerを使ったSTYLY Mobileの実装で詰まった部分があって、STYLY助け合い所に投稿したていねいに中の人が回答してくれた.. <br>(しかもunity package付き)<br><br>とても嬉しい<a href="https://twitter.com/hashtag/STYLY?src=hash&amp;ref_src=twsrc%5Etfw">#STYLY</a></p>&mdash; koyo arai (@koyoarai_) <a href="https://twitter.com/koyoarai_/status/1283740781992267776?ref_src=twsrc%5Etfw">July 16, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

STYLY Mobileは2020年6月にARコンテンツ制作が行えるようになったばかりなので、今後のアップデートにも期待したいです。