maya シャフト？のセットアップで悩んだ話

シャフトっていうのかなんて言うんですかねぇ

こういう奴
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/ef25d347-68e5-a972-b943-35247fdf3b1e.png)

この手のセットアップで悩んでしまったので、備忘録も兼ねてまとめようかなと

単純なのはイージー
-

シンプルなタイプ
これはイージーですね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/7c468ea3-8ac2-e45f-cd0d-116e6a871498.png)

やり方はまぁ色々ありますが、お互いにaimConstraintし合うとか
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/15f7cde3-901f-5143-570b-cd05f69203b6.png)

厄介なタイプ
-

回転する軸と、ピストン？シリンダー？の位置がずれてるタイプ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/2b17b179-8705-aff7-180a-0e7c3e050b49.png)


とりあえず同じ感じでやってみると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/ea55b476-7b0f-7b02-01ec-dcf46c2142bf.png)

うん　ズレる。
距離が変わるとズレる。
これがロボットだったら大事故。

ちゃんと考える
-

大元の回転軸はそれぞれココ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/c1a04657-69ff-0e75-e471-2168910660b0.png)

距離が変わるときにスライドして欲しい軸はこの(シリンダー)方向
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/7493c6de-3647-9922-a009-a35da7a2092c.png)

↑を元にjointを設定するとこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/19b07376-e778-af50-2737-a29080270dc4.png)

aimConstraintのoffsetあり・・・・だとちょっとズレそうな気がするので、
それぞれの先端位置にaimの為のjointを追加して それぞれaimConstraint
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/18bd66fa-73d7-2ef1-a592-9774e20f382f.png)

いえい！ずれない！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/569c9909-5eb6-dc8e-398f-38b131349126.png)

もっと厄介なタイプ
-
さて・・・・これは・・・・・
いや結構あるんですよ、**シャフトの軸がズレちゃってるモデル**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/08aae3ec-433e-81b0-4ed7-f6a287eb16e3.png)

遊びがある程度あれば、一つ前の方法でもぎりぎり大丈夫だったりします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/f5b11e3d-2335-38da-3763-c7bfecf814ea.png)

基本的にはモデラーさんへお戻し案件ですけれどもね。
戻せないのであれば
ここを伸縮させてしまう　とかかなぁ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/15ce2bb9-a53d-3d3b-2373-e75c530a5925.png)

先端jointを aimターゲットでpointConstraintして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/14130cf8-f8ab-7a5c-2b99-8b6dddd687e4.png)

先端側を先端jointにウェイトを振る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/53787250-12a8-112b-78f2-f69451371fe7.png)

伸縮させたver
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/3a541fa7-1823-82fc-1c42-16ba5b5dcd86.png)

伸縮させないver
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/9703405c-6a1a-cdbc-39c3-397fd810806c.png)

軸棒はなんかシアーしてしまうけれども、はみだしにくくはなります。

まぁ
**モデラーさんに直してもらうのが一番いいと思うんですけどね！**

今回 upVectorは割愛してますが、もし設定するならば
こんな感じで根本の回転軸上に置いておけばつかえますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/532c1f4b-1103-74eb-4964-3aa0a92bfc81.png)


落ち着いて整理して考えれば簡単なんですが、
色々切羽詰まってこんがらがって最初はもっと面倒な方法で組んでました。
まーもっと簡単な方法もあると思うので見つけたらぜひ共有してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/7fd03561-f499-e76e-89ff-e48c3c097d7e.png)