てんちょーの技術日誌

自分がつまづいたこととかメモ

2017年 作ったものとかをまとめてみた

はじめに

個人的に完成した(と思っている)ものに関してはすぐ忘れてしまうので、 「作ったもの見せて」と言われた時にこの記事にまとめておくと便利かなぁと思いまとめておきます。

意外と時間がかかりそうなので、ざっくりまとめた後、おいおい追記するかもです

1月

お引っ越し(下見)と卒論があったので、後半はわたわたしてるけど、前半はこんな感じ

2016年に作り始めたVRキーボードの別案を年始から作っていたらしい

GASがお気に入りだったので、この頃はslackと連携してアレコレ作ってたっぽい

2月

Mogura VRでちょろっと紹介されたり

卒論 おわらせたのがこのくらい

これのお手伝いをしたり

引っ越し先のおうち Blenderで作ったりした

UE4 Meetup Sapporo で登壇したり

うっかりSVVR(アメリカ)に行くことを決めてしまうなどした

会社から課題を出されていたので、そのためにUnityの勉強をしたりもしてたなぁ

3月

Unity Chan Live -UE4 ver-

4月

Unity Chan Live をモバイルに持っていったり

SVVR 報告会でLTした

atnd.org

https://speakerdeck.com/shop_0761/svvr-en

5月

意外とお気に入りの引き出し

6月

凹みさんの uDD でYoutubeの360度動画を再生するやつ

7月

音声認識でメモを残すやつ

これはこの前LTしました

speakerdeck.com

8月

VALU向けchrome拡張を作った

shop-0761.hatenablog.com

夏コミ 技術書を書いたりしました

shop-0761.hatenablog.com

水彩風マテリアルをまた調整しはじめたり

Unreal Engine Meetup Sapporo にて ライブノーディングのサポートをしたり VR ModeのSequencerの紹介をしたり

ミクさんお迎えしたけど、全然遊べてない…

9月

ぷちコンで UE4 + Network + VRなコンテンツをやっつけでなんとか作った

10月

Inst_Paper 上海で展示してきました

技術書典3にだしたり

Udemyの講師になった

11月

Windows MR で無限に歩けるので公園で歩いた

Inst_Paper 初国内展示

STYLYハッカソンにて、未実装のシーン遷移をハックしてつくるなど

f:id:shop_0761:20171223012943p:plain

12月

イベント用名札メーカー

shop-0761.hatenablog.com

その他

全く関係ないですが3月から東京に引っ越してきて、どうやら大分痩せたようです(体重計がないので分からない

一人暮らししたら、とりあえず食費から削るなぁと思ってて実際そうなった模様。実家にいる間にいっぱい食べとこと思ってたらかなり太ったんですが、それも無かったことになるくらいに…

夏ごろ?に家族に会った時に後ろ姿が変わった(細くなった)とか言われたのを思い出したりしました

なんでこの話を書いたかというと、さっき久々に履こうとしたズボン(春先とか履いてたやつ)がダボダボになってて!?!?ってなったからです はい

UE4のお仕事はいつでも募集中なのでお気軽にTwitter等に連絡くださいね!

twitter.com

【UE4】スマホアプリによくあるスワイプ、ピンチインアウト

はじめに

久々にちゃんと誰かの役に立ちそうな記事を書かねばと思った次第です()

というのもありますが、検証ついでに作ってみたので忘れないようにメモをば。

実装

Playerのカメラ回転 よく忘れるので、どうするのがいいのか迷ったあげく とりあえずPlayerPawnのカメラを直で回しています。ダメっぽい気がするのでいい方法があったら教えてください。

あと、なぜか意図せずRoll方向にも回っていたので、PlayerPawn側で回らないようにしました(ダメそう

Player Pawn


2017/12/13 01:52 修正

Control Rotationに変えたので、Player Pawnのチェックを入れとかないと動かない

f:id:shop_0761:20171213015045p:plain


f:id:shop_0761:20171213010151p:plain

Player Controller


2017/12/13 01:52 修正

Get Component by Class はキャッシュしたほうがよさそう

f:id:shop_0761:20171213015143p:plain


f:id:shop_0761:20171213010227p:plain

CalcPinchRate マクロ f:id:shop_0761:20171213010535p:plain

f:id:shop_0761:20171213010552p:plain

CalcSwipeCameraRot マクロ

f:id:shop_0761:20171213010648p:plain

f:id:shop_0761:20171213010703p:plain

別で入力が欲しい時

f:id:shop_0761:20171213010730p:plain

簡単な説明

indexに合わせてPress時のVector2Dを取っておいて、Movedで差分を計算する感じです。 とりあえず見栄え重視でマクロに突っ込んだので色々アレです。まあサッと試しただけなのでご勘弁を…

まとめ

デバッグにはじめてまともにLauncher使ったけどべんりっぽい!細かい実装はUnityのコードとか参考になります おわり。

GoogleHome で遊んでみたことメモ

はじめに

スマートスピーカー Advent Calendar 2017 の 3日目です。

qiita.com

昨年末はPCのキーボードを封印して音声認識でどこまでいけるか試したりしていました。

コルタナさんがあまりにもEdge頼りなので、気合でPowerShellスクリプトを書くなどしてTwitterをしてました。

shop-0761.hatenablog.com

今回は勢いで購入したGoogleHome miniが思ってた以上に認識精度が高いので、 あれこれ勢いで作って便利になったメモを残しておこうかと。

nodejsは手探りで書いたのであまりよくない書き方かも…。

ついでにAmazon echo dotも安かったので、最後に感想とかも。

やったこと

基本的に RaspberriPi Google Apps Script(GAS) IFTTT の3つでやりくりしてます。

Raspberri Pi zero W を買う

事前にちょろっと調べるとGoogle Home notifier を使えば発話させられるらしく、 これはラズパイ買っとこ と思って秋葉原で買いました。 キットみたいなやつを買ってすぐ使えるやつだったのに、何を思ったかSDカードをフォーマットしてしまい 結局入れ直しました…地味にひっかかったりした…

Hue連携

Hueがあれば、すぐ終わります。なんか覚えてないくらいに一瞬でした。 "部屋"って名前の部屋をGoogleHomeのアプリで作っておくと、「OK Google, 部屋の電気をつけて」みたいに使えて便利です。

wemo連携

家に転がってたwemo mini smart plugをつかうことにしました。 こいつはコンセントのオン/オフができます。

www.belkin.com

IFTTTで連携できるので、とりあえずそのまま使っています。 運用でカバーってやつですね()

IFTTTでコマンドの上書き

どうやらGoogle Homeにある既存のコマンド「おはよう」などはIFTTT連携で上書きできるようです。 はたして需要があるのかコレ。

特に難しい設定もせずにこうすると、上書き?になるっぽい

f:id:shop_0761:20171116094813p:plain

Google Home notifier

セットアップ

qiita.com

記事をそのままやりました。注意すべきはnodejsは7系でないと動かないかもです。 これで喋らせる時に「とぅるん」ってこれから喋るよみたいな音がなるやつ消せないのかな…?

ngrokのURLをslackにPOST

Google Home Notifier では ngrok というのを使ってローカル環境を外部に公開しています。

qiita.com

example.js を実行するたびにアドレスが生成され、これを使えばGAS等からアクセスできます。 サブドメインを割り当てることができるらしいのですが、2.0だと有料、1.0だと無料だそうです。

google home notifierがどっちなのか調べるのも面倒だったので、 urlが生成されるたびにslackへPOSTして、それをOutgoing webhooksで拾い、GASでSpread Sheetに記録してました。 まあ、メリットとしてラズパイが落ちてしまった時にこれらのスクリプトの準備できたらslackに通知がくるって感じですかね。

こんな感じで

f:id:shop_0761:20171116010213p:plain

outgoing webhooks は legacy になってしまったので代わりになるものを探しましたが、いまいちしっくりくるものが無かったので そのまま使っています。ただtokenの生成が前と変わって、権限を付与する形のものになりました。 今はこの3つを許可したtokenを使っています。

f:id:shop_0761:20171116011350p:plain

api.slack.com

qiita.com

example.jsに追記する感じで書いています。

app.listen(serverPort, function () {
  ngrok.connect(serverPort, function (err, url) {
    console.log('POST "text=Hello Google Home" to:');
    console.log('    http://localhost:' + serverPort + '/google-home-notifier');
    console.log('    ' +url + '/google-home-notifier');
    console.log('example:');
    console.log('curl -X POST -d "text=Hello Google Home" ' + url + '/google-home-notifier');

   //ここから
        var request = require('request');
        const HOST = 'https:\/\/slack.com/api/chat.postMessage';
        var options = {
                url: "https://slack.com/api/chat.postMessage",
                form: {
                        "token": "とーくんをいれる",
                        "channel": "#googlehome",
                        "text": "ngrokのアドレスが変わったよ " + url + "/google-home-notifier",
                        "username": "GoogleHome_Assistant"
                }
        };

        request.post(options, function(error, response, body){
                if(!error){
                        console.log("BODY: " + body);
                }

                else{
                        console.log("error: " + error.message);
                }
        });
  //ここまで
  });
})

trello にメモを残す

Google Home 標準で買い物メモを残せますが、消すのはアプリ経由らしくて面倒いのでtrelloで管理出来るようにしました。 カードの追加/削除 がボイスコマンドで出来ます。全てのカードの読み上げもできるようにしようかな。

GAS側のコードはこの辺にまとめておきました。

gist.github.com

IFTTTはこんな感じで。

f:id:shop_0761:20171116013755p:plain

こうして「メモに牛乳を追加して」というと、「牛乳を追加」とSpread Sheetに書き込まれるので、 追加の文字列が入ってたらtrelloにカード追加、無かったら削除 みたいにしてます。

実行済みのチェック

Spread Sheet に書き込まれたタイミングでGASを実行するため、適当に編集してると 何度も関数が呼ばれてアワアワすることになるので、こんな感じでチェックするようにするといいでしょう。

f:id:shop_0761:20171116014152p:plain

function checkCmdDone(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  //sheet が複数あるので名前で指定
  var sheet = spreadsheet.getSheetByName('CommandLog'); 
  var value = sheet.getRange(sheet.getLastRow(), 1, 1, 2).getValues();

  if(value[1] != "Done"){
    sheet.getRange(sheet.getLastRow(), 2).setValue("Done");
    return true;
  }
  
  else{
   return false; 
  }
}

勝手にしゃべる

細かく時間を指定して実行できるらしいです。(知らなかった)

qiita.com

これらを使って勝手にしゃべるようにしました。

ゴミ捨ての通知

ゴミ捨て表をSpread Sheetで作って、そこを参照しつつ通知してくれます。 前日の夜とかに知りたいので少しindexを調整してます。

f:id:shop_0761:20171116015341p:plain

  for(var i in cels){
   // todayは12/3(日)10:00表記になるものを作っておいて、indexOfでさがしてる
    var index = readableDate.indexOf(cels[(parseInt(i)+1) % (cels.length)][0]);
    var state = cels[(parseInt(i)+2) % (cels.length)][1];

    if(index > -1 && state != ""){
      //読み上げ
      textToSpeech("てんちょーさん、今日は" + state + "だよ");
    }
  }

ストレッチの通知

ストレッチし忘れるので、さっきの時間指定できるTriggerで設定しています。

降水確率の読み上げ

天気はスクレイピングしてきて使っています。 現在の時刻に合わせて、それ以降の降水確率を読み上げてくれます。 スクレイピングしてきたときに、過去の降水確率は"-"みたいになってたりするので、 その時は読まない、みたいにして書いてます。大したことないので省略。

ミクさんに喋ってもらう

という気持ちで作りました。 多分 OpenJTalk + MMD Agentの初音ミクの音響モデル が1番ラクな気がしますが、 あまり好みではなかったのでゴリ押しで作りました。

流れとしては

  1. Google Home で音声認識 + IFTTT でSpreadSheetに書き込み
  2. GASで検知して、Raspberri Pi にテキストを送信
  3. MeCabでカナ読み取得
  4. 一文字ずつに分割
  5. 対応する.wavファイルを探す
  6. sox コマンドで一つの.wavファイルに
  7. google home notifier で音声ファイル読み上げ

って感じですね。面倒いので全部は書きませんが、ポイントだけ。

  • MeCab で品詞分解に失敗して読みが取れない時がある
  • 数字は漢字に変換してMeCab
  • 促音・撥音・拗音・長音あたりを考慮して分割

これ作ってる途中で気づきましたが、GASってzip作れるんですね…やばみ…

gist.github.com

Amazon echo dotとの比較

Amazon echo dot は Google カレンダーに予定を追加できます。Google Home mini では出来ません。 ????どういうこと????

あとAmazonで買い物できますが、やり取りが長いので喋るくらいならポチポチしたほうが早いという印象です。 Hey mikuも使えます。ただ1回遊んだら終わりですかね…

それと体感的な話ですが、echo dotは自分で再生しはじめた音楽のせいでマイクの感度が落ちる…?自爆…? その点Google home miniのが優秀な気がします。布団からごにょごにょ喋っても反応したり、 モニターを正面に座り、真後ろに置いてあるGoogle home mini に話しかけても反応したりします。すごい。

まとめ

ここまでやるともはやGoogleHomeである意味とは…?という気持ちになります。 ただ、GoogleHomeの認識精度は魅力的ですね。

イベント用名札生成ツール -NameCardMaker- を作ってみた

はじめに

これを見て、「あ、自動化できそう」と思って作ってみました。

-- 12/02 02:24追記

これツイートの元ネタがあるんですね(しらなかった

yoshiko.hatenablog.jp

--

2018/03/06

専用ページを作りました。 詳細はこちら。 記載してた採用実績、対応サイト等も全て移行しました。

shop-0761.com

【UE4】BPで気合のProcedural Modering

はじめに

Unreal Engine 4 (UE4) Advent Calendar 2017 の2日目です。

qiita.com

今回の内容はあまりオススメできませんが、気になったのでやってみた次第です。

先に参考図書である「Unity Graphics Programming」のリンクを貼っておきます。これをUE4に移植してみた、という内容です。 この本、割りとTwitterで話題になっており、初めて買えるタイミングであった技術書典3に僕も出展してたんですがなんとお隣のブースでした()

indievisuallab.stores.jp

実際のサンプルコードはこちらに。

github.com

まあこのまま移植しても多々ミスって思うように表示されなかったり、ちょっと手を加えないといけない箇所もあったりして 割りと大変でした。はい。

Procedural Moderingとは

通常のモデリングはDCCツールと呼ばれる Maya, 3ds MAX, Blenderなどを用いて作成することが多いです。 それとは別に計算だけでモデリングすることです。参考図書には

ルールを記述し、自動化された一連の処理の結果、形を得るアプローチのこと

とされています。

応用例としては AirtoneのコレもProcedural Moderingしてマテリアルで演出しているそうです。

f:id:shop_0761:20171101133503p:plain

https://youtu.be/qssKpo8cHYwより

始める前に

さがしてみると、もんしょさんが先にやっていました。さすが!

もんしょの巣穴blog [UE4] ProceduralMeshComponentを使ってみる

さすがに複雑な計算をBPでやるのは骨が折れるので、ProceduralMeshComponent を使う場合はC++の方がいいと思います。

はい。のでこれをBPでやりました。すると代わりにたすさんの骨が折れました。

できたもの

先に完成イメージを見ておきましょう。よっしゃーできた!!と思っても知らない人には正直大したことないものなので 心が強い方が取り組むことをオススメします。

f:id:shop_0761:20171101134149g:plain

f:id:shop_0761:20171101134217g:plain

f:id:shop_0761:20171101134242g:plain

f:id:shop_0761:20171201020107p:plain

多少見栄えするようにTimelineでしゅるしゅる動かしたりしてますが、特に意味はありません。

こんな感じで頂点があります。

f:id:shop_0761:20171201022926g:plain

作ってみる

こちらに今回作ったアセットをサンプルとして置いておきます。 詳細な考え方は参考図書を読んで下さい。

github.com

とりあえずBaseクラスを作っておきました。BP_ProdeduralMeshBaseとしています。

f:id:shop_0761:20171201020614p:plain

f:id:shop_0761:20171101134949p:plain

f:id:shop_0761:20171201020657p:plain

Debug用にちょっと関数を用意してありますが、あまり頂点数が多いとUE4ごと死にます。気をつけましょう。

基本的にはこのDraw MeshをOverrideして使う感じです。

では板ポリを出して見ましょうか。継承したBP_QuadでDrawMeshをOverrideします。

f:id:shop_0761:20171101140201p:plain

するとこんなかんじ

f:id:shop_0761:20171101135719p:plain

わーい!これくらいならお手軽ですね。UVも設定してあげるとチェッカーの模様が出ます。 失敗してる / 設定してないと消えます。

f:id:shop_0761:20171101135827p:plain

同様にNormal, Tangentも設定できます。

移植時の注意点

だれもやらないとは思いますが、一応。参考図書がUnityなので、座標系、単位が違います。 またいくつかのindexに注意が必要です。(i >= length と i > length とか)

コードを何度も見直しても、間違ってる箇所が見つからない場合は、自分が見落としている可能性があるので 何日か空けて見直すしかありません。それでも思うように出来ない場合は手探りで調査します。(木の後半は手探りでした)

便利ポイント

Procedural Mesh Componentで生成したMeshはStatic Mesh化できます。

f:id:shop_0761:20171201025022p:plain

ここからCreate Mesh して保存すると、

f:id:shop_0761:20171201025124p:plain

とアセット化できます。

おわりに

最近どういうわけかUnityとUE4を同時に起動する時間が長くなり、謎の移植芸を身に着けてしまったようです。 動的にモデルを生成したい、モデルアセットはプロジェクトに入れたくない、BPしか使いたくないけどProcedural Moderingはしたい、などといった 特殊な人向けの内容になってしまいました。 最初のPlaneやQuadレベルだとやる意味をあまり感じませんが、木とかできると途端にすげぇ感がでますね(間に合ってよかった)。たぶんSpeedTreeを使ったほうが速い気がしました。

宣伝

UE4の動画教材(日本語)がこれからどんどんUdemyに出てきそうです。 僕のが一番最初に出たライトな感じのやつなので、興味があれば覗いてみてください。 こちらはちゃんと役に立つ系のものです()

www.udemy.com

ちょうどこの記事を公開する1時間くらいにalweiさんのが公開されたようです。

unrealengine.hatenablog.com

それとこの動画教材を作ったお話を 第2回UE4何でも勉強会 in 東京 にてLTするのでよければぜひぜひ。

ue4allstudy.connpass.com

【WinMR】バックパックPC + WinMR でUSB/Bluetoothが繋がらなくなった話

はじめに

こんなのをUE4で作りました

これ、当初の予定では僕のバックパックPCを使って撮るつもりだったんですが、途中でうんともすんとも言わなくなり 急遽ノートPCを借りてやりました

おはなし

環境

お外でやりました。PCはこれ。

www.dospara.co.jp

WinMR の方はAcerのDevelopment Editionです。(コントローラーないやつ) 動画内で使ってるコントローラーはDellのやつです。

OSはこんな感じ。

f:id:shop_0761:20171114011943p:plain

グラボのドライバ

f:id:shop_0761:20171114012029p:plain

死兆星が見える

なんとかの拳で見えるアレです。見えると死が近いと言われるやつです。

撮影するためにいろいろ試行錯誤してる途中で、なぜか注視点が2つ見えました。 片目で見ても2つ見えたので???と思っていたら、今度はオレンジ色になりました。とりあえず動いてるからいいか、と思って続行。

電源がつかない

オレンジの注視点が見えた状態で歩きまわっても動画のように歩き回れなかったので、 おかしいなと思いPCごと再起動しようと思いました。なんとかなるでしょ、ぽちーっと電源ボタン長押しで一旦落としました。

今回は iPad Pro 10.5 + Splashtop Wired XDisplay HD で外部モニタとして使ってました。 ので通常のモニタ出力と違い、ちゃんとアプリが表示してくれないと状況がわかりません。 というか、それ以前に電源が入らなくなりました。バッテリーはまだ残っているはず…おや…?

USBが繋がらない

しょうがないので、デコ氏(@Ash_Yin)のおうちにお邪魔してモニタに繋ぎ確認することにしました。 電源に繋いでつくことはつきましたが、USBとBluetoothが反応しない…詰みでは…???

どの段階でUSBが来ないのか、チェックするためにダメ元でBIOS起動を試みるといける…おや!?!? どうしたものか…これ…

原因を調べる

さて、おうちに帰ってきて原因を調べることに。 事前にChrome Remote Desktop が起動時に立ち上がるようにしていたのが救いでした。 おうちに帰ってきてなんとか操作できるように…

Bluetoothどうなってるかなーと見てみると、

どういうことなのこれ

ドライバ入れ直せばいいかーと思って適当にググってる途中で、 intel usb 3.0 extensible host controller driver が無効になってることに気が付きました。

これ…有効にしてみるか…すると USB ルートハブ(USB 3.0) が現れました。 こいつも有効にするか…と有効にしてみるとUSBもbluetoothも生き返りました。

まとめ

Immersiveなヘッドセット 開発周りであわあわしてるのをよく見ますが、このようにドライバを無効にしてくるケースがありました。

まあしゃーないところはあるので、自己責任ということでお気をつけを…

リモートで操作できる環境を用意しておくことをオススメします…

【UE4】WindowsでiOS用アプリをビルドしてみた【ARKit】

はじめに

ARKitの動作はまだ未確認ですが、win機だけでiOSビルド & 実行が確認できました。 この方法があってるかかなり微妙ですが、一応動作例が多いほうがいいかなということで書いておきます。

【2017/11/10 16:10追記】ARKitの動作も確認したので、下の方に追記します

動作環境はUE4.18.0でPCはこんな感じ

f:id:shop_0761:20171110134502p:plain

iPad Pro 10.5インチ + iOS 11.1(15B93)

Appleにお布施をしてない方はしてくださいね()

参考サイト

一通り目を通しておくとよいかも。

CEDEC 九州でのモバイルの話

www.slideshare.net

証明書とかプロビジョニングファイルを消す方法

Delete all certificates on PC - iOS Packaging - UE4 AnswerHub

UE4.18 のリリースノート

https://www.unrealengine.com/ja/blog/unreal-engine-4-18-released

ARKitの使い方 ※ UE4.17

https://www.unrealengine.com/ja/blog/getting-started-with-ue4-and-arkit

手順

この通りやればいけます。 (リンクが古くなっていたので修正しています 以後のスクショと異なる可能性があります…) docs.unrealengine.com

がしかし、ここで緑のチェックが出ない…

f:id:shop_0761:20171110135735p:plain

ので、6. iOS プロビジョニング- プロビジョニングの作成とインポートのとこではエディタからインポートしています。

Project Settings → PlatformsのiOSで Import Provision と Import Certificate できます。

f:id:shop_0761:20171110135851p:plain

さて、よく見ると

と、ダメそうな予感。

一応目的はARKitなので必要な設定をしておきます。とりあえず空のモバイル向けプロジェクトでやるといいでしょう。

ダメ元でiOSビルドしてみると、通ってしまいました(困惑)

どういうことなんだ…いいのかこれは…

実機への転送 【2017/12/21 22:43追記】

なんかググってて見つけたので僕はシュッといけたのを忘れてましたが、 引っかかってる方がいたので参考リンクを貼っておきます

tiger.suplex.net

その他

個人的にこういう証明書とか作る時、ファイル名とかほんとにいいのかこれで…みたいな気持ちになるのでメモ程度に書いておこうかと。

最終的に出来たファイル群はこちら。

f:id:shop_0761:20171110142030p:plain

Apple ID

まずここ。

f:id:shop_0761:20171110140421p:plain

このDeveloperページから確認できるメールアドレス(多分右上のとことかにある)とTeam Name を使いました。 日本人あるあるな(気がする)姓名逆にすべきかどうかは、ここで登録してるTeamNameを使うと良い気がしました。(僕は逆になってました)

Sign In - Apple

UDID

端末をPCに繋いで、iTunesで見られます。終わり。

supportforums.cisco.com

App ID Name と Profile Name

適当で大丈夫だと思います。プロジェクト名とかぶらないほうがいいのかも…?

  • App ID Name: ARKitTestApp
  • Profile Name: ARKit_Profile

にしました。

f:id:shop_0761:20171110141302p:plain

f:id:shop_0761:20171110141342p:plain

まとめ

おかずさん(@pafuhana1213)ありがとうございました!!

ARKit 【2017/11/10 16:10追記】

こちらが参考になります。

speakerdeck.com

リリースノートのサンプルプロジェクトはMacでのリモートビルドが必要なようなので、 こちらにあるサンプルプロジェクトはWin機のみで完結するように修正されています。

スライドにないポイントとしては 「Start in AR」のチェックを入れておきましょう。(VRのときもあった)

f:id:shop_0761:20171110161304p:plain

あとは忘れがちなAdditional Plist Data ですね。

中身はコレ。

"NSCameraDescription\nUE4 needs camera access for ARKit.\n"

f:id:shop_0761:20171110161356p:plain