Skip to content
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

Ability to spawn/destroy lights and control light parameters #3991

Merged
merged 10 commits into from
Nov 11, 2021

Conversation

saihv
Copy link
Contributor

@saihv saihv commented Aug 28, 2021

About

This PR adds the ability to spawn blueprints in the world along with static mesh actors. Additionally, it introduces a couple of sample blueprint wrappers for a Point light and a Spot light, and allows spawning or destroying them - which could be useful for dynamic changes in indoor environments. This method of control wraps the lights in a blueprint (see Content/Blueprints/Lights) that allows for spawning as well as easier, extensible control.

The main thing to note is that to be able to use this API, the light being targeted should be a blueprint.

A new API function simSetLightIntensity() allows for changing the brightness of the lights. Example usage of the entire pipeline can be seen in PythonClient/environment/light_control.py

  • Ability to spawn blueprints
  • Brightness control
  • Color control
  • Unity placeholder API

How Has This Been Tested?

Drag Blueprints/Lights/PointLightBP.uasset into any world (e.g. Blocks), and then run PythonClient/environment/light_control.py

Video:

2021-08-27.18-58-19-1.mp4

@saihv saihv changed the title Ability to spawn/destroy lights and control brightness Ability to spawn/destroy lights and control light parameters Aug 28, 2021
Copy link
Contributor

@rajat2004 rajat2004 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm making almost the same changes in spawnObject in #3940 😆 (apart from the is_blueprint)
The API needs to be added in RpcLibClientBase and Unity files also

AirLib/include/api/WorldSimApiBase.hpp Outdated Show resolved Hide resolved
PythonClient/environment/light_control.py Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Show resolved Hide resolved
PythonClient/airsim/client.py Show resolved Hide resolved
PythonClient/environment/light_control.py Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@zimmy87 zimmy87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some style comments

Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
Unreal/Plugins/AirSim/Source/WorldSimApi.cpp Outdated Show resolved Hide resolved
address feedback from rajat2004
response to feedback from rajat2004
recreate PointLightBP.uasset & SpotLightBP.uasset so they're compatible with UE 4.25
respond to feedback from zimmy87
adding stub for new setLightIntensity API
@LolkerXD
Copy link

😂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants