トルクをかけた(AddTorque)場合のトルクをかける場所

トルクをかける場所の異なる想定をした2本の棒を用意した

このように2本の棒を回したところまったく同じ回転をした

f:id:ringstrapper:20180731182423p:plain

単なるCubeのy軸方向にトルクをかけるとCubeの中心軸の場所にトルクがかかる。

このことからトルクをかける場所は物体の中心軸と想定した。

2本の棒はそれぞれHingeJointで空間と接続されており、

真ん中、Joint部をトルクをかける場所と想定している。

左の棒は単にHingeJointで棒と空間を接続しているが、

右の棒は空のゲームオブジェクトの子に棒を設定し、空のゲームオブジェクトと空間を接続している

f:id:ringstrapper:20180731182557p:plain

↓左の棒と右の空ゲームオブジェクト

f:id:ringstrapper:20180731183241p:plain

右の棒自体にはRigidBodyを付けず、コライダーのみを付与した

実験すると同じ挙動をする

f:id:ringstrapper:20180731182423p:plain

AddTorqueにはどの場所に回転をかけるかという指定ができない。

トルクというものはどの場所にかけても同じ挙動をするためと考えられる。

そもそもトルクに場所という概念はないのかもしれない。

回転軸としたい場所を視覚的に決めるにJointを使えばいい。

BlenderのRigifyを使ってUnityでアニメーションさせるメモ

Blender

メッシュを結合する(Ctrl+J)
メッシュの大きさ、位置、向きを調整(寸法に注意)
今の大きさ、位置、向きを基準とする(Ctrl+A)
Rigifyのアドオンをオンに
Scriptの自動実行をオンに
アーマチュア を生成(Shift+A)
アーマチュアの大きさ、位置、向きを調整し、それを基準とする
アーマチュアをメッシュに合わせていく
その際、指の向きに気をつける(Ctrl+N->アクティブボーン)
rigを生成する
生成元のボーンは要らないのでどかして非表示
スクリプトを実行する
DEFボーンの親が全てORGボーンかどうかをチェック必要なら修正
自動ウェイトを実行(Ctrl+P)
ポーズモードで動作確認
必要なら頂点グループ、ウェイトペイントを修正、自動ウェイトを再実行
メッシュとrigを選択し、FBXで選択したオブジェクトのみ出力(アーマチュア、メッシュにチェック)


Unityで読み込み
インスペクターのアバターの読み込み設定でアバターヒューマノイドに設定
configで対応させるボーンを設定
全てORGボーンに設定する
設定したら、すぐ横のタブの筋肉の設定でblenderのポーズモードみたいなことができるので、確認する
確認し終わったらApplyする

インターンアウトプットメモ(Maya編)

メモ

 

  • UVマップの作成手順(Maya)

1.モデルを投影してUV展開

2.UVマップエディタでUVマップを編集

3.UVマップを出力

4.PhotoshopでUVマップに画像を張り付ける

5.ゆがみツールで3D形状を意識しながら画像を整える

6.画像に陰を付けて立体感を出す

7.Mayaに戻ってマテリアルを作成

8.マテリアルに作ったUV画像を適応

 

・UVマップ上で画像をループさせて使いまわし(ただし今回のはループが激し過ぎ。円形の模様などループが目立つ模様は避ける)

・よく見えるところはポリゴン数,UV画像の割合を大きくする

・球体の作り方には2種類ある(立方体をスムージングしてみるとわかる)

・UV展開のUVはなるべくゆがみをなくすように配置

・UV画像の背景は透明色でなく周りの色に合わせた色で塗りつぶすとα値もなくなって画像ファイルサイズも小さくなる

・有機物のポリゴンはきっちり幾何学的にし過ぎない方が逆にリアル



↓作ったしいたけ(らしきもの)

f:id:ringstrapper:20170824233147p:plain

f:id:ringstrapper:20170824233211p:plain

f:id:ringstrapper:20170824233235p:plain