pixiv / three-vrm

Use VRM on Three.js
MIT License
1.3k stars 110 forks source link

VRMFirstPerson: Discussion about `FirstPersonCameraLayerSetting` #19

Closed 0b5vr closed 5 years ago

0b5vr commented 5 years ago

https://github.com/pixiv/three-vrm/blob/310d9c91397caab6170ecccbbba7a9240d3d8465/src/vrm/firstperson/VRMFirstPerson.ts#L35-L38

FirstPersonCameraLayerSetting は、 VRMFirstPerson.setup を叩く際に FirstPersonOnly / ThirdPersonOnly それぞれに割り当たるレイヤーを指定するためのインタフェースですが、 内部的にこれが特に FirstPersonCameraLayerSetting として定義されていない以上、 これは特にインタフェース化されている必要がないように感じました。

もしくは、 VRMFirstPerson.DEFAULT_FIRSTPERSON_ONLY_LAYER / VRMFirstPerson.DEFAULT_THIRDPERSON_ONLY_LAYER および VRMFirstPerson._firstPersonOnlyLayer / VRMFirstPerson._thirdPersonOnlyLayer も 当該インタフェースを利用する方向に倒しても良いと思います。

UniVRMとのAPIの近さを考慮すると悩みどころですが、どちらにもインタフェースを採用する方に思い切ってしまってもいいかも……?

yoshidan commented 5 years ago

setup以外で使っていないのでこれで十分ですね。

 public setup({
    firstPersonOnlyLayer = VRMFirstPerson.DEFAULT_FIRSTPERSON_ONLY_LAYER,
    thirdPersonOnlyLayer = VRMFirstPerson.DEFAULT_THIRDPERSON_ONLY_LAYER,
  } = {}) {
0b5vr commented 5 years ago

setupに値を2つ渡す形にしちゃいますか。 オブジェクトだ