Hi all,
I try do create a custom pawn extension Class into my module
Source/DxyzPrevizClientModule/Classes/DxyzPawn.h
enter code here
#pragma once
#include "GameFramework/Pawn.h"
#include "DxyzPawn.generated.h"
USTRUCT()
struct FacialController
{
GENERATED_USTRUCT_BODY()
UPROPERTY()
uint32 type;
/*SkelControlSingleBone node;
MorphNodePose morph;*/
};
UCLASS(config = Game)
class ADxyzPawn : public APawn
{
GENERATED_UCLASS_BODY()
/*
public:
virtual void initSingleBoneControllers(TArray<int> types, TArray<string> names) = 0;
virtual void updateSingleBoneControllers(TArray<float> floats) = 0;
public:
virtual ~ADxyzPawn ( ) { }
*/
protected:
TArray<FacialController> fControllers;
};
Source/DxyzPrevizClientModule/Private/DxyzPawn.cpp
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "DxyzPrevizClientModulePrivatePCH.h"
ADxyzPawn::ADxyzPawn(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
{
}
Source/DxyzPrevizClientModule/Private/DxyzPrevizClientModulePrivatePCH.h
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "../Public/DxyzPrevizClientModule.h"
/* Private Dependencies
*****************************************************************************/
#include "Core.h"
#include "ModuleManager.h"
#include "Settings.h"
#include "Sockets.h"
#include "SocketSubsystem.h"
#include "CoreUObject.h"
/* Private Constants
*****************************************************************************/
/**
* Defines the default Grabber's animation coefficients server settings.
*/
#define DXYZ_ANIM_COEFF_SERVER_SETTINGS FIPv4Endpoint(FIPv4Address(127, 0, 0, 1), 5559)
/* Private includes
*****************************************************************************/
#include "DxyzPrevizClientSettings.h"
#include "DxyzPrevizClient.h"
#include "DxyzPawn.h"
Source/DxyzPrevizClientModule/DxyzPrevizClientModule.Build.cs
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
using System.IO;
namespace UnrealBuildTool.Rules
{
public class DxyzPrevizClientModule : ModuleRules
{
private string ModulePath
{
get { return Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name)); }
}
private string ThirdPartyPath
{
get { return Path.GetFullPath(Path.Combine(ModulePath, "../../ThirdParty/")); }
}
//constructor
public DxyzPrevizClientModule(TargetInfo Target)
{
PublicDependencyModuleNames.AddRange(
new string[]
{
"Networking"
}
);
PrivateDependencyModuleNames.AddRange(
new string[] {
"Core",
"Engine",
"CoreUObject",
"Sockets"
}
);
PrivateIncludePathModuleNames.AddRange(
new string[] {
"Settings",
}
);
PrivateIncludePaths.AddRange(
new string[] {
"DxyzPrevizClientModule/Private"
}
);
LoadTinyXML(Target);
}
public bool LoadTinyXML(TargetInfo Target)
{
bool isLibrarySupported = false;
if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
{
isLibrarySupported = true;
string PlatformString = (Target.Platform == UnrealTargetPlatform.Win64) ? "x64" : "x86";
string LibrariesPath = Path.Combine(ThirdPartyPath, "tinyxml", "Libraries");
PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "tinyxml." + PlatformString + ".lib"));
}
if (isLibrarySupported)
{
// Include path
PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "tinyxml", "Includes"));
}
Definitions.Add(string.Format("WITH_TINY_XML_BINDING={0}", isLibrarySupported ? 1 : 0));
return isLibrarySupported;
}
}
}
When I try compile, I get this compilation error :
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(12): error C2504: 'UNavMovementComponent' : base class undefined
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(13): error C2146: syntax error : missing ';' before identifier 'Super'
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(16): error C3668: 'UPawnMovementComponent::SetUpdatedComponent' : method with override specifier 'override' did not override any base class methods
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(19): error C3668: 'UPawnMovementComponent::StopMovementImmediately' : method with override specifier 'override' did not override any base class methods
1>c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(66): error C2653: 'Super' : is not a class or namespace name
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(15): error C2504: 'AActor' : base class undefined
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(16): error C2504: 'INavAgentInterface' : base class undefined
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(55): error C2653: 'EAutoReceiveInput' : is not a class or namespace name
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(55): error C2065: 'Type' : undeclared identifier
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(55): error C2923: 'TEnumAsByte' : 'Type' is not a valid template type argument for parameter 'TEnum'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(180): error C2061: syntax error : identifier 'APlayerController'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(182): error C2061: syntax error : identifier 'APlayerController'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(185): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(185): error C2143: syntax error : missing ',' before '&'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(17): error C3668: 'APawn::GetLifetimeReplicatedProps' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(145): error C3668: 'APawn::IsBasedOnActor' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(176): error C3668: 'APawn::GetVelocity' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(177): error C3668: 'APawn::Tick' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(178): error C3668: 'APawn::Reset' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(179): error C3668: 'APawn::GetHumanReadableName' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(180): error C3668: 'APawn::GetNetPriority' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(181): error C3668: 'APawn::ShouldTickIfViewportsOnly' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(182): error C3668: 'APawn::IsNetRelevantFor' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(183): error C3668: 'APawn::PostNetReceiveLocation' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(184): error C3668: 'APawn::PostNetReceiveVelocity' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(185): error C3668: 'APawn::DisplayDebug' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(186): error C3668: 'APawn::GetActorEyesViewPoint' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(187): error C3668: 'APawn::OutsideWorldBounds' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(188): error C3668: 'APawn::Destroyed' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(189): error C3668: 'APawn::PreInitializeComponents' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(190): error C3668: 'APawn::PostInitializeComponents' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(191): error C3668: 'APawn::GetNetOwningPlayer' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(192): error C3668: 'APawn::GetNetConnection' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(193): error C3668: 'APawn::PostInitProperties' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(194): error C3668: 'APawn::PostLoad' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(195): error C3668: 'APawn::PostRegisterAllComponents' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(196): error C3668: 'APawn::TakeDamage' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(197): error C3668: 'APawn::BecomeViewTarget' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(198): error C3668: 'APawn::UpdateNavigationRelevancy' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(199): error C3668: 'APawn::EnableInput' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(200): error C3668: 'APawn::DisableInput' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(203): error C3668: 'APawn::CanBeBaseForCharacter' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(207): error C3668: 'APawn::GetNavAgentProperties' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(210): error C3668: 'APawn::GetNavAgentLocation' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(211): error C3668: 'APawn::GetMoveGoalReachTest' : method with override specifier 'override' did not override any base class methods
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(17): error C2440: 'return' : cannot convert from 'APawn *const ' to 'UObject *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(17): error C2440: 'return' : cannot convert from 'const APawn *const ' to 'const UObject *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(181): error C2665: 'Cast' : none of the 3 overloads could convert all the argument types
1> C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(100): could be 'const T *Cast<APlayerController>(const UObject *)'
1> with
1> [
1> T=APlayerController
1> ]
1> C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(56): or 'T *Cast<APlayerController>(const FSubobjectPtr &)'
1> with
1> [
1> T=APlayerController
1> ]
1> C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(12): or 'T *Cast<APlayerController>(UObject *)'
1> with
1> [
1> T=APlayerController
1> ]
1> while trying to match the argument list '(AController *)'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(198): error C3861: 'SetNavigationRelevancy': identifier not found
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(207): error C2039: 'GetNavAgentProperties' : is not a member of 'UPawnMovementComponent'
1> c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(11) : see declaration of 'UPawnMovementComponent'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(210): error C3861: 'GetActorLocation': identifier not found
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(334): error C2065: 'FindComponentByClass' : undeclared identifier
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(334): error C2275: 'UPawnMovementComponent' : illegal use of this type as an expression
1> c:\program files\unreal engine\4.2\engine\source\runtime\engine\classes\gameframework\PawnMovementComponent.h(11) : see declaration of 'UPawnMovementComponent'
1>C:\Program Files\Unreal Engine\4.2\Engine\Source\Runtime\Engine\Classes\GameFramework/Pawn.h(334): error C2059: syntax error : ')'
1> -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: C:\Users\Dynamixyz\Documents\Unreal Projects\DemoDxyzPlugins\Plugins\DxyzPrevizClientModule\Binaries\Win64\UE4Editor-DxyzPrevizClientModule.dll
1> Cumulative action seconds (8 processors): 0.00 building projects, 6.90 compiling, 0.00 creating app bundles, 0.00 generating debug info, 0.00 linking, 0.00 other
1> UBT execution time: 11.19 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command ""C:\Program Files\Unreal Engine\4.2\Engine\Build\BatchFiles\Rebuild.bat" DemoDxyzPluginsEditor Win64 Development "C:\Users\Dynamixyz\Documents\Unreal Projects\DemoDxyzPlugins\DemoDxyzPlugins.uproject" -rocket" exited with code 2.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Anyone try this before ?