-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: camera control components #214
Conversation
Test this pull request
|
…aTransition message
…feat/camera-control-components
We've developed a similar implementation and noticed some differences in our approaches. Here's a brief comparison of the features:
It seems like we could combine our efforts to create a more robust solution. Going through item by item:
What do you think about potentially merging our efforts to create a more comprehensive solution? |
Hello Rob, so from what I understand if we go with your proposal we would be scratching our implementation completely and basically implementing support for your approach and adding the transition feature only right? In my opinion the Regarding the point mentioned of "allows for easier setup if you want different cameras when the player is in different locations", that can be done with a trigger area (or player pos checks) to change the camera in specific locations. The same "easier setup" argument could be said about having the Regarding the interactions between the
If you mean the demo video, just to clarify it was just manipulating a VirtualCamera entity's transform with the global input, nothing related to the new components. I do like your approach features of zoom level and allowing user input with constraints (this last one we also though to implement it in the future in the I'm all in favor of doing a joint effort on the protocol layer additions/changes, it's just that in this case I believe the VirtualCameras + MainCamera (originally though of as "CameraDirector") components is more versatile for creators (and your approach features we are missing here could be built on top of this in a future iteration). |
Here is the test scene I've been working with in case you want to take a look at the sdk API and usage for these new components: decentraland/sdk7-test-scenes#13 |
one can always make an infinite area, then it is exactly the same as using a central component. adding a separate way to control the camera for cinematic cameras only seems confusing to me. cinematic cams and forced 1st/3rd-person cams can't operate at the same time, so why not use the same mechanism for specifying them both? then, if we started today, it might be better to not use cameraModeArea and use a global component. but given that we have the cameraModeArea already i would say it's better to extend it (or perhaps deprecate it entirely and put all the functionality into a global component). |
For content creators having both VirtualCamera & MainCamera is really useful and easy to use. If you see pravus scene-templates is quite intuitive how they work, and they have tons of possibilities. I wont change them for a single PBCameraModeArea.. Whats the main reason on changing the whole approach of this PR for your already-supported implementation ? For the not supported capabilties, we can re-iterate them in the future, is out of our scope now, and can be added later. Also in the future if we want to change the lookAt to a PbLookAt component, (because there are more use cases that we want), we can deprecated that property, and start using that component, but using a Billboarcd component is way more complex and for now we don't want those features. There is no need to do all it now, maybe with this aproach we are good enough, and its all that we need. It doesnt have to be perfect and cover all the cases that we may not use. |
I'm merging this PR that adds In future iterations we can for sure enrich these components by not only adding the Foundation's planned extensions (camera transition overrides in For next features we'll try to review deeper the potential protocol changes during features design, taking advantage of the weekly meeting between both teams, to try and reach a stronger agreement and also add value as a joint effort from both sides. |
Introduces the following components:
MainCamera
: put by the Explorer on initialization on the Camera entity (as it's done with other components likePBCameraMode
orPBPointerLock
etc.)VirtualCamera
Example usage can be seen in a dedicated test scene using the SDK at: decentraland/sdk7-test-scenes#13
Related PRs: