API

The C++ code of the plugin is documented with doxygen. You can generate the API document with cd docs/doxygen; doxygen. An online version is hosted in here.

Python

The python client

UnrealCV === Provides functions to interact with games built using Unreal Engine.

>>> import unrealcv
>>> (HOST, PORT) = ('localhost', 9000)
>>> client = unrealcv.Client((HOST, PORT))
class unrealcv.Client(endpoint, message_handler=None)

Client can be used to send request to a game and get response Currently only one client is allowed at a time More clients will be rejected

request(message, timeout=5)

Send a request to server and wait util get a response from server or timeout.

Parameters — cmd : string, command to control the game More info can be seen from http://unrealcv.github.io/commands.html

Returns — response: plain text message from server

Examples — >>> client = Client(‘localhost’, 9000) >>> client.connect() >>> response = client.request(‘vget /camera/0/view’)

class unrealcv.BaseClient(endpoint, raw_message_handler)

BaseClient send message out and receiving message in a seperate thread. After calling the send function, only True or False will be returned to indicate whether the operation was successful. If you are trying to send a request and get a response, consider using Client instead. This class adds message framing on top of TCP

connect(timeout=1)

Try to connect to server, return whether connection successful

send(message)

Send message out, return whether the message was successfully sent

MATLAB

The matlab client

Core

FUE4CVServer uses FCommandDispatcher to execute commands. All CommandHandlers are registered.

class FUE4CVServer

UnrealCV server to interact with external programs.

Inherits from FTickableGameObject

Public Functions

void SendClientMessage(FString Message)

Send a string message to connected clients.

APawn *GetPawn()

Return the Pawn of this game.

Only available during game play.

virtual void Tick(float DeltaTime)

Implement ticking function of UE4CVServer itself.

void RegisterCommandHandlers()

For UnrealCV server, when a game start:

  1. Start a TCPserver.
  2. Create a command dispatcher
  3. Add command handler to command dispatcher, CameraHandler should be able to access camera
  4. Bind command dispatcher to TCPserver
  5. Bind command dispatcher to UE4 console

When a new pawn is created.

  1. Update this pawn with GTCaptureComponent

bool InitWorld()

Make sure UE4CVServer correctly initialized itself in the GameWorld.

Make sure the UE4CVServer is correctly configured.

UWorld *GetGameWorld()

Return the GameWorld of the editor or of the game.

Public Members

FCommandDispatcher *CommandDispatcher

The CommandDispatcher to handle a pending request.

FServerConfig Config

The config of UE4CVServer.

UNetworkManager *NetworkManager

The underlying class to handle network connection, ip and port are configured here.

Public Static Functions

FUE4CVServer &Get()

Get the singleton.

Warning

doxygenclass: Cannot find class “UNetworkManager” in doxygen xml output for project “unrealcv” from directory: ./doxygen/xml/

class FExecStatus

Present the return value of a command.

If the FExecStatusType is pending, check the promise value.

class FPromise

Return by async task, used to check status to see whether the task is finished.

class FCommandDispatcher

Engine to execute commands.

class FAsyncWatcher

Inherits from FRunnable

The execution result of a command

Basic

class AUE4CVPawn

UE4CVPawn can move freely in the 3D space.

Inherits from ADefaultPawn

class AUE4CVCharacter

UE4CVCharacter acts like a walking human.

Inherits from ACharacter

class AUE4CVGameMode

Inherits from AGameMode

class FServerConfig

API

class FCommandDispatcher

Engine to execute commands.

class FCommandHandler

Subclassed by FActionCommandHandler, FAliasCommandHandler, FCameraCommandHandler, FObjectCommandHandler, FPluginCommandHandler

class FActionCommandHandler

Inherits from FCommandHandler

class FAliasCommandHandler

Inherits from FCommandHandler

class FCameraCommandHandler

Inherits from FCommandHandler

class FObjectCommandHandler

Inherits from FCommandHandler

class FPluginCommandHandler

Inherits from FCommandHandler