YL-ATGについて なぐり書き👊
はい!解説です!
皆さんはVRCのパラメーターの仕様についてご存知ですか?
例えばFloat。もしこのパラメーターを同期した場合、-1.00 ~ 1.00までの範囲まで他の人と同期できます!
しかし小数点2位以下は切り捨てられてしいます。
でも。。。実は!ContactReceiverのProximityで取得するパラメーターは、同期しないパラメーターに限りUnityでのFloat幅いっぱい取得できます!32bit!
つまり、これをOSCで取得すれば。。。?
これがこのギミックの仕組みです!
もう少し詳しく解説しますね。
このギミックでは、
指定したオブジェクト*0.001
だけ動く 原点に固定されたオブジェクト に半径0のContactSenderを付けて、そのオブジェクトの絶対座標の1000分の1を取得しています。
そのオブジェクトの親(原点固定済み)に半径1のContactReceiverを付けて座標を取得しています。
XYZがマイナスになった場合については、それぞれのマイナス側にContactReceiverを付けています
Unityで使っているOSCライブラリの不具合で、BoolがTrueになっても「変更した事実」しか取得できず、値が全てFalseになったのでこれもProximityです orz
また、角度については直接角度を取得するのがめんどくさかったのでベクトル使ってUnityにお任せしてます(Unityの座標は見かけはオイラーだけど、内部がクォータニオンなので、なんかこう、色々めんどくさかった;;)
1/1000してる都合上下4桁が切り捨てられてるし、浮動小数点誤差が発生するからめちゃくちゃ精度良い!訳では無い。。。
気が向いたらまた追記します なかなか怪しい日本語でごめん~~
この記事が気に入ったらサポートをしてみませんか?