Exemplo n.º 1
0
bool CPhysxSkeleton::Init( const std::string& _szFileName, CalModel* _pCalModel, Math::Mat44f _vMat, ECollisionGroup aGrp, CObject3D *_pEntity )
{
    m_pEntity = _pEntity;
    m_mTransform = _vMat;
    _pCalModel->getSkeleton()->calculateState();
    SetSkeleton(_pCalModel->getSkeleton());
    vector<CalBone*> l_vLlistaBones = m_pCalSkeleton->getVectorBone();

    //Inicialitzem l'estructura del PhysXSkeleton i creem les instancies dels PhysXBones.
    //Tindrem ja tota la info relativa de bones, pares i fills.
    for (size_t i = 0; i < l_vLlistaBones.size(); ++i)
    {
        CalBone* l_pBone = l_vLlistaBones[i];
        CPhysxBone* l_pPhysXBone = new CPhysxBone(l_pBone->getCoreBone()->getName());
        l_pPhysXBone->Init(l_pBone, _vMat, aGrp);
        m_vBones.push_back(l_pPhysXBone);
    }

    //Load la info del XML I POSA ELS ACTORS!!!!
    Load(_szFileName);

    InitParents();
    InitPhysXJoints(_szFileName);
    return true;
}
Exemplo n.º 2
0
bool UAnimationAsset::ReplaceSkeleton(USkeleton* NewSkeleton, bool bConvertSpaces/*=false*/)
{
	// if it's not same 
	if (NewSkeleton != Skeleton)
	{
		// get all sequences that need to change
		TArray<UAnimSequence*> AnimSeqsToReplace;
		if (UAnimSequence* AnimSequence = Cast<UAnimSequence>(this))
		{
			AnimSeqsToReplace.AddUnique(AnimSequence);
		}
		if (GetAllAnimationSequencesReferred(AnimSeqsToReplace))
		{
			for (auto Iter = AnimSeqsToReplace.CreateIterator(); Iter; ++Iter)
			{
				UAnimSequence* AnimSeq = *Iter;
				if (AnimSeq && AnimSeq->Skeleton != NewSkeleton)
				{
					AnimSeq->RemapTracksToNewSkeleton(NewSkeleton, bConvertSpaces);
				}
			}
		}

		SetSkeleton(NewSkeleton);

		PostEditChange();
		MarkPackageDirty();
		return true;
	}

	return false;
}
Exemplo n.º 3
0
HRESULT KG3DAnimationComposer::Init(KG3DSkeleton *pSkeleton, KG3DModel *pModel)
{
	HRESULT hRetCode = E_FAIL;
	
	KG_PROCESS_ERROR(pSkeleton);
	KG_PROCESS_ERROR(pModel);

	SetSkeleton(pSkeleton);
	CreateTweenCollector(pModel);
	m_dwPauseTime = 0;
	m_pModel = pModel;
	hRetCode = S_OK;
Exit0:
	return hRetCode;
}