【Unity】球にテクスチャを貼り付けた時のズレ


なんとなく Sphere に貼り付けた画像がずれてる気がする。

この現象の原因と対策のメモ。

 

現象の確認

世界地図を張り付けたSphereの45°、赤道、-45°に目印を置いた。

赤玉が正しく置けてるか目印座標のY要素が  r*cos(π/4) と等しいことを確認した。

 

次にテクスチャの高さの 1/4、1/2、3/4 部分に線を引いてみる。

これは 45°、0°、-45°としてグーグルマップで見ても正しい位置に見える。

(北海道の北部とかタスマニアの南がわかりやすい)

 

2つを見比べると明らかにずれている。

確証を得るために線有のテクスチャに変えてみるとこうなった。

 

調べた感じでは Unity で Sphere のUV座標がおかしいことが原因らしい。

 

 

対策

Unityの球がおかしいならBlenderで球を作って持ってくる。

Blenderで球を作る方法は以下の流れです。

 

  • Blender Sphere 作成
    • Shift+A > メッシュ > UV球 で球を追加
    • 編集モードに変えて「w」 で好きなだけ細分化
    • Shift+Alt+S(球体化)のあとマウスを右に動かす
  • UV展開
    • 左下で「UV/画像エディタ」選択→「新規」→3Dビューに戻す
    • 「CTRL+テンキー6」で背後視点にする(UnityのSphereに軸を合わせる)
    • 全選択して「U」→「球状展開」
  • Unity利用
    • FBX形式でエクスポート&インポート
    • sphere collider追加(必要に応じて)

 

これで座標ずれはなくなりました。

※上のほうが微妙にずれてるように見えるのは地球のサイズが変わって赤い球が浮いてるせいです。

 


2 thoughts on “【Unity】球にテクスチャを貼り付けた時のズレ”

  1. コメント失礼します。使われている地図の図法は何という図法でしょうか?心射円筒図法かと思いましたが、他の画像で試してもうまくいきません。返信いただけると幸いです。

  2. 5年ほど前のものなので元画像が見つからないため、画像検索で調べなおしてみましたが恐らく正距円筒図法だと思います。

コメントを残す

メールアドレスが公開されることはありません。