「 Unity」のアーカイブを表示中です。

投稿者: 浅野 隆弥

赤ちゃんの顔が良くなりました

2016年12月16日 (開発者日記)

こんにちは
主にUnity担当の浅野です。初投稿です。

今回は赤ちゃんの顔のテクスチャがだいぶ良くなったのでその報告です。

実は赤ちゃんの顔のテクスチャを作成するに当たりLive2Dを使用しています。
というのも赤ちゃんの顔の表情を変化させたいが、体験者によって顔のベースが変わってしまうため、
テクスチャの差分を複数枚用意し、それを変化させること(そもそもそんなノウハウは無い)
3Dモデルの頂点を動かして表情を変化させること(これももちろんノウハウは無い)
目や口のパーツの位置や形が変わってしまってできないため、どうしようか悩んだ結果Live2D+RenderTextureで
動的にテクスチャを作るというところに落ち着きました。
Live2Dだとパーツごとに素材となるテクスチャを分けられるため、位置ズレの影響を受けないというのが大きかったです。
そのために顔画像担当の錦澤君の仕事を増やしてしまったのはまた別の話

さて本題です。
今までの赤ちゃんの顔画像ではこの写真のように若干ですが目のところに四角形の縁が出ていました。
この画像だと目頭らへんが結構はっきりと出ています。

で、もっと分かりやすい画像を出すとこんな感じです。


2枚目の画像を見てもらえれば分かると思うのですがめちゃくちゃ目立ちます。
体験してして下さった方にも目の縁が気になると言われてしまっていたので直したいと思っていたのですが、
そもそもなんでこんな縁が出るのかがまったく分からず(おそらくUnityの仕様)だいぶ苦戦しました。

まず始めにやったことはテクスチャの設定でTextureTypeをAdvancedに
AlphaIsTransparencyをtrueにしました。
まぁその結果が上の目の画像なんですけどね。
ちなみにLive2Dの公式でもこの方法が推奨されているそうです。

で、やっぱり目立つってなりまして、最終的にテクスチャそのもののα値を弄りました。
テクスチャの縁の色のα値をグラデーションさせてこんな感じになりました。

Unityで画像処理をしているので当然のように重たいです。Awakeで処理させてるんで許してください!

まぁなんだかんだでかなり綺麗になりました。

あと赤ちゃんの顔周りで残っている課題としては顔以外の肌色の部分が目立つってところぐらいですかね
一応実装の目処はたっているのでLive2Dで大きな変更があったときに直そうと思います。

投稿者: 望月 宥冶

IVRC予選大会

2016年10月23日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

少し遅くなりましたが、IVRC予選会の様子をお届けします。

————————————前日設営日———————————–
朝早く大学に集合し、コンテンツで使用する紙を確保するために、A4用紙を持ち寄り、裁断機でA5サイズに…
余裕をもって大学を出発し、秋葉原でブースを彩るためのフォトフレームや写真用紙を購入。
移動中の荷物がとても重く、会場に着いた頃にはメンバー全員疲れきっていました。

予定時間より早く機材が届いていたので、到着後すぐに筺体の組み立てに入ることができました。
筺体

筺体組み立て後は宿に帰り、印刷物の確認をしました。
しかしプリンタの調子が悪く、原因を追及したところ、移動時起きたインクの偏りと自作したA5の紙が悪さをしていたので、紙を市販のものにして、プリンタをクリーニングしたら正常に動いてくれました。

————————————1日目(審査日)———————————–

会場に到着したら、プリンタを設置しなおし一度クリーニング。
しかし、コンテンツを動かしてみるとViveがデフォルト画面のまま動かない不具合…
迷った末、我妻君のVR環境対応のノートPCを使うことになりました。
やはり、高い部品や製品であっても予備があると安心できます。

この日はプレゼンテーションの日でした。
私たちのコンテンツはインストラクター2~3人推奨でしたが、プレゼンテーション中は我妻君が頑張ってくれました。

プレゼン中に企業の方が沢山ブースに来たようで、このときIVRCシールをねだっておけば…と少し後悔しました。
また、外国人の方に英語対応する機会があったようで、今後のことを含めて、英語でのコンテンツ説明も練習しなければならないと思いました。

後半は東京ゲームショウの方の展示設営に向かっていた浅野君と合流し、4人でコンテンツを回すことができました。

一日目終了後、メイン機でViveが動かない問題を解決するために、パソコンをホテルに持ち帰り整備しました。
また、チームの別働隊(望月、浅野君)で秋葉原に行き、ヘッドホンを購入し、体験の回転効率の向上を図りました。

————————————2日目(結果発表日)———————————–

2日目は1日目に持って帰ったメイン機の設営と試運転のため、朝早く会場に行き入り口待機
会場でも無事 メイン機でViveが動き2日目からはデスクトップPCでコンテンツを動かすことができました。

作品コンセプト「これはあなたの未来の赤ちゃんに会えるVRメディアアート作品です

一般の方にはとても好印象で、たくさんの方にコンテンツを体験して頂けました。
後半は体験者への対応に慣れてきましたが、午前中コンテンツを回していただけなのに、とても疲れました。

この日は夕方から結果発表があったので、それまで待機。

結果は10位入賞し、決勝大会進出!!

その後はつくばの麺や 蒼 (AOI)で祝賀会ラーメン

ホテル到着後この日はひさびさの?自由時間
ホテルでテレビ見ながらゆっくりできました。
IVRC予選

%e8%9c%80%e5%92%8f%e6%82%84-2016-09-20-12-20-25

————————————3日目(一般公開日)———————————–
3日目(一般公開日)

チームメンバーで1人ずつ30分間の休憩を回しながら気になるIVRC作品探索
その後1時間休憩をはさんで、お昼兼IVRC作品探索兼企業出展を見る時間に

耳トンネル、しょくどう、ブラジル、浮世絵

多くの方にReal baby / Real family を紹介しました。
2人プレイで体験されていく方はやはり反応が良く、ブースを出たあとに証明書を見せ合ったりしているところが私のモチベーションを高くさせてくれます。
また、企業の方との名刺交換や、大学生の方や、御隣のブース、御向かいのブースとも仲良くさせていただきました。

3日間トラブルはあったものの、最後まで止まることなくコンテンツを動かすことができました。
14590428_1199857883415433_5343011320696780445_n

14470666_1199857643415457_6738891935708782461_n
「みかけハこハゐが 全部俺である」チーム:¬広重(公立はこだて未来大学)の方と記念写真を撮りました。
決勝でまた会えるのを楽しみにしています!

終了後、片づけをしてVR学会で展示をしていた先輩方と合流してサイゼリアでお疲れさまでした会
お疲れ様会

前日設営を含めて、凄まじい4日でしたが、一日一日がとても充実感溢れるものでした。
決勝大会では、コンテンツをより良いものに仕上げ、目指せ1位で頑張りたいと思います。

%e5%86%99%e7%9c%9f-2016-09-20-12-20-57

投稿者: 我妻 大樹

HTC Viveコントローラーの分解、改造!(振動子追加)

2016年10月6日 (開発者日記)

ハード担当の我妻です。
前回に引き続き、Viveコントローラーの分解、改造の話です。

振動子を交換する際に、振動子に使われている磁力の大きさを考慮していなかったため今回は配線を外に出して外付けの形をとってみました。

追加する振動子はバイブロトランスデューサのVp210を使用します。
小型で扱いやすく、制御しやすいようでIVRC2016予選でも使用しているチームがありました。

私たちのチームは当初、Arduinoでの制御を試みていたのですが、HTC Viveの追加アクセサリーコンテスト
VIVE Accessory Design Contest
に参加してみるのも面白いと思い、今回はHTC Viveで制御しました。

それでは取り付けてみます。
前回、Vive側の半田パターンはわかったのでこれにイヤホンジャックのメス端子を半田付けしてViveの外側までもっていきます。

dsc_1936
(絶縁できているか不安ですが、一応保護もしてみました)

 

Vp210にはイヤホンジャックのオスを半田しておくことで、ジャック同士をつなげることができるようになります。

dsc_1935

また、イヤホンジャックにすることで後からEQやアンプなど音響機器をつなげることができるので汎用性も高い…?かなと。

 

実際に振動させてみた動画があるので御覧ください。

ちなみに振動子を追加してみてわかったことなのですが、Viveコントローラ-起動時の「テレー」という音はどうやら振動子から鳴らしているみたいです。
なので追加した振動子のほうから「テレー!!」と大きな音がでて。圧電ブザーかと…
HTCの設計には学ぶことが多いですね

投稿者: 錦澤 竜也

Arduino自作

2016年9月28日 (開発者日記)

チーム明るい家族計画が開発で行ったことを紹介します。

ハード担当の我妻です。ハード担当といっても予選まではほとんどプログラムのお手伝いしかしていませんでした。

なので数少ないハード関連の紹介です。

Arduinoはオープンソースなハードおよびソフトとして有名で、近年のIVRCでも多くのチームが使用しています。
しかし、製品版をそのまま買ってきて使用しているチームがおおく、さらにはブレッドボードで展示もみられる始末です。

組み込み機器を専攻している自分としては、自作してみたいと常々思っていました。
そこでネットに落ちている回路図と学科で習った基板加工の授業を思い出しながら作成してみました。

部品は秋葉原の秋月や千石で買ってきて、一台おおよそ1500円程度で作成できました。
書き込み機の部分が800円ほどかかり、本体部だけなら600円少しといったところでしょうか。

回路があっているか少し不安ですが、一応動作もチェックできて一安心といったとこです。

 

ArduinoPCB

img_0913

写真だとわかりずらいですが、結構コンパクトにまとめられました。

まだコア部分の作成で止まっているのですが、これから使うセンサやらを確定させてメインボードのほうも完成させたいですね。

本選ではハード担当として、チームに貢献したいです。

投稿者: 望月 宥冶

HTC Vive ゼロレイテンシー通信!?

2016年9月18日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

HTC ViveのUDP通信に成功しました。

初期の段階では、UNETを使うのかUDPを使うのか決まらず、どちらも試してみました。

UNETを試した際に、SteamVR pluginのGameObjectをそのまま生成すると、1つのシーンで2つ以上のSteamVRが存在してしまいます。
これによりデバイスの取り合いが起こり、そのままでは使用できません。また、この競合を回避しようにも大幅なレイテンシーにより実用とはいきませんでした。

よって、今回はUNETを使用するのではなくUDP通信によりお互いのViveのpositionとrotationを送りあうようにして解決しました。
注意しなければならないのが、お互いにデータを送り付けているだけなので、基本的には同期処理はしていません。
(今回はほとんど同スペックのPCをローカルの有線接続しているので、致命的なエラーは出ないだろうという考えです。ネット経由で使うときにはまた違ったやり方でないとレイテンシー問題があるかもしれません)

これにより送受信におけるデータ量と、受信のタイミングもこちらでコントロールできるので最終段階では100~120fpsで描画することに成功しました。
したがって、遅延は10ms以下となるので「ゼロレイテンシー」といえるのではないかと。

最後にViveコントローラーの位置に手のAssetをつけて、遊んでみました(通称:ゼロレイテンシー芸人)。

補足として、SteamVRのルームセットアップを的確に行うと、現実での位置とVR空間上の位置が一致するのですが、
それをしてしまうと、VR空間上で相手に触れたときに現実でも相手に触れてしまい、デバック中に怪我人が出てしまうので、今回はこんな感じで….

9/19 我妻追記

投稿者: 望月 宥冶

Maya迷走中

2016年8月30日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

2D画像の処理がトントン拍子で進み、平均顔を使ってβ版を作ろうという話になりましたが、ここで問題発生!

2D画像をどうやって3Dに起こすのか…

Kinectで赤ちゃん人形の顔を撮影し、MeshmixerやMeshLabで加工したり、
babydoll_mesh

Point Cloud Libraryというライブラリを使い、顔のメッシュを生成したりしました。
Point Cloud Libraryは点群情報と画像情報の両方を保持できるフォーマット(.ply)を使用できたので少しだけ便利でした。
pcl

最終的にたどり着いたのが、Mayaを使用し、赤ちゃんの正面画像と横画像からメッシュを生成していく方法です。
2016-08-19
2016-08-23
2016-08-23 (1)
2016-08-30
2016-08-30 (1)

しかし、作成したメッシュをUnityにエクスポートした際にメッシュの情報が欠損し、使い物にならない結果に…
mesh
どうやら法線が裏返っておかしくなってるようで、手直しに非常に手間がかかり、これ以上はメッシュに時間を割けないので、球体に顔画像を張ることで対処。最初の段階でメッシュに関しては考えていなかったことも非常に時間を取らされてしまった感じがあり、今回のことから、妥協点を見つけるということや、ある程度やってみて、実装が非常に難しい(時間がかかる)と感じたことからは手を引く潔さが大切だと思いました。迷宮入りしそうになったときは、目に見えるタスクから終わらせること、初心に返ることを心がけ、メッシュにとりかかる前の目標であるβ版制作にとりかかろうと思います。
2016-08-29 (2)

↑球体を若干潰したオブジェクトに顔画像を張ると、見た目が改善されます!

投稿者: 望月 宥冶

顔の特徴点取得できました!

2016年8月30日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

今回はdlibというC++のライブラリを使用しました。
dlibは画像処理や機械学習などの機能を持ち、顔の特徴点を取得するのに使用しました。

特徴点取得の参考画像がこちらです。
landmark

dlibに用意されている学習データを用いることで顔画像領域の切り出し、ランドマークの検出などが行えます。ちなみにOpenCVを用いても顔画像を切り出すことは可能ですが、それよりも精度よく顔画像を切り出すことができます。

またランドマークはdlibによって、ソートされて出力されるので、モーフィングなどで重要な対応点なども簡単に調べることができます。dlib_face_landmark_point

こんな感じで対応点をソートしてくれます。

ただdlibの導入は少し面倒なのでCMakeの使い方には慣れておいたほうが良いかもしれません。

まだ慣れていないのもありますが構文もかなり難しいです。

また、特徴点が取得できたので、赤ちゃんの平均顔画像も作成しました。
平均顔画像の作成にはOpenCVを使用しました。
baby_face.ave

平均顔の赤ちゃんは非常に可愛いです。
この可愛い赤ちゃん画像から若年変化について考えていきたいと思います。

投稿者: 望月 宥冶

ハッカソン2日目「α版製作」

2016年8月30日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

7月23日、24日に行ったハッカソンの2日目の様子です。2日目の目標は「Wiiリモコンの値で赤ちゃんを制御」、「Mayaで作成したオブジェクトをUnityで読み込み」、「赤ちゃんをViveで制御」です。Mayaで作成したオブジェクトの読み込みは錦澤君が事前にベットのモデルを作成してきてくれていたので、スムーズに行うことができました。球体の読み込みは200*200頂点くらいのものから若干重くなった気がしましたが、許容範囲内でした。
IMG_3175

Wiiリモコンによる制御は、加速度センサの値を取得し、そこから角度を割り出し赤ちゃん(Unityちゃん)と同期。赤ちゃん人形の服の中にWiiリモコンを隠し完成。出来上がったのがこちらです。

Viveによる制御では、素晴らしいものを生み出してしまいました。なにやらサマーレッスン(ロリ)みたいなもので、これを基盤に商品にできそうなイメージでした。プログラム的には、ハッカソン1日目に行ったSteamVRの応用で、あとはHMDを被ったときに違和感がないかどうか調整して完成です。

今回のハッカソンでわかったことはViveが凄いということと、赤ちゃんをどう可愛いと思わせるかが大切だと思いました。今回はUnitychanの迫力が強すぎたということもあると思うので、完成品ではUnitychanを上回れるような作品作りをしていきたいと思います。

© Unity Technologies Japan/UCL

投稿者: 望月 宥冶

ハッカソン1日目「Unity勉強会」

2016年8月30日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

7月23日、24日に行ったハッカソンの1日目の様子です。1日目の目標は「unityを触ること」、「SteamVRの使い方」でしたが、とても良い流れで進んで行き、Kinect v2にも少し触れることができたので、1日目は大成功でした。

浅野君が作成してきてくれたスライドを元に作業を進めた結果、午後までかかる見通しのブロック崩し完成が午前中で終了してしまったため、その後、一足先に午後のSteamVRを我妻君主導のもと勉強しました。
IMG_3166
その後、先ほどUnityで製作したブロック崩しをViveで操作できるようにしたのがこちらです。

一段落したのち、ゲークリで途中抜けしていた浅野君と合流し、来来亭で昼飯兼夕飯を食べ、Kinectを触るはずが、Kinectを動かすために必要なSDK(ver2.0)がWindows7では動かないことが判明し、Windows10にアップグレード。なんとかKinectを動かし、サンプルプログラムから赤ちゃんを3Dスキャンしました。
IMG_3171
赤ちゃんの深度がうまく読み取れているのか疑問が生じましたが、隣に移ってる人の深度はしっかり読み取れていたので一安心。人形程度の凹凸だとあまりよくないようですが、人間相手なら十分使い物になると思います。

ソフトウェア的なことはここまでで終わりですが、夜に合流した武田君とパソコンを組み立てて、1日目は解散しました。余談ですが最近のBIOSがしっかりしすぎていて、すこし驚きました。
IMG_3172
IMG_3174

投稿者: 望月 宥冶

ハッカソン発表会とα版レビュー

2016年8月30日 (開発者日記)

こんにちは。
明るい家族計画の望月です。

前回のハッカソンで作成したwiiリモコンを使った赤ちゃん制御を改良し、HMDで制御できるようにしました。
発表会の様子も載せておきます。

ゲームデザインのより深いところを考えられるような発表会になりました。
「可愛い」についての論文を読みつつ、顔画像についても挑戦していきたいと思います。

© Unity Technologies Japan/UCL