うにty生活

UnityChanを生活させたい

Unity 3Dオブジェクトの原点は変えられるのか #23.1

  

f:id:tubakihimeLoveHate:20190619013641j:plain

 

どうもラブヘイトです

ここ最近は土日に記事を書き溜めて平日に完成→世に出す方式です

 

今日は前回、Unityちゃんに物を持たせる記事で少しだけ触れた

3Dオブジェクトの原点を変える方法についてです

いろんな方法で作成して検証して見ました!

 

 

先に結果をお伝えすると原点を変える方法は3つあります

 

◆原点(pivot)を変更したい理由

pivotは中心という意味があり、Unityではオブジェクトの中心のことを指します

 

原点を変更したい理由としては、中心以外の場所を軸に回転してほしい!

ってところだと思います

2DからUnityを触り始めた人(私)は

「2Dではpivotグリグリ動かせるのに〜!3Dオブジェクトはpivot変えられないの!?」

とずっと疑問でした

 

残念ながらデフォルトでは好きな軸に回転させたいだとか2Dでは簡単なことも3Dでは出来ないのです、、、

f:id:tubakihimeLoveHate:20190619011547p:plain


もしpivotを動かすことができて、2Dのようにグリグリ動かせたら最高ですよね!

なので pivotを動かす方法をいくつか調査しました

 

◆コードを作成する

UnityAnswers(←リンク)の質問をいくつか見たところ、Unityのデフォルトの機能ではできないみたいです

コードを書けばできるみたいで、Editor拡張のコードを書いた人のコードを使用させていただきました

http://solvethesystem.wordpress.com/2010/01/15/solving-the-pivot-problem-in-unity/

f:id:tubakihimeLoveHate:20190619011702p:plain
このコードをAsset>Editorフォルダに入れるだけで、

f:id:tubakihimeLoveHate:20190619011749p:plain

こんな風にエディターから原点を編集できちゃいます!

↓↓↓

f:id:tubakihimeLoveHate:20190619011846p:plain

f:id:tubakihimeLoveHate:20190619012221g:plain

ただ、やっぱりUnity上でのpivotの表示は真ん中にあるので、オブジェクトが増えてくると厄介だと思います

 

また、こんな意見も、、、

コードを書くよりも、モデリングの時点で原点考えて作ったほうがいいよ!っていうか、みんなそうしてるよー

 

そういう意見もありだと思います、でもデフォルトで原点の編集ができないということはUnityで作成できる3Dオブジェクトはコードがないと原点を動かすことができません

 

◆擬似的に原点を動かす

根本的な解決にはなりませんが、簡単に思い通りの動作をするといえば

やはり空のGameObjectを親にすることですかね!

原点を変えたいオブジェクトを空のGameObjectの子にする

f:id:tubakihimeLoveHate:20190602191532p:plain

そしたら子オブジェクトを好きな位置に移動させます

子のオブジェクトではなく、親のGameObjectのRotationを変更して見てください!

そこが軸となって回転しています 

f:id:tubakihimeLoveHate:20190602191433g:plain

今のところ不具合や変な挙動はしたことがないので、ある程度はこの方法でもいいと思います!

 

前回の記事ではGameObjectを親にする方法で、Unityちゃんに物を持たせてみました

 

◆まとめ

3Dオブジェクトの原点(Pivot)を動かす3つの方法は

・エディター拡張するコードを作成する

・モデリングの時点で原点を決めて作成する

・空のGameObjectで擬似的に再現する

 

以上 

それでは、良い原点ライフを(なんだそれ)