Skip to content
Snippets Groups Projects
Commit 10f96efe authored by Patrick Nossol's avatar Patrick Nossol
Browse files

Added support for maps without SPectatorCam, Widgets

parent 9b73b123
No related branches found
No related tags found
No related merge requests found
......@@ -55,7 +55,7 @@ void AMCController::BeginPlay() {
USteamVRInputDeviceFunctionLibrary::SetCurlsAndSplaysState(true, true);
}
if (!UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayEnabled()) {
if (SpectatorCam && !UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayEnabled()) {
Pawn->VRCamera->SetWorldLocation(SpectatorCam->GetActorLocation());
Pawn->VRCamera->SetWorldRotation(SpectatorCam->GetActorRotation());
}
......@@ -153,8 +153,10 @@ void AMCController::SaveToAnimMode() {
//AnimSaveState.Pawn->Destroy();
AnimSaveState = FAnimSaveState();
if (InstructionWidget) {
InstructionWidget->FeedbackText->SetText(FText::FromString("Saved!"));
InstructionWidget->WidgetSwitcher->SetActiveWidgetIndex(InstructionWidget->StartIndex);
}
if (GEngine) {
GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Green, FString::Printf(TEXT("Animation Saved!")));
}
......@@ -626,7 +628,7 @@ bool AMCController::PreprocessRecording() {
int amount = 0;
int start = 0;
for (int i = 0; i < AnimSaveState.AnimData.Num() && LockFeet; i++) {
for (int i = 0; i < AnimSaveState.AnimData.Num() && LockFeet && LeftFootPlane && RightFootPlane; i++) {
FProcessedAnimData& AnimData = AnimSaveState.AnimData[i];
......@@ -720,8 +722,10 @@ void AMCController::InputNextFrame() {
AI->SnapshotAnimations.Last().StartTime = Entry.Timestamp;
AnimSaveState.CurrentMarker++;
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString("Converting Anim " + FString::FromInt(AnimSaveState.CurrentMarker) + "..."));
}
}
else { // if (Type == "End")
AnimSaveState.CurrentEntryIndex++;
stop = true;
......@@ -744,8 +748,9 @@ void AMCController::InputNextFrame() {
AnimSaveState.WaitForAnimInstance = true;
}
if (FeedbackWidget) {
FeedbackWidget->ProgBar->SetPercent((float)AnimSaveState.CurrentEntryIndex / (float)AnimSaveState.AnimData.Num());
}
}
......@@ -756,8 +761,9 @@ void AMCController::InputNextFrame() {
void AMCController::SaveAnimSnapshots() {
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString("Saving anim data to asset files..."));
}
const TArray<FSnapshotAnimations>& Anims = AnimSaveState.Pawn->GetAnimInstance()->SnapshotAnimations;
FString FolderName;
......@@ -792,8 +798,10 @@ void AMCController::SaveAnimSnapshots() {
AnimSaveState.AnimSequences.Add(AnimSequence);
}
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString("Done!"));
FeedbackWidget->ProgBar->SetPercent(1);
}
}
......@@ -1087,7 +1095,7 @@ void AMCController::ToggleRecording() {
LogHandler.NewLog("DataLog" + FString::FromInt(CurRecordingInSession));
LogHandler.StartRecording();
Pawn->CalcSensorOffsets(LogHandler, UseLastOffsets, DebugMode);
if (DebugMode) {
if (DebugMode || KeepPawnVisible) {
Pawn->SetMeshVisibility(true);
}
else {
......@@ -1096,13 +1104,17 @@ void AMCController::ToggleRecording() {
AnimSaveState.CurrentMarker = 0;
if (InstructionWidget) {
InstructionWidget->WidgetSwitcher->SetActiveWidgetIndex(InstructionWidget->RecordIndex);
}
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString("Press 'SetMarker' to begin!"));
FeedbackWidget->RecordingStateText->SetColorAndOpacity(FSlateColor(FLinearColor::White));
FeedbackWidget->SensorBox->SetVisibility(ESlateVisibility::Visible);
FeedbackWidget->AnimNameText->SetText(FText::FromString(NameOfRecording));
FeedbackWidget->ProgBar->SetVisibility(ESlateVisibility::Hidden);
}
}
else {
if (!KeepPawnInvisible) {
Pawn->SetMeshVisibility(true);
......@@ -1113,19 +1125,25 @@ void AMCController::ToggleRecording() {
LogHandler.CopyLogToRecordings(NameOfRecording);
if (OldName != NameOfRecording) {
if (InstructionWidget) {
InstructionWidget->FeedbackText->SetText(FText::FromString("Recording Done!\nNameOfRecording changed to " + NameOfRecording));
}
if (OutputMsgOnScreen) {
GEngine->AddOnScreenDebugMessage(-1, 30.0f, FColor::Yellow, FString::Printf(TEXT("NameOfRecording changed to %s. If you want to use this recording in future play sessions, please update the property on MCController."), *NameOfRecording));
}
}
if (InstructionWidget) {
InstructionWidget->FeedbackText->SetText(FText::FromString("Recording Done!"));
InstructionWidget->WidgetSwitcher->SetActiveWidgetIndex(InstructionWidget->StartIndex);
}
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString(""));
FeedbackWidget->SensorBox->SetVisibility(ESlateVisibility::Hidden);
FeedbackWidget->LeftFingerText->SetText(FText::FromString(""));
FeedbackWidget->RightFingerText->SetText(FText::FromString(""));
FeedbackWidget->AnimNameText->SetText(FText::FromString(""));
}
CurRecordingInSession++;
}
......@@ -1144,10 +1162,12 @@ void AMCController::SetMarker() {
if (IsRecording) {
AnimSaveState.CurrentMarker++;
LogHandler.SetMarker();
if (FeedbackWidget) {
FeedbackWidget->RecordingStateText->SetText(FText::FromString("Recording Anim " + FString::FromInt(AnimSaveState.CurrentMarker)));
FeedbackWidget->RecordingStateText->SetColorAndOpacity(FSlateColor(FLinearColor::Yellow));
}
}
}
void AMCController::SaveAnimation() {
......@@ -1191,14 +1211,18 @@ void AMCController::SaveAnimation() {
PathSaved = PathSaved + "/DataLog.log";
}
if (InstructionWidget) {
InstructionWidget->WidgetSwitcher->SetActiveWidgetIndex(InstructionWidget->SavingIndex);
}
if (GEngine) {
GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Green, FString::Printf(TEXT("Saving Animation...")));
}
if (FeedbackWidget) {
FeedbackWidget->ProgBar->SetVisibility(ESlateVisibility::Visible);
FeedbackWidget->ProgBar->SetPercent(0);
FeedbackWidget->AnimNameText->SetText(FText::FromString(NameOfRecording));
}
FFileHelper::LoadFileToStringArray(AnimSaveState.StringData, *PathSaved);
......
......@@ -52,16 +52,15 @@ class MOCAPPLUGIN_API AMCController : public AActor
{
GENERATED_BODY()
protected:
public:
bool DebugMode = false;
bool UseLastOffsets = false;
bool SetControls = true;
bool KeepPawnInvisible = false;
bool KeepPawnVisible = false;
bool OutputMsgOnScreen = true;
public:
AMCController();
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
......@@ -73,9 +72,6 @@ public:
virtual void Tick(float DeltaTime) override;
protected:
UFUNCTION(BlueprintCallable)
void ToggleRecording();
......@@ -94,6 +90,8 @@ protected:
UFUNCTION(BlueprintCallable)
void FinishEditAnim();
protected:
void RecordMode();
void SaveToAnimMode();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment