1枚の全身の三面図から 3D の人物を作れるかを、Pixal3D を手元で動かして技術検証したときに、できた人物を軽量化したら顔が崩れて見えました。軽量化の処理を直せば済むと考えたくなるところですが、元の高密度のモデルを見直すと、顔はその段階ですでに崩れていました。この場合、後ろの工程をいくら直しても顔は良くなりません。

結論

  • 人の目で見ると、人物は人間というより怪物のように見えていました。軽量化した版だけでなく、元の高ポリゴン版にも鼻や頬の違和感が残っていました。
  • 元のモデルの時点で、目の輪郭が崩れ、鼻と口の形が弱く、服や肌の表面にも乱れがありました。生成が終わったことや、体の比率、服と鞄の組み上がりが良いことは、顔の合格の理由になりませんでした。
  • 全体の形、顔の局所、メッシュの構造、動きと負荷は、それぞれ別の検査として見ることにしました。
  • そこで、生成直後の顔を正面・斜め・横から拡大して確かめ、参考の表情と形を保てていたものだけを軽量化に回すことにしました。

試した環境

  • 画像から 3D: TencentARC/Pixal3D
  • 計算機: Radeon RX 7900 XT(VRAM 20 GB)
  • 入力: 画像生成で作った1枚の全身の三面図(正面・画面の左を向いた横・背面)。大人の比率(だいたい 7 頭身)をねらいましたが、絵としてはデフォルメが残った参考で、実在の人の採寸ではありません
  • 生成時間: 180.1 秒(この 1 件の記録)
  • 確かめ: Blender で、正面・横・背面・反対側の横と、顔の正面と横の拡大を描画

顔の弱さを書き出していても、評価は甘かった

生成が終わって描画を見たときには、良い点がいくつもありました。

  • 大人らしい胴と手足の比率が保たれていた
  • 鞄・肩ひも・服・靴が、ばらけずに組み上がって見えた
  • 見た描画の中では、顎の下に目立つ暗い段はなかった

この見直しでは、顔の正面と横の拡大も描いていました。同じ見直しで、目の輪郭が崩れていること、口と鼻の形が弱いこと、服のしわと襟のボタンがこぶのように盛り上がっていること、肌に細かい表面とテクスチャの乱れがあること、鞄のふたと持ち手が参考と違うことも書き出してはいました。プレビューの動画も、骨格を付けて歩かせたものではなく、カメラが 4 秒で人物のまわりを一周するだけのものでした。それでも人物の出来の評価は甘く、あとで振り返ると、全景では顔の問題を見落としやすかったのです。

人の目で見たら、顔が崩れていた

人の目で見ると、人物は人間というより怪物のように見えました。軽量化した版も並べて見直すと、目立ったのは次の所です。

  • 鼻: 小さな鼻だったはずが、赤く突き出た丸い鼻になっていた
  • 目: まぶた・白目・瞳の境が崩れ、顔に穴が開いたように見えた
  • 頬と口: 頬紅が丸い模様になり、口元も人形のように見えた
  • 髪: 細い流れが太い塊になり、顔の印象まで変わっていた

崩れの大きい軽量化の版に目が行きがちですが、元の高ポリゴン版にも鼻や頬の違和感は残っていました。軽量化だけの問題ではなかったのです。

次の画像は、元の高密度のモデルの顔を正面から描いたものです。赤く突き出た鼻ほどの崩れは出ていませんが、目は輪郭が崩れて黒い塊のようになり、鼻と口の形も弱いままです。

軽量化する前の高密度モデルの顔を正面から描いた画像。目の輪郭が崩れ、鼻と口の形が弱い

メッシュの数字は、顔の良し悪しを教えてくれない

元のモデルのメッシュを測った値です。描画するときは、元の GLB に一様な拡大と中心合わせ、表示用の滑らかさだけを加えています。

項目値
面916,002
頂点(重なりをまとめた後)452,968
境界の辺0
非多様体の辺3,996
閉じた形かいいえ
成分の数6(最大の成分は 844,884 面)
中に閉じ込められた成分1(2 面)
テクスチャ2048×2048

境界の辺が 0 なので閉じた形に見えますが、非多様体の辺が 3,996 あり、閉じた形ではありませんでした。とはいえ、これらはどれも形の構造の検査で、目がきれいか、鼻が参考どおりかについては何も教えてくれません。生成のジョブが成功したことも、見た目が正しいことの証拠にはなりませんでした。

軽量化の機械の手前で、人形の顔を三方向から照らして確かめ、一体を脇へよけている絵

見直して決めた順番

人物については、生成直後の顔を先に見て、通ったものだけを軽量化に回す順番にすることにしました。

軽量化の前に顔を確かめる順番

3 方向とは、正面・斜め・横です。参考画像を作る段階と、生成した後で気をつけることもまとめました。

  • 参考は1枚の全身の三面図から、形をゆがめずに各方向を切り出す
  • 生成に投げる前に、肩ひもや靴のバンドが方向どうしで食い違っていないかを見る
  • 参考の絵に描く顎の影はできるだけ弱くし、生成の後で実際の 3D の横顔と顔の拡大を見る
  • ジョブが成功したことから、見た目が正しいと推し量らない

確かめていないこと

  • 顔を局所的に直して解決できた例はありません。
  • 顔の合格を自動で判定する検査は、実証していません。
  • 生成時間の 180.1 秒は、この 1 件の記録です。
  • 顔を自動で手直しする方法は、案を出しただけで、試していません。

おわりに

画像から生成した人物の顔が崩れて見えたら、まず軽量化の前の元のモデルで、顔を拡大して見てください。私たちの試作では、崩れは元のモデルの段階から始まっていました。

※ Pixal3D の振る舞いは執筆時点の情報です。いまは変わっている可能性があります。