Пример #1
0
        public static void OnBeginPlay()
        {
            Debug.Log(LogLevel.Display, "Hello, Unreal Engine!");
            Debug.AddOnScreenMessage(-1, 3.0f, Color.LightGreen, MethodBase.GetCurrentMethod().DeclaringType + " system started!");

            World.GetFirstPlayerController().SetViewTarget(World.GetActor <Camera>("MainCamera"));

            Actor kachujin = new Actor("Kachujin");
            SkeletalMeshComponent kachujinSkeletalMeshComponent = new SkeletalMeshComponent(kachujin);
            SkeletalMesh          kachujinSkeletalMesh          = SkeletalMesh.Load("/Game/Tests/Characters/Kachujin/SkeletalMesh");

            kachujinSkeletalMeshComponent.SetSkeletalMesh(kachujinSkeletalMesh);
            kachujinSkeletalMeshComponent.SetWorldLocation(new Vector3(-70.0f, -100.0f, -700.0f));
            kachujinSkeletalMeshComponent.SetWorldRotation(Maths.Euler(0.0f, 90.0f, 0.0f));
            kachujinSkeletalMeshComponent.SetAnimationMode(AnimationMode.Asset);
            kachujinSkeletalMeshComponent.PlayAnimation(AnimationSequence.Load("/Game/Tests/Characters/Kachujin/AnimationSequenceSwordSwing"), true);

            Actor ganfault = new Actor("Ganfault");
            SkeletalMeshComponent ganfaultSkeletalMeshComponent = new SkeletalMeshComponent(ganfault);
            SkeletalMesh          ganfaultSkeletalMesh          = SkeletalMesh.Load("/Game/Tests/Characters/Ganfault/SkeletalMesh");

            ganfaultSkeletalMeshComponent.SetSkeletalMesh(ganfaultSkeletalMesh);
            ganfaultSkeletalMeshComponent.SetWorldLocation(new Vector3(70.0f, -100.0f, -700.0f));
            ganfaultSkeletalMeshComponent.SetWorldRotation(Maths.Euler(0.0f, 90.0f, 0.0f));
            ganfaultSkeletalMeshComponent.SetAnimationMode(AnimationMode.Asset);
            ganfaultSkeletalMeshComponent.PlayAnimation(AnimationMontage.Load("/Game/Tests/Characters/Ganfault/AnimationMontage"), true);
        }
Пример #2
0
            internal static unsafe void Invoke(IntPtr obj, SkeletalMeshComponent InComponentToCopy)
            {
                long *p = stackalloc long[] { 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = InComponentToCopy;
                Main.GetProcessEvent(obj, CopyPoseFromSkeletalComponent_ptr, new IntPtr(p));;
            }
        }
Пример #3
0
 public BlueprintsExtensibility()
 {
     blueprintActor          = Blueprint.Load("/Game/Tests/BlueprintActor");
     blueprintSceneComponent = Blueprint.Load("/Game/Tests/BlueprintSceneComponent");
     actor                 = new Actor(blueprint: blueprintActor);
     sceneComponent        = new SceneComponent(actor, blueprint: blueprintSceneComponent);
     levelScript           = World.GetActor <LevelScript>();
     skeletalMeshComponent = actor.GetComponent <SkeletalMeshComponent>();
     animationInstance     = skeletalMeshComponent.GetAnimationInstance();
 }
Пример #4
0
            internal static unsafe Vector Invoke(IntPtr obj, SkeletalMeshComponent SkelComp)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = SkelComp;
                Main.GetProcessEvent(obj, GetSocketLocation_ptr, new IntPtr(p));;
                return(*((Vector *)(b + 8)));
            }
        }
Пример #5
0
            internal static unsafe void Invoke(IntPtr obj, SkeletalMeshComponent SkelComp, Vector WorldLocation, Vector WorldNormal)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0))  = SkelComp;
                *((Vector *)(b + 8))  = WorldLocation;
                *((Vector *)(b + 20)) = WorldNormal;
                Main.GetProcessEvent(obj, InitializeSocketFromLocation_ptr, new IntPtr(p));;
            }
        }
Пример #6
0
            internal static unsafe Vector Invoke(SkeletalMeshComponent Component, Name SocketOrBoneNameFrom, Name SocketOrBoneNameTo)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = Component;
                *((Name *)(b + 8))   = SocketOrBoneNameFrom;
                *((Name *)(b + 20))  = SocketOrBoneNameTo;
                Main.GetProcessEvent(KismetAnimationLibrary.DefaultObject, K2_DirectionBetweenSockets_ptr, new IntPtr(p));;
                return(*((Vector *)(b + 32)));
            }
        }
Пример #7
0
            internal static unsafe PlayMontageCallbackProxy Invoke(SkeletalMeshComponent InSkeletalMeshComponent, AnimMontage MontageToPlay, float PlayRate, float StartingPosition, Name StartingSection)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = InSkeletalMeshComponent;
                *((IntPtr *)(b + 8)) = MontageToPlay;
                *((float *)(b + 16)) = PlayRate;
                *((float *)(b + 20)) = StartingPosition;
                *((Name *)(b + 24))  = StartingSection;
                Main.GetProcessEvent(PlayMontageCallbackProxy.DefaultObject, CreateProxyObjectForPlayMontage_ptr, new IntPtr(p));;
                return(*((IntPtr *)(b + 40)));
            }
        }
Пример #8
0
            internal static unsafe float Invoke(SkeletalMeshComponent Component, Name SocketOrBoneNameA, byte SocketSpaceA, Name SocketOrBoneNameB, byte SocketSpaceB, bool bRemapRange, float InRangeMin, float InRangeMax, float OutRangeMin, float OutRangeMax)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((IntPtr *)(b + 0)) = Component;
                *((Name *)(b + 8))   = SocketOrBoneNameA;
                *(b + 20)            = SocketSpaceA;
                *((Name *)(b + 24))  = SocketOrBoneNameB;
                *(b + 36)            = SocketSpaceB;
                *((bool *)(b + 37))  = bRemapRange;
                *((float *)(b + 40)) = InRangeMin;
                *((float *)(b + 44)) = InRangeMax;
                *((float *)(b + 48)) = OutRangeMin;
                *((float *)(b + 52)) = OutRangeMax;
                Main.GetProcessEvent(KismetAnimationLibrary.DefaultObject, K2_DistanceBetweenTwoSocketsAndMapRange_ptr, new IntPtr(p));;
                return(*((float *)(b + 56)));
            }
        }
Пример #9
0
        public static void OnBeginPlay()
        {
            Debug.AddOnScreenMessage(-1, 3.0f, Color.LightGreen, MethodBase.GetCurrentMethod().DeclaringType + " system started!");

            World.GetFirstPlayerController().SetViewTarget(World.GetActor <Camera>("MainCamera"));

            SkeletalMesh prototypeMesh = SkeletalMesh.Load("/Game/Tests/Characters/Prototype");

            Actor leftPrototype = new Actor("leftPrototype");
            SkeletalMeshComponent leftSkeletalMeshComponent = new SkeletalMeshComponent(leftPrototype);

            leftSkeletalMeshComponent.SetSkeletalMesh(prototypeMesh);
            leftSkeletalMeshComponent.SetWorldLocation(new Vector3(-700.0f, -70.0f, -100.0f));
            leftSkeletalMeshComponent.SetWorldRotation(Maths.Euler(0.0f, 0.0f, 90.0f));
            leftSkeletalMeshComponent.SetAnimationMode(AnimationMode.Asset);
            leftSkeletalMeshComponent.PlayAnimation(AnimationSequence.Load("/Game/Tests/Characters/Animations/IdleAnimationSequence"), true);

            Assert.IsTrue(leftSkeletalMeshComponent.IsPlaying);
            Assert.IsTrue(leftSkeletalMeshComponent.GetBoneName(0) == "root");

            Actor rightPrototype = new Actor("rightPrototype");
            SkeletalMeshComponent rightSkeletalMeshComponent = new SkeletalMeshComponent(rightPrototype);

            rightSkeletalMeshComponent.SetSkeletalMesh(prototypeMesh);
            rightSkeletalMeshComponent.SetWorldLocation(new Vector3(-700.0f, 70.0f, -100.0f));
            rightSkeletalMeshComponent.SetWorldRotation(Maths.Euler(0.0f, 0.0f, 90.0f));
            rightSkeletalMeshComponent.SetAnimationMode(AnimationMode.Asset);
            rightSkeletalMeshComponent.CreateAndSetMaterialInstanceDynamic(0).SetVectorParameterValue("AccentColor", new LinearColor(0.0f, 0.5f, 1.0f));

            AnimationMontage rightPrototypeAnimationMontage = AnimationMontage.Load("/Game/Tests/Characters/Animations/RunAnimationMontage");

            rightSkeletalMeshComponent.PlayAnimation(rightPrototypeAnimationMontage, true);

            AnimationInstance rightPrototypeAnimationInstance = rightSkeletalMeshComponent.GetAnimationInstance();

            Assert.IsTrue(rightPrototypeAnimationInstance.IsPlaying(rightPrototypeAnimationMontage));
            Assert.IsTrue(rightSkeletalMeshComponent.GetBoneName(0) == "root");
        }
Пример #10
0
 internal bool on_Received_NotifyBegin(SkeletalMeshComponent MeshComp, AnimSequenceBase Animation, float TotalDuration, bool ReturnValue) =>
 Received_NotifyBegin != null?Received_NotifyBegin(MeshComp, Animation, TotalDuration, ReturnValue) : ReturnValue;
Пример #11
0
 internal ParticleSystem on_OverridePSTemplate(SkeletalMeshComponent MeshComp, AnimSequenceBase Animation, ParticleSystem ReturnValue) =>
 OverridePSTemplate != null?OverridePSTemplate(MeshComp, Animation, ReturnValue) : ReturnValue;
Пример #12
0
 ///<summary>Sets BoneName, RelativeLocation and RelativeRotation based on closest bone to WorldLocation and WorldNormal</summary>
 public void InitializeSocketFromLocation(SkeletalMeshComponent SkelComp, Vector WorldLocation, Vector WorldNormal) =>
 SkeletalMeshSocket_methods.InitializeSocketFromLocation_method.Invoke(ObjPointer, SkelComp, WorldLocation, WorldNormal);
Пример #13
0
 ///<summary>Get Socket Location</summary>
 public Vector GetSocketLocation(SkeletalMeshComponent SkelComp) =>
 SkeletalMeshSocket_methods.GetSocketLocation_method.Invoke(ObjPointer, SkelComp);
Пример #14
0
 ///<summary>Copy Pose from Skeletal Component</summary>
 public void CopyPoseFromSkeletalComponent(SkeletalMeshComponent InComponentToCopy) =>
 PoseableMeshComponent_methods.CopyPoseFromSkeletalComponent_method.Invoke(ObjPointer, InComponentToCopy);
Пример #15
0
 ///<summary>K2 Distance Between Two Sockets and Map Range</summary>
 public static float K2_DistanceBetweenTwoSocketsAndMapRange(SkeletalMeshComponent Component, Name SocketOrBoneNameA, byte SocketSpaceA, Name SocketOrBoneNameB, byte SocketSpaceB, bool bRemapRange, float InRangeMin, float InRangeMax, float OutRangeMin, float OutRangeMax) =>
 KismetAnimationLibrary_methods.K2_DistanceBetweenTwoSocketsAndMapRange_method.Invoke(Component, SocketOrBoneNameA, SocketSpaceA, SocketOrBoneNameB, SocketSpaceB, bRemapRange, InRangeMin, InRangeMax, OutRangeMin, OutRangeMax);
Пример #16
0
 internal bool on_Received_Notify(SkeletalMeshComponent MeshComp, AnimSequenceBase Animation, bool ReturnValue) =>
 Received_Notify != null?Received_Notify(MeshComp, Animation, ReturnValue) : ReturnValue;
Пример #17
0
        public SkeletalMeshActor()
        {
            SkeletalMeshComponent = new SkeletalMeshComponent(Vector3.Zero);

            AttachComponent(SkeletalMeshComponent);
        }
Пример #18
0
 internal bool on_Received_NotifyTick(SkeletalMeshComponent MeshComp, AnimSequenceBase Animation, float FrameDeltaTime, bool ReturnValue) =>
 Received_NotifyTick != null?Received_NotifyTick(MeshComp, Animation, FrameDeltaTime, ReturnValue) : ReturnValue;
Пример #19
0
 ///<summary>Called to perform the query internally</summary>
 public static PlayMontageCallbackProxy CreateProxyObjectForPlayMontage(SkeletalMeshComponent InSkeletalMeshComponent, AnimMontage MontageToPlay, float PlayRate, float StartingPosition, Name StartingSection) =>
 PlayMontageCallbackProxy_methods.CreateProxyObjectForPlayMontage_method.Invoke(InSkeletalMeshComponent, MontageToPlay, PlayRate, StartingPosition, StartingSection);
Пример #20
0
 ///<summary>Sets the skeletal mesh we are driving through physical animation. Will erase any existing physical animation data.</summary>
 public void SetSkeletalMeshComponent(SkeletalMeshComponent InSkeletalMeshComponent) =>
 PhysicalAnimationComponent_methods.SetSkeletalMeshComponent_method.Invoke(ObjPointer, InSkeletalMeshComponent);
Пример #21
0
 ///<summary>K2 Direction Between Sockets</summary>
 public static Vector K2_DirectionBetweenSockets(SkeletalMeshComponent Component, Name SocketOrBoneNameFrom, Name SocketOrBoneNameTo) =>
 KismetAnimationLibrary_methods.K2_DirectionBetweenSockets_method.Invoke(Component, SocketOrBoneNameFrom, SocketOrBoneNameTo);