Exemple #1
0
    def _default_observation(self, obs_spec, agent_index):
        """Returns a mock observation from an SC2Env."""

        builder = dummy_observation.Builder(obs_spec).game_loop(0)
        aif = self._agent_interface_formats[agent_index]
        if aif.use_feature_units or aif.use_raw_units:
            feature_units = [
                dummy_observation.FeatureUnit(
                    units.Neutral.LabBot,
                    features.PlayerRelative.NEUTRAL,
                    owner=16,
                    pos=common_pb2.Point(x=10, y=10, z=0),
                    radius=1.0,
                    health=5,
                    health_max=5,
                    is_on_screen=True,
                )
            ]

            builder.feature_units(feature_units)

        response_observation = builder.build()
        features_ = self._features[agent_index]
        observation = features_.transform_obs(response_observation)

        # Add bounding box for the minimap camera in top left of feature screen.
        if 'feature_minimap' in observation:
            minimap_camera = observation.feature_minimap.camera
            minimap_camera.fill(0)
            height, width = [dim // 2 for dim in minimap_camera.shape]
            minimap_camera[:height, :width].fill(1)

        return observation
Exemple #2
0
 def setUp(self):
     self._features = features.Features(features.AgentInterfaceFormat(
         feature_dimensions=features.Dimensions(screen=(64, 60),
                                                minimap=(32, 28)),
         rgb_dimensions=features.Dimensions(screen=(128, 124),
                                            minimap=(64, 60)),
         action_space=actions.ActionSpace.FEATURES,
         use_feature_units=True),
                                        map_size=point.Point(256, 256))
     self._obs_spec = self._features.observation_spec()
     self._builder = dummy_observation.Builder(self._obs_spec)
Exemple #3
0
    def _default_observation(self, obs_spec, agent_index):
        """Returns a mock observation from an SC2Env."""

        response_observation = dummy_observation.Builder(obs_spec).build()
        features_ = self._features[agent_index]
        observation = features_.transform_obs(response_observation)

        # Add bounding box for the minimap camera in top left of feature screen.
        if 'feature_minimap' in observation:
            minimap_camera = observation.feature_minimap.camera
            minimap_camera.fill(0)
            height, width = [dim // 2 for dim in minimap_camera.shape]
            minimap_camera[:height, :width].fill(1)

        return observation