zoukankan      html  css  js  c++  java
  • UE4 Custom Animation Blueprint node 自定义动画蓝图节点

      部分内容参考:https://www.cnblogs.com/corgi/p/5405453.html

      本文章地址:https://www.cnblogs.com/LynnVon/p/13334523.html

      当我按照文章做完之后,editor模式下完全没问题,Standalone模式下也没问题,就是shipping、Development打包时,报以下错误:Non-editor build cannot depend on non-redistributable modules。

      这是由于AnimGraphNode_SkeletalControlBase.h或者说AnimGraphNode所在的AnimGraph Module是Editor Module,Editor Module是不能shipping打包的,只有Runtime Module才可以shipping打包。

      解决思路是将所有自定义AnimGraphNode全部放到Editor Module,而我们的项目默认只有Runtime Module,所以得新建一个Editor Module。

      1.修改.uproject文件,添加Editor Module

     "Modules": [
        {
          "Name": "FlightSim",
          "Type": "Runtime",
          "LoadingPhase": "Default",
          "AdditionalDependencies": [
            "Engine",
            "UMG",
            "CoreUObject"
          ]
        },
        {
          "Name": "FlightSimEditor",
          "Type": "Editor",
          "LoadingPhase": "Default",
          "AdditionalDependencies": [
            "Engine",
            "CoreUObject"
          ]
        }
      ]
    

      2.在source文件夹新建FlightSimEditor文件夹

      

      3.在FlightSimEditor文件夹新建FlightSimEditor.Build.cs、FlightSimEditor.h、FlightSimEditor.cpp文件

      

      FlightSimEditor.Build.cs  

    using UnrealBuildTool;
    
    public class FlightSimEditor : ModuleRules
    {
        public FlightSimEditor(ReadOnlyTargetRules Target) : base(Target)
        {
            PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
            
            PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject",
                "Engine","AnimGraph","BlueprintGraph","FlightSim"});  //添加AnimGraph BlueprintGraph模块,还有本项目的runtime module FlightSim
         
        }
    }
    

      FlightSimEditor.h

    #pragma once
    
    #include "Engine.h"
    #include "ModuleManager.h"
    #include "UnrealEd.h"
    
    class FFlightSimEditorModule:public IModuleInterface
    {
    
    };
    

      FlightSimEditor.cpp

    #include "FlightSimEditor.h"
    
    IMPLEMENT_GAME_MODULE(FFlightSimEditorModule,FlightSimEditor)
    

      

      4.在原FlightSim文件夹中新建FlightSimEditor.Target.cs文件

      

      FlightSimEditor.Target.cs

    using UnrealBuildTool;
    using System.Collections.Generic;
    
    public class FlightSimEditorTarget : TargetRules
    {
    	public FlightSimEditorTarget(TargetInfo Target) : base(Target)
    	{
    		Type = TargetType.Editor;
    
    		ExtraModuleNames.AddRange( new string[] { "FlightSim" ,"FlightSimEditor"} );
    	}
    }
    

      

      5.在FlightSim.Build.cs添加AnimGraphRuntime Module

      FlightSim.Build.cs 

    using UnrealBuildTool;
    
    public class FlightSim : ModuleRules
    {
        public FlightSim(ReadOnlyTargetRules Target) : base(Target)
        {
            PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
            bEnableExceptions = true;
            PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject",
                "Engine", "InputCore", "Http", "Json", "JsonUtilities",
                "CryptoPP","OnlineSubsystemUtils", "EasyFM" ,
                "HeadMountedDisplay","Landscape" ,"RenderCore",
                "AnimGraphRuntime"});//添加AnimGraphRuntime
    PrivateDependencyModuleNames.AddRange(new string[] { "ImageWrapper", }); // Uncomment if you are using Slate UI PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

      6.将自定义的AnimGraphNode置于FlightSimEditor Module下,在Editor时加载,Runtime时不加载(打包)

      7.完成,shipping打包,ok

  • 相关阅读:
    第一章(认识jQuery)
    csv、txt读写及模式介绍
    命令行参数
    WebDriverWait等设置等待时间和超时时间
    js加载页面使用execute_script选定加载位置
    pip镜像源配置
    python字符编码
    scrapy设置代理
    urllib2设置代理
    禁止chrome自动更新
  • 原文地址:https://www.cnblogs.com/LynnVon/p/13334523.html
Copyright © 2011-2022 走看看