2019年1月からエンジニア系YouTubeを始めました。今YouTubeにあるエンジニア系の動画は「エンジニアは稼げる」とか「フリーランスエンジニア自由最高」みたいな動画が多く、それはそれいいんですが、技術で攻めて駆逐せねばならぬという僕の謎の正義感が働いているため頑張っています。
基本的にはARやエンジニアの生活について発信するチャンネルですが、今回はいかにもYouTuberっぽい動画且つエンジニアらしくアプリも作ったのでその話を紹介していきたいと思います。
企画
先輩YouTuberでxRエンジニア界隈の友人である @nkjzm と一緒に企画を考えました。
要件は2つ。
- K-BOYがARエンジニアなのでARに沿った内容にしたい
- せっかくコラボするのでインパクトがある内容にしたい
この要件のなかで昨日の13:30-14:00くらいでディスカッションし、14:00-15:00でアプリ開発と撮影準備をし、原宿に飛び出したわけであります。
インパクトを残すという意味で少し下ネタを絡めるというテーマでディスカッションしていました。目的は「IT界隈じゃない人も興味を持ってくれる動画にしよう!」だったので、ギリギリ大丈夫そうな下ネタの経験人数というテーマにしました。
そしてARを絡めるために最終的にたどり着いたのが「ARKitの顔認識を使って顔を読み取って経験人数を予測するアプリ」
この企画プロセスはハッカソンっぽいなあと思います。
アプリ仕様
ARKitのFaceDetectionを使って顔をスキャン感を出す
詳しくはコードをご覧ください。
iPhoneX等で使えるフロントカメラの顔認識を使用しています。
顔のgeomertyをupdateし続けて、あみあみのmaterialを張っているだけで、サンプルコードレベルの実装です。
ゲージをアニメーションさせてスキャン感をだす
UIProgressViewをいじったカスタムクラスを以前作ったことがあったので、同じように再現実装しました。
起動から5秒後に、10秒かけてアニメーションさせてます。
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.titleLabel.isHidden = false
UIView.animate(withDuration: 5, delay: 0, options: [], animations: {
self.hpView.hpBar.setProgress(1, animated: true)
}, completion: nil)
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.titleLabel.text = "経験人数は..."
self.countLabel.isHidden = false
}
}
経験人数は適当に配列で用意
もちろん、ネタ企画なので経験人数は配列に入れときます。最速で実装し、原宿に飛び出して使ってもらうのが目的なため、複雑なアルゴリズムを作っている暇はありません。リアルっぽさを出すために少ない人数を多めにしときました。
let array: [String] = [
"0人",
"1人",
"2人",
"3人",
"4人",
"5人",
"6人",
"7人",
"8人",
"11人",
"12人",
"14人",
"18人",
"19人",
"22人",
"28人",
"35人",
"100人",
"160人",
]
このarrayの中からrandomで一個選びます
countLabel.text = self.array.randomElement()!
ユーザーの反応
詳しくはYouTubeを見てもらいたいと思いますが、ウケてました。本当にアルゴリズムがあるかどうかは重要ではないということがわかりました。
「違うよ!」「え!当たってる!」など反応を楽しむことが目的。
その目的は達成できたのではないかなと思います。嬉しいです。
動画制作
- 撮影はiPhone XS Maxで1時間半
- 動画編集はFinal Cut Proで4時間くらい
- サムネはAdobe Illustlatorで30分くらい
まとめ
アプリを作ってインタビュー、それを動画にするというエンジニアらしいYouTube制作ができたのではないかと思います。
エンジニアといえばブログのイメージが強いですが、より多くの層にリーチするためにYouTubeを撮ってみるのはいかがでしょうか?想像以上にクリエイティブな作業で、編集の大変さがわかると思います。
では!