HoloLens感謝祭で和製キップマンチャレンジが開催されたので、それに合わせて
写真から顔モデルを作ってくれるAIサービス”3D Face Reconstruction from a
Single Image”とHoudiniでプロシージャルに顔を作る流れを作っていきます。
大本のデータはこの画像を利用します。
やり方は超簡単。”3D Face Reconstruction from a
Single Image”にアクセスし、アップロードするファイルを選択して
私はロボットではありません にチェックを入れてUpload Imageを押すだけです。
すると、なんということでしょう。1枚の画像から顔モデルができてしまいました。
Download Wavefront OBJ Fileからobjファイルをダウンロードすることができます。
なんだHoudiniいらねーじゃんって思われるかもしれません。
しかし、objファイルを開いてみてください。
なんと、テクスチャが張り付いているわけではなく、Cd情報つきの擬似ボクセルになっているではありませんか。
このままでは色んな用途で利用できません。そこでHoudiniを利用します。
まずobjファイルをFileSOPからReadします。
ちょっと元データが大きすぎるのと、顔の向きが正面でないのでtransformで微調整します。
そして、VDBfromPolygonでVDBに変換してconvertVDBでポリゴンに戻します。
すると、先ほどまでガタガタだった表面がなめらかになりました。
顔の裏側は邪魔なのでclipで除外します。
VDBに変換すると、Cdのattributeが失われます。そこでattribtransferで
Cd情報を変換前の状態から変換後のモデルに戻します。
ただ、やはりCdではなく、テクスチャを利用したいところ。
UVを指定して、テクスチャベイクを行います。
テクスチャベイクは、BakeROPを利用してマテリアルを適用したモデルのbasecolorを出力します。
詳しくは日本語情報ブログのここを参照
baseにチェックを行ったらレンダリングします。
出力が完了したら、photoshopで微調整を行います。
調整が完了したら、テクスチャを読み込んで余分なCd情報を削除します。
そして最後の調整としてpolyreduceを行います。
Houdini16.5から、以前よりもUV情報が崩れずにポリゴン削減ができるようになっています。すばらしいですね。
最後にobjを出力して完了です。hipデータはこちら
色んな人の顔を作ってみて下さい。