空母ヲ級をRealityCaptureで鹵獲(キャプチャ)してUnityで表示する-RealityCaptureの基本的な使い方-

# はじめに

本文章はRealityCaptureを利用してフォトグラメトリを利用したい人向けに、フィギュアをiPhoneで撮影してモデル化しUnityで見てみるまでのステップをお伝えするものです。

# 本記事を読む前に権利周りに注意してください

## フォトグラメトリを悪用してはいけません

著作物を立体化したフィギュアは著作権者に版権料を支払って創作されたものです。キャプチャしたモデルを眺めて自分で楽しむくらいならグレーですが、そのモデルを使ってゲームを作って売るとか、あまつさえ3Dプリンターで出力して海賊版フィギュア作るとかは絶対ダメです。折角の良い技術を悪用するのはやめましょう。

教えてGooアンサー見解での
https://oshiete.goo.ne.jp/qa/8248786.html

「昭和53年の最高裁判例で「著作物の複製とは、既存の著作物に依拠し、その内容及び形式を覚知させるに足るものを再製すること」と規定されました。つまり、類似性だけで複製と認められる可能性があるということで、3Dプリンターや3Dスキャナーで得たデータを私的に使用する範囲を越えて配布すると侵害となるでしょう。販売すると差止請求と損害賠償請求の対象でしょう。単純に考えて他人の知的財産であることに違いありません。」

というご意見はご尤もですので私用に留めましょう。

## 本記事を書くのは許容されるのか？

今回キャプチャ対象として扱うのは「[グッドスマイルカンパニー社　ミディッチュ　艦これ　空母ヲ級](http://www.goodsmile.info/ja/product/4418/%E3%83%9F%E3%83%87%E3%82%A3%E3%83%83%E3%83%81%E3%83%A5+%E8%89%A6%E3%81%93%E3%82%8C+%E7%A9%BA%E6%AF%8D%E3%83%B2%E7%B4%9A.html)」です。権利表記は「©2014 DMM.com POWERCHORD STUDIO / C2 / KADOKAWA All Rights Reserved.」となります。

[艦これ二次創作ガイドラインまとめ](https://kimu3.net/20170404/7332)を根拠とし本記事は同人活動の一環として行うものであるため許容されるものであると判断して投稿しております。

許されると思う！多分！！

# RealityCaptureとは

フォトグラメトリ技術により複数の写真を元に3D形状を復元するソフトウェアです。詳細は[専門の方のブログ](http://kazukisakamoto.hateblo.jp/entry/2018/03/07/175925)にお任せします。

![スクリーンショット 2018-03-16 0.47.42.png](https://qiita-image-store.s3.amazonaws.com/0/18557/c4960c54-45fc-3800-9cff-530ed532a96e.png)


## お値段は

公式サイトのお品書きは以下になります。

![スクリーンショット 2018-03-16 0.38.14.png](https://qiita-image-store.s3.amazonaws.com/0/18557/94fd5dd3-edc6-9bb4-4e67-482a4f480a85.png)

一番下でも3ヶ月で1万円...これは手が出にくい...
一応フリー版もあります。

![スクリーンショット 2018-03-16 0.02.28.png](https://qiita-image-store.s3.amazonaws.com/0/18557/12539f70-e4d6-5f53-1a74-1712a74372dd.png)

キャプチャして眺めるだけならフリー版でもいいです。ただしやっぱりモデルデータは出力したいものです。そこで[Steam版](http://store.steampowered.com/app/489180/RealityCapture/?l=japanese)を利用します。

![スクリーンショット 2018-03-16 0.43.42.png](https://qiita-image-store.s3.amazonaws.com/0/18557/ccf13d9c-26a8-e9d7-4d82-2e8f036f79e6.png)

![スクリーンショット 2018-03-16 0.43.26.png](https://qiita-image-store.s3.amazonaws.com/0/18557/7d6c139f-5389-245f-96fb-29d72a5a86a3.png)

一ヶ月だけのサブスクリプションならばだいぶハードルが下がるのでこれを使います。
それではいざ鹵獲開始です。

# 撮影

フォトグラメトリのメインである撮影作業を行います。曇りの日に屋外でそれなりの大きさのものを撮影するのがフォトグラメトリのベストコンディションらしいですが、今回は屋内で屋内照明を頼りに小さなフィギュアを撮影するので一手間加えます。

## 下準備

フォトグラメトリは撮影背景の特徴点を元に撮影位置や姿勢を推定してモデルを生成します。逆に言えば特徴点がはっきりしていなかったり光源などが変化してしまうとモデル生成が困難になります。

![IMG_0001.png](https://qiita-image-store.s3.amazonaws.com/0/18557/ede00bd1-6005-6130-d6bd-d38f6080b2bd.png)


そこでこのような魔法陣を地面に書き込みます。画像認識しやすそうなマーカーを描いて見ました。床に直接書き込むと大変なことになるので、100均で買ったフローリングタイルに書き込んで見ました。

## 注意点まとめ

- なるべくなら屋外などの広い空間で撮影する
- 光源が変化することや表面が明るくなりすぎるためフラッシュはたかない
- 屋内で撮影するなら一工夫する

## 撮影

フィギュアを愛でながらいろんな方向から撮りましょう。ただし、カメラを傾けたりはしないほうがいいようです。可愛いからと行ってフラッシュをたいたりはしないほうがいいです。

![woq.png](https://qiita-image-store.s3.amazonaws.com/0/18557/bfb55712-3750-bf94-c083-350c45637b64.png)
こういうのダメ。

だいたい100枚くらい取るといいみたいです。

![photos2.png](https://qiita-image-store.s3.amazonaws.com/0/18557/e7f82d7e-18a9-03c1-7fed-4ee6cf5a8734.png)

ちなみに風呂場で撮りました。白壁でいい感じにレフ板代わりになってくれました。こんな貧乏環境でも出来てしまうのがフォトグラメトリの凄さです。

#　モデリング

## 環境

- Windows 10 Pro
- Intel Core i5-7400
- RAM 8GB
- GPU Geforce gtx 1060

## 写真取り込み

まずはRealityCaptureを立ち上げます。

![スクリーンショット 2018-03-16 1.12.45.png](https://qiita-image-store.s3.amazonaws.com/0/18557/d36649c6-e204-3ffd-5cf7-d3ddb17a59c4.png)

写真を複数選択してRealityCaptureにドラッグ＆ドロップします。

![スクリーンショット 2018-03-16 1.13.44.png](https://qiita-image-store.s3.amazonaws.com/0/18557/9f4331b2-4ae0-df0d-f343-d54cb15752f3.png)

## モデル計算

全部よみこまれたら「Start」ボタンをぽちっと押します

![スクリーンショット 2018-03-16 1.14.30.png](https://qiita-image-store.s3.amazonaws.com/0/18557/b54189f0-b63b-9ebf-a3f8-783949b4ffa6.png)

だいたい10~30分くらいまちます。この時CPU&GPUをフルに使用し、キャッシュのためにストレージも利用します。ドライブ容量に余裕のある状態にしてゆっくりお茶でも飲みながら放置しましょう。お母さんがクッキー焼いてるのをじっくり待つ気持ちです

![rendering.png](https://qiita-image-store.s3.amazonaws.com/0/18557/0b27e0f3-3d13-9de7-041c-86f957d062c6.png)

できたあああああああああ

![capture.png](https://qiita-image-store.s3.amazonaws.com/0/18557/6d3aae26-3f9a-b9a5-6ada-aa4db50b77eb.png)

## 調整

ただ、今回は全面しか撮影してなかったので後ろは出来てません。上手く焼けるまで何回か繰り返すのもいいですが今回はこのままいきます。なんか全面きれいにできたモデルを載せるのやっぱり怖い。。

![trim1.png](https://qiita-image-store.s3.amazonaws.com/0/18557/dd174b04-3d24-5f95-4442-a12360e9b62d.png)

データとして地面が回転していたり、フィギュア以外のデータも含まれているためトリムなどの調整をかけます。「RECONSTRUCTION」タブの「DefineGroundPlane」を選択します。モデル全体を回転できるようになりますので床のグリッドと平行になるように調整します。



![trim2.png](https://qiita-image-store.s3.amazonaws.com/0/18557/ca908e3d-6c74-28ae-7a0d-2ffb0f73244a.png)

次に「Set Reconstruction Region」をクリックします。モデルのまわりにBOXが表示されます。この周りにある赤、青、緑の球をドラッグしてBOXの大きさを調整し、BOXが欲しい部分を覆うように調整します。

![ trim3.png](https://qiita-image-store.s3.amazonaws.com/0/18557/3d8e4218-8625-e0d5-9ece-8c14d6e59d3b.png)

調整できたら左上のキューブアイコン「Normal Detail」をクリックして再度モデル計算させます。1回目よりはすぐに終わるのでじっくり待ちます。
![trim4.png](https://qiita-image-store.s3.amazonaws.com/0/18557/008ebf92-e710-a6bd-3247-4bf637666bb5.png)


## テクスチャリング

1度目の計算では自動的にテクスチャリングまでおこなわれますが、再計算するとテクスチャが剥がれてしまいます。そこで手動でテクスチャリングをおこないます

といっても左上にある「Texture」ボタンをおすだけです。


![texture.png](https://qiita-image-store.s3.amazonaws.com/0/18557/2ec8d1a4-53a7-5e30-2329-9b1aa3bf77bc.png)

無事に彩色できました。

![complete.png](https://qiita-image-store.s3.amazonaws.com/0/18557/4a809586-ffe5-e47a-a958-fe15005f5033.png)


## エクスポート

とりあえずこれで完成ということで出力します。右上のExportにある「Mesh」をクリックします。ダイアログが表示されるので、形式を「fbx」 Texture Settingsの中のExport textureを「True」にします。

![export.png](https://qiita-image-store.s3.amazonaws.com/0/18557/84ea6cec-b06d-a89e-132e-d9d89f6d0f7e.png)

#　完成

Exportしてできたfbxとtexture(デフォルトだとpng)をUnityにとりこみます。
若干暗めになっているかとおもいますのでライトを調整します。

![unity.png](https://qiita-image-store.s3.amazonaws.com/0/18557/5fbf4eef-8120-773c-b5f1-83bef783e1a0.png)

ヲ級の鹵獲成功です！

## マニュアルとかないの？

ほとんどないのが現状です。ただしアプリケーション内である程度のヘルプをみることはできます。
右上のApplicationの「settings」を選択します。左下にSettingsウィンドウが表示されるので、その中の「Tutorial Mode」をTrueにします。メニューなどを選択するたびにHelpが表示されるうざいモードにきりかわるので気になるボタンなどがあった場合はこれでヘルプを確認します。

![Tutorial.png](https://qiita-image-store.s3.amazonaws.com/0/18557/707f3d10-86f0-0925-a0ff-ed0dc26a7e18.png)



# この後は

表面が凸凹していたり、そもそも頂点数が30000くらいあったりとちょっとデータとしてしんどい感じですので[Sculptris](https://oakcorp.net/zbrush/sculptris/)でお肌をととのえたり、[Blender](https://blender.jp/)でリダクションやテクスチャのリマップをしてあげましょう。もしかしたらその手順も掲載するかもしれません。


# 参考
- [RealityCapture](https://www.capturingreality.com)
- [RealityCapture on Steam![uploading-0]()
](http://store.steampowered.com/app/489180/RealityCapture/?l=japanese)
- [「人柱系CGモデラーのTips Blog」](http://kazukisakamoto.hateblo.jp/entry/2018/03/07/175925)
- [Sculptris](https://oakcorp.net/zbrush/sculptris/)
- [Blender](https://blender.jp/)