Files
FunnyGirl/Plugins/VRM4U/Source/VRM4UCapture/Public/VRM4U_VMCSubsystem.h
T
2026-05-19 13:42:41 +07:00

56 lines
1.4 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Subsystems/EngineSubsystem.h"
#include "Misc/EngineVersionComparison.h"
#include "UObject/StrongObjectPtr.h"
#include "OSCServer.h"
#include "VrmVMCObject.h"
#include "VRM4U_VMCSubsystem.generated.h"
#if UE_VERSION_OLDER_THAN(4,22,0)
//Couldn't find parent type for 'VRM4U_AnimSubsystem' named 'UEngineSubsystem'
#error "please remove VRM4U_AnimSubsystem.h/cpp for <=UE4.21"
#endif
UCLASS()
class VRM4UCAPTURE_API UVRM4U_VMCSubsystem : public UEngineSubsystem
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = VRM4U)
bool CreateVMCServer(const FString ServerAddress, int port);
void ClearData(const FString ServerAddress, int port);
UFUNCTION(BlueprintCallable, Category = VRM4U)
void DestroyVMCServer(const FString ServerAddress, int port);
UFUNCTION(BlueprintCallable, Category = VRM4U)
void DestroyVMCServerAll();
UVrmVMCObject* FindOrAddServer(const FString ServerAddress, int port);
TArray< TStrongObjectPtr<UVrmVMCObject> > VMCObjectList;
bool CopyVMCData(FVMCData& DstData, FString ServerAddress, int port);
UFUNCTION(BlueprintCallable, Category = VRM4U)
bool GetVMCData(TMap<FString, FTransform> &BoneData, TMap<FString, float> &CurveData, FString ServerAddress, int port);
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
private:
};