yotiky Tech Blog

とあるエンジニアの備忘録

3ds Maxで地図をトレースしてUnityにオブジェクトを取り込む方法

もくじ

はじめに

対象読者は、3ds Max を触り始めたばかりの人です。(実際、触り始めて2、3日目くらいの記事)

最後まで読むと、下絵とした地図画像をトレースして、Unityに取り込むためのFBXの書き出しと、トレースした結果を画像として保存できます。

エディタで操作する箇所は赤枠で囲んだあたりになります。 f:id:yotiky:20181211163031p:plain

また、単位設定でディスプレイとシステムをcmに設定してます。

手順

下絵の設定

  1. 作成 > ジオメトリ > プリミティブ > 平面 でPlaneオブジェクトを作成
    f:id:yotiky:20181211163244p:plain

    1. 修正 > パラメータ で幅と長さを画像に合わせる(例:800 x 600)
    2. 移動でZを-0.01に

    f:id:yotiky:20181211163455p:plainf:id:yotiky:20181211163457p:plain

  2. レンダリング > マテリアルエディタ > コンパクトマテリアルエディタ を開く(もしくは[M])
    ※モードで、コンパクトとスレートを切り替えられる
    f:id:yotiky:20181211163500p:plain

    1. 自己照明を100に
    2. 拡散反射光の「なし」から、ビットマップを選んでトレースする画像を選択
    3. 終結果を表示 をクリック
    4. シェーディングマテリアルをビューポートに表示 をクリック
    5. Planeオブジェクトを選んで、マテリアルを選択へ割り当て をクリック

    f:id:yotiky:20181211163502p:plain:w300f:id:yotiky:20181211163506p:plain

  3. Planeオブジェクト選んで、右クリック > オブジェクトプロパティ f:id:yotiky:20181211163509p:plain

    1. インタラクティブ
      1. フリーズをチェック
    2. 表示プロパティ
      1. フリーズをグレーで表示をアンチェック
    3. レンダリング制御
      1. 表示を0.5
      2. レンダリング可能をアンチェック

    f:id:yotiky:20181211163512p:plain:w300

  4. Planeオブジェクトを選んで、回転でZを180に

    1. ViewPortは後ろから見た絵にすると楽(Unityのデフォルトの向きに合わせる)

    f:id:yotiky:20181211163516p:plain:w500

トレース

  1. 地面用にPlaneオブジェクトをもう一個追加して、サイズと位置(Zだけ0)を下絵のPlaneオブジェクトに重ねる
    f:id:yotiky:20181211163520p:plain:w500

  2. 作成 > シェイプ > スプライン > ライン で、スプラインを使ってトレース開始

    1. あとで調整するので大体の位置に角を置いて輪っかを作り、必要な分だけ書いてく(各スプラインは必ず閉じる)
      f:id:yotiky:20181211163524p:plainf:id:yotiky:20181211163528p:plain
  3. 各Lineオブジェクトで、頂点を選択して、座標を調整していく

    1. 地面用Planeオブジェクトと重ならないように、移動でZを0.1に
      f:id:yotiky:20181211163532p:plainf:id:yotiky:20181211163535p:plainf:id:yotiky:20181211163538p:plain
  4. 各Lineオブジェクトで、ポリゴンを選択(面としてレンダリングされる)
    f:id:yotiky:20181211163541p:plainf:id:yotiky:20181211163544p:plain:w350

  5. レンダリング > マテリアルエディタ >スレートマテリアルエディタ (もしくは[M])でマテリアルを設定
    f:id:yotiky:20181211163547p:plain

    1. フィジカルマテリアル をダブルクリック
    2. Viewで作成したマテリアルのタイトル部分をダブルクリック
    3. 基本パラメータ > ベースカラーと反射 でカラーを指定
    4. マテリアルをLineにドラッグ・アンド・ドロップ

    f:id:yotiky:20181211163551p:plain:w500f:id:yotiky:20181211163555p:plain:w500f:id:yotiky:20181211163600p:plain:w350

  6. 階層 > 基点 > 基点にのみ影響 で基点のXを90に(UnityのYupに合わせる) f:id:yotiky:20181211163605p:plain:w500

エクスポート

  1. Unityに取り込みたいオブジェクトを選択し、ファイル > 書き出し > 選択を書き出し をクリック
    f:id:yotiky:20181211163651p:plainf:id:yotiky:20181211163653p:plain:w350

  2. アニメーション、カメラ、ライトをアンチェックして書き出す f:id:yotiky:20181211163656p:plain:w500

    1. Warning出るけど無視
      f:id:yotiky:20181211163659p:plain:w500
  3. 出力したFBXをUnityにドラッグ・アンド・ドロップで完了 f:id:yotiky:20181211163705p:plainf:id:yotiky:20181211163708p:plain

トレース結果を画像として保存

  1. 作成 > カメラ > フリー でカメラ追加
    f:id:yotiky:20181211163610p:plain

    1. ストックレンズは200mm
    2. 回転でZを180に
      f:id:yotiky:20181211163613p:plain:w300f:id:yotiky:20181211163620p:plain
  2. レンダリング > レンダリング設定 で出力サイズを元画像に合わせる(例:800 x 600)
    f:id:yotiky:20181211163622p:plain:w230f:id:yotiky:20181211163628p:plain:w230

  3. ビューポートをカメラ[C]にしてセーフフレーム[Shift+F]を表示 f:id:yotiky:20181211163630p:plain:w500

  4. カメラの位置を(X, Y) = (0, 0)にして、黄色い枠にPlaneの縁が合うようにZを遠ざけて調整

    1. 必ずカメラのビューポートを確認しながら
  5. カメラのビューポートをアクティブにして、レンダリング > レンダリング からイメージを保存で画像書き出し
    f:id:yotiky:20181211163633p:plainf:id:yotiky:20181211163641p:plain:w500

地面用Planeオブジェクトを抜いて画像で出力し、下絵の画像に重ねた結果。 f:id:yotiky:20181211163446p:plain:w600