Animation Sharing プラグイン

Choose your operating system:

Windows

macOS

Linux

Animation Sharing (アニメーション共有) プラグインで、アニメーションを共有するシステムを作ることができます。それにより、群衆アクタに必要なアニメーション作業の全体量を減らせます。 マスター ポーズ コンポーネント システムに基づき、Animation Sharing はアニメーション インスタンスが評価されるアニメーション ステート バケットのセットを利用します。 結果のポーズは、バケットの一部であるすべての子コンポーネントに転送されます。

以下の図は、システムの動作の概要を示しています。

クリックして拡大

  1. 個々の群衆アクタ (AActor)

  2. Animation Sharing Setup の一部である UAnimationStateProcessor インスタンス

  3. Animation Sharing Setup を使用して初期化されたランタイム マネージャ

  4. ユーザーが設定したステート (列挙型)

  5. スケルタル メッシュ コンポーネントの形式をとるステートのランタイム表現

  6. アニメーションを子スケルタル メッシュ コンポーネントと共有するために使用されるマスター ポーズ コンポーネント システム

以下のビデオ例では、スケルタル メッシュ コンポーネントを含むブループリントがいくつかのアニメーション ステート間を循環しています。 個々のアクタのグループも表示されます。各アクタのアニメーション ステートは、ブループリントのスケルタル メッシュ コンポーネントのアニメーション ステートに基づいて決定されます。

Animation Sharing プラグインを有効にする

Animation Sharing を使用するには、 [Programming (プログラミング)] セクションの [Edit (編集)] > [Plugins] メニューから Animation Sharing プラグインを有効にする必要があります。

クリックして拡大

プラグインを有効にした後は、エディタを再起動する必要があります。

Animation Sharing Setup アセット

Animation Sharing Setup アセットには、指定されたアクタ間で共有されるすべての情報が含まれています。 Animation カテゴリの下の [Content Browser (コンテンツ ブラウザ) 内に Animation Sharing Setup アセットを作成できます。

AnimSharingSetup.png

Animation Sharing Setup アセット内で、以下のプロパティを定義できます。

NewAnimSharingAsset.png

スケルトン設定

[+] (プラス記号) をクリックすると、対応する設定とともに複数のスケルトンを追加することができます。 これは、アニメーションの共有中にアニメーションによって操作される複数のスケルタルとスケルタル メッシュがある場合に便利です。

プロパティ

説明

Skeleton

レプリケートされるスケルトン アセット。

Animation Sharing Setup は、指定したスケルトンに固有のものです。

Skeletal Mesh

レプリケートされるスケルタル メッシュ。

これはポーズのデバッグにのみ使用されます。

Animation Blueprint for Blending

AnimSharingTransitionInstance の子であるアニメーション ブループリント。

ステート間のブレンドを処理するには、これらのいずれかを作成して設定する必要があります。 さらに、ブレンドが必要になるたびに、これらのうちの 1 つが生成されて実行され、移行を処理するためコストがかかります。

Animation Blueprint for Additive Animation

加算アニメーションに使用される AnimSharingAdditiveInstance の子である、アニメーション ブループリント。

Animation Sharing Setup アセット内で、 アニメーション ステート [On Demand] に設定し、 [Additive] オプションを有効にする必要があります。

State Processor Class

アクタがどのステートにあるかを判断するときに使用するインターフェース クラス。

アニメーション ステートを追加するには、このクラスを設定する必要があります。

Animation States

これは、アクタが存在する可能性のあるすべてのステートを保持する配列です。各ステートはそれ自身のバケットです。

アニメーション ステート

AnimationStateSection.png

スケルトン設定 内の ステート プロセッサ クラス をその中のステートに基づいて定義したら、各 アニメーション ステート に対して次のプロパティを定義できます。

プロパティ

説明

State

配列のどのインデックスに情報を含めるかを定義します。

これはステート プロセッサ クラスおよび割り当てられたアニメーション ステート列挙型から継承されます。

Animation Setups

これにより、ステートごとのアニメーション情報を定義できます。アニメーション情報とは、再生するアニメーション シーケンス、Anim シーケンスの再生に使用するアニメーション ブループリント、(必要であれば) ランダム化されたインスタンスの数、特定のプラットフォームで設定が有効かどうかなどです。

On Demand

このステートがオンデマンドとして分類されているかどうかを表します。つまり、必要に応じて独自のアニメーションを開始できます。 これは、オンデマンド アニメーションごとにユニークなインスタンスを生み出します。

最大値に達すると、最も近いアニメーションにスナップします。

Additive

ステートが加算ステートかどうかを表します。

オンデマンドが有効になっている必要があります。また、ブレンドを処理するために追加のアニメーション ブループリントも必要になります。

Blend Time

ステートにブレンドするときのブレンドの長さ。

Maximum Number Of Concurrent Instances

ステートに対して作成されるインスタンスの数 (プラットフォーム固有)。

Requires Curves

このアニメーションがスレーブ コンポーネントに対して正しく機能するために曲線またはモーフ ターゲットを必要とするかどうかを表します。

拡張性の設定

ScalabilitySettingsSection.png

[Scalability Settings (拡張性の設定)] セクションでは、次のプロパティを利用できます。

プロパティ

説明

Use Blend Transitions

アニメーションがあるステートから別のステートに移行するためのブレンドを再生する必要がある場合に使用します。

Blend Significance Value

移行をブレンドする必要があるかどうかに関連する重要度の値です。

Maximum Number Concurrent Blends

同時に実行できるブレンドの数です。

この制限を超えている各アニメーションは最も近いものにスナップします。

Tick Significance Value

Significance Manager とともに使用します。 指定された値を超えるものはティックされません。

Animation Sharing State Processor

AnimationSharingStateProcessor クラスは、現在のステートを判断するために使用される特殊なブループリント クラスです (またはネイティブ C++ クラスを使用できます) 。このクラスのブループリントを作成するには、 AnimationSharingStateProcessor クラスの新しいブループリントを作成し、ブループリント用に好きな名前を入力します。

Animation Sharing State Processor ブループリントは、プロトタイプ作成にのみ使用してください。 ネイティブ実装を使用することでブループリント実装とは対照的にランタイムのパフォーマンスが大幅に向上します。

AnimSharingStateProcessorClass.png

ブループリントの [Details (詳細)] パネルで、 Animation State Enum をアニメーション ステートを含む列挙型に設定します。

ProcessorDefaults.png

Animation Sharing State Processor ブループリントは、 Animation Sharing Setup アセット内の**ステートプロセッサ クラス** として定義するブループリント クラスでもあります (下図)。 ステート プロセッサ クラスを定義した後、列挙内の各ステートを表すために [+ (プラス記号)] をクリックしてアニメーション ステートを追加できます。

AnimationStatesDefined.png

Animation Sharing State Processor ブループリントは、2 つの関数をオーバーライドできます。 最初の Process Actor State 関数 (下図) は、どのアクタのステートを編集しているのかを調べることができます。 2 番目のオーバーライド可能な関数である Get Animation State Enum は、ネイティブの Animation Sharing State Processor から列挙型クラスを返したり、ネイティブの実装と対話を行うために使用できます。

クリックして拡大

上の画像では、 Process Actor State 関数をオーバーライドして Husk_BP というブループリントにキャストし、そのアニメーション ステート (作成した変数に格納されています) を取得します。 アニメーション共有ステートプロセッサ ブループリントは、Animation Sharing Setup 内で ステートプロセッサ クラス としても割り当てられます。

アニメーション ブループリントの設定

アニメーション ステート間のブレンドを処理するには、 アニメーション ブループリント を設定する必要があります。 これには、 Anim Sharing Transition Instance と呼ばれる特別なクラスのアニメーション ブループリントが必要です。 [コンテンツ ブラウザ] からアニメーション ブループリントを作成し、 [Pick Parent Class (親クラスを選択)] メニューで、クラスとして最適なスケルトン アセットと AnimSharingTransitionInstance を選択します。

AnimBPCreation.png

AnimSharingTransitionInstance アニメーション ブループリントの AnimGraph で、以下に示す設定をコピーまたは使用します。

ノードグラフのコピー

Begin Object Class=/Script/AnimGraph.AnimGraphNode_Root Name="AnimGraphNode_Root_0"  
ShowPinForProperties(0)=(PropertyName="Result",PropertyFriendlyName="Result",PropertyTooltip="Result",CategoryName="Links",bShowPin=True)  
NodePosX=-144  
ErrorType=4  
NodeGuid=0FCF00194AC285A9A163E7B694738C10  
CustomProperties Pin (PinId=9FC69ADD403386DE35C76DBC40EC0979,PinName="Result",PinFriendlyName="Result",PinToolTip="Result\\nPose Link Structure\\n\\nResult",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_BlendListByBool_0 DD6EA15242C95BC4958C309F37456CD3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_BlendListByBool Name="AnimGraphNode_BlendListByBool_0"  
ShowPinForProperties(0)=(PropertyName="bActiveValue",PropertyFriendlyName="Active Value",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_BlendListByBool:bActiveValue", "Which input should be connected to the output?"),CategoryName="Runtime",bShowPin=True)  
ShowPinForProperties(1)=(PropertyName="BlendPose",PropertyFriendlyName="Blend Pose",PropertyTooltip="Blend Pose",CategoryName="Links",bShowPin=True)  
ShowPinForProperties(2)=(PropertyName="BlendTime",PropertyFriendlyName="Blend Time",PropertyTooltip="Blend Time",CategoryName="Config",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(3)=(PropertyName="BlendType",PropertyFriendlyName="Blend Type",PropertyTooltip="Blend Type",CategoryName="BlendType")  
ShowPinForProperties(4)=(PropertyName="bResetChildOnActivation",PropertyFriendlyName="Reset Child on Activation",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_BlendListBase:bResetChildOnActivation", "This reinitializes child pose when re-activated. For example, when active child changes"),CategoryName="Option")  
ShowPinForProperties(5)=(PropertyName="CustomBlendCurve",PropertyFriendlyName="Custom Blend Curve",PropertyTooltip="Custom Blend Curve",CategoryName="BlendType")  
ShowPinForProperties(6)=(PropertyName="BlendProfile",PropertyFriendlyName="Blend Profile",PropertyTooltip="Blend Profile",CategoryName="BlendType")  
NodePosX=-368  
NodePosY=16  
NodeGuid=3AF80FBE453C5BF351B74AB41ABCC2DB  
CustomProperties Pin (PinId=42CC2B874A21AE5E1F7958B6A97A5302,PinName="bActiveValue",PinFriendlyName="Active Value",PinToolTip="Active Value\\nBoolean\\n\\nWhich input should be connected to the output?",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="False",AutogeneratedDefaultValue="False",LinkedTo=(K2Node_VariableGet_0 9E7EA92B4CD9BC7BA4307D8E5DC8F005,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=925ED2414617452C6DF0A392C0EDD131,PinName="BlendPose_0",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("A3Nodes", "BoolPoseFriendlyName", "{TrueFalse} Pose"), "TrueFalse", NSLOCTEXT("A3Nodes", "True", "True")),PinToolTip="Blend Pose 0\\nPose Link Structure\\n\\nBlend Pose",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_CopyPoseFromMesh_0 4E472A1840B3F6EF24C86E8FA2694DE5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=500C56AA43BFCFD5D1AF558CB451A02A,PinName="BlendPose_1",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("A3Nodes", "BoolPoseFriendlyName", "{TrueFalse} Pose"), "TrueFalse", NSLOCTEXT("A3Nodes", "False", "False")),PinToolTip="Blend Pose 1\\nPose Link Structure\\n\\nBlend Pose",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_CopyPoseFromMesh_1 29C385EE451B16B5AC069EA108C775F2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=1D9FB4E64CF1FBDED841639A772E142B,PinName="BlendTime_0",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("A3Nodes", "BoolBlendTimeFriendlyName", "{TrueFalse} Blend Time"), "TrueFalse", NSLOCTEXT("A3Nodes", "True", "True")),PinToolTip="Blend Time 0\\nFloat\\n\\nBlend Time",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0.100000",AutogeneratedDefaultValue="0.100000",LinkedTo=(K2Node_VariableGet_1 0107072B4F8D93B6C75E59995402C55D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=5DA4ACBD4A41973C0319A08EFEC4EE85,PinName="BlendTime_1",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("A3Nodes", "BoolBlendTimeFriendlyName", "{TrueFalse} Blend Time"), "TrueFalse", NSLOCTEXT("A3Nodes", "False", "False")),PinToolTip="Blend Time 1\\nFloat\\n\\nBlend Time",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0.100000",AutogeneratedDefaultValue="0.100000",LinkedTo=(K2Node_VariableGet_1 0107072B4F8D93B6C75E59995402C55D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=DD6EA15242C95BC4958C309F37456CD3,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_Root_0 9FC69ADD403386DE35C76DBC40EC0979,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0"  
VariableReference=(MemberName="bBlendBool",bSelfContext=True)  
NodePosX=-704  
NodePosY=-64  
NodeGuid=821953DA498F727F31C7BBAC251D20E4  
CustomProperties Pin (PinId=9E7EA92B4CD9BC7BA4307D8E5DC8F005,PinName="bBlendBool",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="false",AutogeneratedDefaultValue="false",LinkedTo=(AnimGraphNode_BlendListByBool_0 42CC2B874A21AE5E1F7958B6A97A5302,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=26B993D349EB00A2C207B7883949A890,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingTransitionInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_1"  
VariableReference=(MemberName="BlendTime",bSelfContext=True)  
NodePosX=-592  
NodePosY=208  
NodeGuid=9BD298FF438FBD6A5B54C084EB18C615  
CustomProperties Pin (PinId=0107072B4F8D93B6C75E59995402C55D,PinName="BlendTime",Direction="EGPD_Output",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(AnimGraphNode_BlendListByBool_0 1D9FB4E64CF1FBDED841639A772E142B,AnimGraphNode_BlendListByBool_0 5DA4ACBD4A41973C0319A08EFEC4EE85,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=AFEFF55445A86C7492FDE4B97C1289E0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingTransitionInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_2"  
VariableReference=(MemberName="FromComponent",bSelfContext=True)  
NodePosX=-880  
NodePosY=32  
NodeGuid=4F27808B4EF2180632DC08A96888FE32  
CustomProperties Pin (PinId=313057EE4F41F0DDE072C6834733C7C7,PinName="FromComponent",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,LinkedTo=(AnimGraphNode_CopyPoseFromMesh_0 420BA23743193D552593829A53F8F68C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=CF3DE59A4B883F00976CDFADDF43B2E8,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingTransitionInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_CopyPoseFromMesh Name="AnimGraphNode_CopyPoseFromMesh_0"  
ShowPinForProperties(0)=(PropertyName="SourceMeshComponent",PropertyFriendlyName="Source Mesh Component",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:SourceMeshComponent", "This is used by default if it\\'s valid"),CategoryName="Copy",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(1)=(PropertyName="bUseAttachedParent",PropertyFriendlyName="Use Attached Parent",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bUseAttachedParent", "If SourceMeshComponent is not valid, and if this is true, it will look for attahced parent as a source"),CategoryName="Copy")  
ShowPinForProperties(2)=(PropertyName="bCopyCurves",PropertyFriendlyName="Copy Curves",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bCopyCurves", "Copy curves also from SouceMeshComponent. This will copy the curves if this instance also contains"),CategoryName="Copy")  
NodePosX=-688  
NodePosY=16  
NodeGuid=0CB5F4EB4092B28B3ACF2DAA47E5A3A3  
CustomProperties Pin (PinId=420BA23743193D552593829A53F8F68C,PinName="SourceMeshComponent",PinFriendlyName="Source Mesh Component",PinToolTip="Source Mesh Component\\nSkeletal Mesh Component Weak object\\n\\nThis is used by default if it\\'s valid",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,AutogeneratedDefaultValue="None",LinkedTo=(K2Node_VariableGet_2 313057EE4F41F0DDE072C6834733C7C7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=4E472A1840B3F6EF24C86E8FA2694DE5,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_BlendListByBool_0 925ED2414617452C6DF0A392C0EDD131,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_3"  
VariableReference=(MemberName="ToComponent",bSelfContext=True)  
NodePosX=-864  
NodePosY=112  
NodeGuid=3E19B7E141965AF034C503A930E8E45A  
CustomProperties Pin (PinId=14584B5442ACDBFDA04E85963CDB4DBF,PinName="ToComponent",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,LinkedTo=(AnimGraphNode_CopyPoseFromMesh_1 541B298D40CB962059D422B7A276CA59,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=6E39D3D44FEF3F7E975C89A5B923E1F8,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingTransitionInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_CopyPoseFromMesh Name="AnimGraphNode_CopyPoseFromMesh_1"  
ShowPinForProperties(0)=(PropertyName="SourceMeshComponent",PropertyFriendlyName="Source Mesh Component",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:SourceMeshComponent", "This is used by default if it\\'s valid"),CategoryName="Copy",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(1)=(PropertyName="bUseAttachedParent",PropertyFriendlyName="Use Attached Parent",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bUseAttachedParent", "If SourceMeshComponent is not valid, and if this is true, it will look for attahced parent as a source"),CategoryName="Copy")  
ShowPinForProperties(2)=(PropertyName="bCopyCurves",PropertyFriendlyName="Copy Curves",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bCopyCurves", "Copy curves also from SouceMeshComponent. This will copy the curves if this instance also contains"),CategoryName="Copy")  
NodePosX=-688  
NodePosY=96  
NodeGuid=A4D7DD8348E8D17BC173869171B5FF52  
CustomProperties Pin (PinId=541B298D40CB962059D422B7A276CA59,PinName="SourceMeshComponent",PinFriendlyName="Source Mesh Component",PinToolTip="Source Mesh Component\\nSkeletal Mesh Component Weak object\\n\\nThis is used by default if it\\'s valid",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,AutogeneratedDefaultValue="None",LinkedTo=(K2Node_VariableGet_3 14584B5442ACDBFDA04E85963CDB4DBF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=29C385EE451B16B5AC069EA108C775F2,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_BlendListByBool_0 500C56AA43BFCFD5D1AF558CB451A02A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  

Anim Sharing Additive Instance

加算アニメーションを使用するときは、 AnimSharingAdditiveInstance クラスの アニメーション ブループリント を使用する必要があります。

AnimSharingAdditiveBP.png

アニメーション ステート は、 Animation Sharing Setup アセット内で [On Demand] [Additive] の設定を有効にする必要があります。

OnDemandCheckbox.png

AnimSharingAdditiveInstance アニメーション ブループリントの AnimGraph で、以下に示す設定をコピーまたは再作成します。

ノードグラフのコピー

Begin Object Class=/Script/AnimGraph.AnimGraphNode_Root Name="AnimGraphNode_Root_0"  
ShowPinForProperties(0)=(PropertyName="Result",PropertyFriendlyName="Result",PropertyTooltip="Result",CategoryName="Links",bShowPin=True)  
NodePosX=160  
NodePosY=16  
ErrorType=4  
ErrorMsg="Result was visible but ignored"  
NodeGuid=9B9C0A274EFE3D4893B338B63E4BA534  
CustomProperties Pin (PinId=D28554294AFBA1C3D8B9799438DD3B84,PinName="Result",PinFriendlyName="Result",PinToolTip="Result\\nPose Link Structure\\n\\nResult",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_ApplyMeshSpaceAdditive_0 66A1DDE64223F117AA0060AAD022EB98,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0"  
VariableReference=(MemberName="BaseComponent",bSelfContext=True)  
NodePosX=-560  
NodePosY=32  
NodeGuid=3CDA48D04E4DC54B07E1A8B387D7F4B1  
CustomProperties Pin (PinId=50C8662E4549FB4C825F12B859F469F4,PinName="BaseComponent",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,LinkedTo=(AnimGraphNode_CopyPoseFromMesh_0 7B3EDF7D4DC4CA4FD772CEAC8A5A5380,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=F163231644191CE37FF1E8A0011AE6E8,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingAdditiveInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_1"  
VariableReference=(MemberName="AdditiveAnimation",bSelfContext=True)  
NodePosX=-544  
NodePosY=160  
NodeGuid=CEBFE47048DE6DB8C4D7A59FE7B08D1F  
CustomProperties Pin (PinId=0292554C4B9777F0B2A45381E54369C8,PinName="AdditiveAnimation",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimSequence"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,LinkedTo=(AnimGraphNode_SequencePlayer_0 1844AF8D4D95F2AD70353B9286320E36,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=BE8F997544CD3B8CFD492F908AB3CD9D,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingAdditiveInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_SequencePlayer Name="AnimGraphNode_SequencePlayer_0"  
ShowPinForProperties(0)=(PropertyName="Sequence",PropertyFriendlyName="Sequence",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:Sequence", "The animation sequence asset to play"),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(1)=(PropertyName="PlayRateBasis",PropertyFriendlyName="Play Rate Basis",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRateBasis", "The Basis in which the PlayRate is expressed in. This is used to rescale PlayRate inputs.\\nFor example a Basis of 100 means that the PlayRate input will be divided by 100."),CategoryName="Settings",bCanToggleVisibility=True)  
ShowPinForProperties(2)=(PropertyName="PlayRate",PropertyFriendlyName="Play Rate",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRate", "The play rate multiplier. Can be negative, which will cause the animation to play in reverse."),CategoryName="Settings",bCanToggleVisibility=True)  
ShowPinForProperties(3)=(PropertyName="PlayRateScaleBiasClamp",PropertyFriendlyName="Play Rate Scale Bias Clamp",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRateScaleBiasClamp", "Additional scaling, offsetting and clamping of PlayRate input.\\nPerformed after PlayRateBasis."),CategoryName="Settings")  
ShowPinForProperties(4)=(PropertyName="StartPosition",PropertyFriendlyName="Start Position",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:StartPosition", "The start up position, it only applies when reinitialized\\nif you loop, it will still start from 0.f after finishing the round"),CategoryName="Settings",bCanToggleVisibility=True)  
ShowPinForProperties(5)=(PropertyName="bLoopAnimation",PropertyFriendlyName="Loop Animation",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:bLoopAnimation", "Should the animation continue looping when it reaches the end?"),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(6)=(PropertyName="bIgnoreForRelevancyTest",PropertyFriendlyName="Ignore for Relevancy Test",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:bIgnoreForRelevancyTest", "If true, \\"Relevant anim\\" nodes that look for the highest weighted animation in a state will ignore\\nthis node"),CategoryName="Relevancy",bCanToggleVisibility=True)  
ShowPinForProperties(7)=(PropertyName="BlendWeight",PropertyFriendlyName="Blend Weight",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:BlendWeight", "Last encountered blendweight for this node"),CategoryName="DoNotEdit")  
ShowPinForProperties(8)=(PropertyName="InternalTimeAccumulator",PropertyFriendlyName="Internal Time Accumulator",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:InternalTimeAccumulator", "Accumulated time used to reference the asset in this node"),CategoryName="DoNotEdit")  
NodePosX=-368  
NodePosY=144  
NodeGuid=47045FB34243DFC4BEC84CB78381A3F8  
CustomProperties Pin (PinId=1844AF8D4D95F2AD70353B9286320E36,PinName="Sequence",PinFriendlyName="Sequence",PinToolTip="Sequence\\nAnim Sequence Base Object Reference\\n\\nThe animation sequence asset to play",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimSequenceBase"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,AutogeneratedDefaultValue="None",LinkedTo=(K2Node_VariableGet_1 0292554C4B9777F0B2A45381E54369C8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=DBD0DAAA49710060F33B60AA668E45AF,PinName="bLoopAnimation",PinFriendlyName="Loop Animation",PinToolTip="Loop Animation\\nBoolean\\n\\nShould the animation continue looping when it reaches the end?",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="True",AutogeneratedDefaultValue="True",LinkedTo=(K2Node_VariableGet_2 9381C28C4F30F5FD0C5A68A7381B6138,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=049010254D1E4691A221DABB85B83D8A,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_ApplyMeshSpaceAdditive_0 E6944886459A7E961A9C3DB02C0D7CC4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_2"  
VariableReference=(MemberName="bStateBool",bSelfContext=True)  
NodePosX=-544  
NodePosY=224  
NodeGuid=0273BA7540AEC2775B6F9EB931288F90  
CustomProperties Pin (PinId=9381C28C4F30F5FD0C5A68A7381B6138,PinName="bStateBool",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="false",AutogeneratedDefaultValue="false",LinkedTo=(AnimGraphNode_SequencePlayer_0 DBD0DAAA49710060F33B60AA668E45AF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=5106B68649084F8569A641A85D692898,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingAdditiveInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_CopyPoseFromMesh Name="AnimGraphNode_CopyPoseFromMesh_0"  
ShowPinForProperties(0)=(PropertyName="SourceMeshComponent",PropertyFriendlyName="Source Mesh Component",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:SourceMeshComponent", "This is used by default if it\\'s valid"),CategoryName="Copy",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(1)=(PropertyName="bUseAttachedParent",PropertyFriendlyName="Use Attached Parent",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bUseAttachedParent", "If SourceMeshComponent is not valid, and if this is true, it will look for attahced parent as a source"),CategoryName="Copy")  
ShowPinForProperties(2)=(PropertyName="bCopyCurves",PropertyFriendlyName="Copy Curves",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_CopyPoseFromMesh:bCopyCurves", "Copy curves also from SouceMeshComponent. This will copy the curves if this instance also contains"),CategoryName="Copy")  
NodePosX=-384  
NodePosY=32  
NodeGuid=90ADF65345FD2F533071F8B374EE570E  
CustomProperties Pin (PinId=7B3EDF7D4DC4CA4FD772CEAC8A5A5380,PinName="SourceMeshComponent",PinFriendlyName="Source Mesh Component",PinToolTip="Source Mesh Component\\nSkeletal Mesh Component Weak object\\n\\nThis is used by default if it\\'s valid",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.SkeletalMeshComponent"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=True,AutogeneratedDefaultValue="None",LinkedTo=(K2Node_VariableGet_0 50C8662E4549FB4C825F12B859F469F4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=6475E73042C07EC60F1B00B7275BAE4A,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_ApplyMeshSpaceAdditive_0 A6BB6F8444DC735CB13205AD0AEB7AEE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_ApplyMeshSpaceAdditive Name="AnimGraphNode_ApplyMeshSpaceAdditive_0"  
ShowPinForProperties(0)=(PropertyName="Base",PropertyFriendlyName="Base",PropertyTooltip="Base",CategoryName="Links",bShowPin=True)  
ShowPinForProperties(1)=(PropertyName="Additive",PropertyFriendlyName="Additive",PropertyTooltip="Additive",CategoryName="Links",bShowPin=True)  
ShowPinForProperties(2)=(PropertyName="Alpha",PropertyFriendlyName="Alpha",PropertyTooltip="Alpha",CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(3)=(PropertyName="AlphaScaleBias",PropertyFriendlyName="Alpha Scale Bias",PropertyTooltip="Alpha Scale Bias",CategoryName="Settings")  
ShowPinForProperties(4)=(PropertyName="LODThreshold",PropertyFriendlyName="LOD Threshold",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_ApplyMeshSpaceAdditive:LODThreshold", "* Max LOD that this node is allowed to run\\n* For example if you have LODThreadhold to be 2, it will run until LOD 2 (based on 0 index)\\n* when the component LOD becomes 3, it will stop update/evaluate\\n* currently transition would be issue and that has to be re-visited"),CategoryName="Performance")  
NodePosX=-112  
NodePosY=48  
NodeGuid=D7D1068341115E71D18678828BA52D6E  
CustomProperties Pin (PinId=A6BB6F8444DC735CB13205AD0AEB7AEE,PinName="Base",PinFriendlyName="Base",PinToolTip="Base\\nPose Link Structure\\n\\nBase",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_CopyPoseFromMesh_0 6475E73042C07EC60F1B00B7275BAE4A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=E6944886459A7E961A9C3DB02C0D7CC4,PinName="Additive",PinFriendlyName="Additive",PinToolTip="Additive\\nPose Link Structure\\n\\nAdditive",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_SequencePlayer_0 049010254D1E4691A221DABB85B83D8A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=8124738645DB8E1DDAEE4BA5B937C6E4,PinName="Alpha",PinFriendlyName="Alpha",PinToolTip="Alpha\\nFloat\\n\\nAlpha",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="1.000000",AutogeneratedDefaultValue="1.000000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=66A1DDE64223F117AA0060AAD022EB98,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_Root_0 D28554294AFBA1C3D8B9799438DD3B84,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  

Anim Sharing State Instance

このアニメーション ブループリント (AnimBP) クラスでは、デフォルトで 2 つのプロパティ、 [Animation to Play] [Permutation Time Offset] が公開されるため、必要な場合、AnimBP の動作を追加できます。 基本的なレベルでは、これでポーズを操作します。

ネイティブ実装時には、このステートによって現在操作しているすべてのアクタを返す GetInstancedActors を公開します。 そうすることで、通知がある場合には、それらを正しく処理して固有のインスタンスに伝達することができます。

HandleNotify をオーバーライドしてそれに応じて処理することで、これを行います。

ノードグラフのコピー

Begin Object Class=/Script/AnimGraph.AnimGraphNode_Root Name="AnimGraphNode_Root_0"  
ShowPinForProperties(0)=(PropertyName="Result",PropertyFriendlyName="Result",PropertyTooltip="Result",CategoryName="Links",bShowPin=True)  
NodePosX=32  
NodePosY=32  
ErrorType=4  
ErrorMsg="Result was visible but ignored"  
NodeGuid=DE41DB3A41F39C4A62BA7B9077C84BD9  
CustomProperties Pin (PinId=27C7B571443BF030935D8E88B162B83C,PinName="Result",PinFriendlyName="Result",PinToolTip="Result\\nPose Link Structure\\n\\nResult",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="(LinkID=-1,SourceLinkID=-1)",AutogeneratedDefaultValue="(LinkID=-1,SourceLinkID=-1)",LinkedTo=(AnimGraphNode_SequencePlayer_0 24D116474E793A938AD4A88A854C06CA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/AnimGraph.AnimGraphNode_SequencePlayer Name="AnimGraphNode_SequencePlayer_0"  
ShowPinForProperties(0)=(PropertyName="Sequence",PropertyFriendlyName="Sequence",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:Sequence", "The animation sequence asset to play"),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(1)=(PropertyName="PlayRateBasis",PropertyFriendlyName="Play Rate Basis",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRateBasis", "The Basis in which the PlayRate is expressed in. This is used to rescale PlayRate inputs.\\nFor example a Basis of 100 means that the PlayRate input will be divided by 100."),CategoryName="Settings",bCanToggleVisibility=True)  
ShowPinForProperties(2)=(PropertyName="PlayRate",PropertyFriendlyName="Play Rate",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRate", "The play rate multiplier. Can be negative, which will cause the animation to play in reverse."),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(3)=(PropertyName="PlayRateScaleBiasClamp",PropertyFriendlyName="Play Rate Scale Bias Clamp",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:PlayRateScaleBiasClamp", "Additional scaling, offsetting and clamping of PlayRate input.\\nPerformed after PlayRateBasis."),CategoryName="Settings")  
ShowPinForProperties(4)=(PropertyName="StartPosition",PropertyFriendlyName="Start Position",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:StartPosition", "The start up position, it only applies when reinitialized\\nif you loop, it will still start from 0.f after finishing the round"),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(5)=(PropertyName="bLoopAnimation",PropertyFriendlyName="Loop Animation",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_SequencePlayer:bLoopAnimation", "Should the animation continue looping when it reaches the end?"),CategoryName="Settings",bShowPin=True,bCanToggleVisibility=True)  
ShowPinForProperties(6)=(PropertyName="bIgnoreForRelevancyTest",PropertyFriendlyName="Ignore for Relevancy Test",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:bIgnoreForRelevancyTest", "If true, \\"Relevant anim\\" nodes that look for the highest weighted animation in a state will ignore\\nthis node"),CategoryName="Relevancy",bCanToggleVisibility=True)  
ShowPinForProperties(7)=(PropertyName="BlendWeight",PropertyFriendlyName="Blend Weight",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:BlendWeight", "Last encountered blendweight for this node"),CategoryName="DoNotEdit")  
ShowPinForProperties(8)=(PropertyName="InternalTimeAccumulator",PropertyFriendlyName="Internal Time Accumulator",PropertyTooltip=NSLOCTEXT("UObjectToolTips", "AnimNode_AssetPlayerBase:InternalTimeAccumulator", "Accumulated time used to reference the asset in this node"),CategoryName="DoNotEdit")  
NodePosX=-224  
NodePosY=48  
NodeGuid=A850AF6B4C825A179186BB81C98FF3F6  
CustomProperties Pin (PinId=0D8111A54C7DFA2D6B140EA2C7C6E653,PinName="Sequence",PinFriendlyName="Sequence",PinToolTip="Sequence\\nAnim Sequence Base Object Reference\\n\\nThe animation sequence asset to play",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimSequenceBase"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,AutogeneratedDefaultValue="None",LinkedTo=(K2Node_VariableGet_0 8AE1B97B4294C41A196264AFBD43A3F7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=F5DBF18D40111BA32FFDCC9D403C3887,PinName="PlayRate",PinFriendlyName="Play Rate",PinToolTip="Play Rate\\nFloat\\n\\nThe play rate multiplier. Can be negative, which will cause the animation to play in reverse.",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="1.000000",AutogeneratedDefaultValue="1.000000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=17DE90B14DA26A39C6B2BE83A081C55A,PinName="StartPosition",PinFriendlyName="Start Position",PinToolTip="Start Position\\nFloat\\n\\nThe start up position, it only applies when reinitialized\\nif you loop, it will still start from 0.f after finishing the round",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0.000000",AutogeneratedDefaultValue="0.000000",LinkedTo=(K2Node_VariableGet_1 2F07F25F42F0FF3B622578AE1C7B613F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=E1D6F7D84350F6E3ADDDD89414811B06,PinName="bLoopAnimation",PinFriendlyName="Loop Animation",PinToolTip="Loop Animation\\nBoolean\\n\\nShould the animation continue looping when it reaches the end?",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="True",AutogeneratedDefaultValue="True",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=24D116474E793A938AD4A88A854C06CA,PinName="Pose",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.PoseLink"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_Root_0 27C7B571443BF030935D8E88B162B83C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0"  
VariableReference=(MemberName="AnimationToPlay",bSelfContext=True)  
NodePosX=-448  
NodePosY=64  
NodeGuid=A08474964A2A101532B19ABE1DAC52F9  
CustomProperties Pin (PinId=8AE1B97B4294C41A196264AFBD43A3F7,PinName="AnimationToPlay",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.AnimSequence"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(AnimGraphNode_SequencePlayer_0 0D8111A54C7DFA2D6B140EA2C7C6E653,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=C4FC0774474B4ACF5514B9A36A748B8E,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingStateInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  
Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_1"  
VariableReference=(MemberName="PermutationTimeOffset",bSelfContext=True)  
NodePosX=-432  
NodePosY=128  
NodeGuid=F6116F504B7758FA4C1B5E83F42D2D2F  
CustomProperties Pin (PinId=2F07F25F42F0FF3B622578AE1C7B613F,PinName="PermutationTimeOffset",Direction="EGPD_Output",PinType.PinCategory="float",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="0.0",AutogeneratedDefaultValue="0.0",LinkedTo=(AnimGraphNode_SequencePlayer_0 17DE90B14DA26A39C6B2BE83A081C55A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
CustomProperties Pin (PinId=3061887F4515A5A621DC74B2F5B2DC62,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/AnimationSharing.AnimSharingStateInstance"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)  
End Object  

Animation Sharing Manager

アニメーション共有を実行時に実行するには、自分の Animation Sharing Setup アセットを指定する Animation Sharing Manager を作成する必要があります。 これは、 Create Animation Sharing Manager 関数を使用して、任意のアクタ内のブループリントから (または レベル ブループリントから) 呼び出すことができます。

CreateAnimationSharingManager.png

Animation Sharing Manager をターゲットにした次の関数を呼び出すこともできます。

関数

説明

Animation Sharing Enabled

アニメーション共有が有効かどうかを返します。

Get Animation Sharing Manager

Animation Sharing Manager を返します (何も設定されていない場合は「null」を返します) 。

Register Actor

指定の 共有スケルトン に従って、アクタを Animation Sharing Manager に登録します。

下の画像では、 Get Animation Sharing Manager Register Actor を使用して、Husk アクタを Animation Sharing Manager に登録しています (キーの入力でアニメーション ステートを変更できるように、ブループリントでの入力も有効にしています) 。

クリックして拡大

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル