2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MayaAdvent Calendar 2023

Day 22

maya で接地点を取りたい

Last updated at Posted at 2023-12-21

接地点を取りたい

接地点を取りたいって言うと、closestPoint~ をすすめられることがあるけども

最近接点なので
ほんとは青い点が取りたいのに赤い点が取れちゃったりするのでなんか違うんですよ。
image.png

API使えば任意方向にray飛ばしてぶつかった点とか取れるのですが、もっとお手軽に何とかしたい。

shrinkWrap

私が見つけたのはこれ、えすけーt shrinkWrap

shrinkWrapはまぁ便利なやつですね。
検索すると色んな事例が出てきます。

plane から sphereに対してshrinkWrapを行い

projectionを parallel to axesに変更
axisReferenceをとりあえず target local にし
along X/Y/Z のYのみにチェック
※Yのチェックを on/offすると形状がリセットされます

image.png

sphereを-Y方向に移動させて、planeと接し始めるとshrinkWrapが働き
sphereがplaneにshrinkされます
image.png

planeが平面でない場合も
設定した軸方向にrayを飛ばした感じになるので、良い感じに接地してくれます。

image.png

接地点を取りたい

nurbsCurveだと楽なのですが、shrinkWrapは非対応なのでポリゴンで。
image.png

この辺は任意に調整しますが、一旦こんな感じで
image.png

一番下のvtxを選択して constraint > rivet を実行
※特にrivetである必要はないので、vtx位置をトレースできれば他の方法でも可
image.png

こんな見た目になりました。
image.png

ひし形ポリゴンを動かすと
shrinkWrapでplaneにshrinkされて、
リベットされてるロケーターが接地点を教えてくれます。
image.png

接地判定するなら

一番下のvtx位置にロケーターを2個作成し、親子化(locator1 locator2
pinOutput から locator2 に対して pointConstraint (offset = False)
image.png

floatLogicとかconditionとか適当につかって、locator2のtranslateYが > 0 になった時が接地してる時
image.png

判定結果をsphereのvisにつないでみたのがこちら
https://vimeo.com/896185642?share=copy

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?