Hier 3 Screenshots, in Action sieht das ganze natürlich besser aus.
Verwendet man eigene, statt der Standardmodelle, wirkt der Effekt noch besser. Daher habe ich noch ein Screenshot von meinem eigenen Projekt hinzugefügt.

Diese Diashow benötigt JavaScript.

/*
Full Body Awareness Pawn
by Daniel Korgel aka Dakor
For www.Bloculus.de
17.03.2013
*/
class MyPawn extends UDKPawn;
//Variable List
var name EyeSocket; //Name des Sockets an den die Kamera befestigt werden soll

//Functions
/* GetViewRotation
Aufgerufen von UDKPlayerController::GetPlayerViewPoint(),
welche wiederum von der aktuellen Kamera aufgerufen wird */
//Entferne die Kommentarzeichen (/* */) um die folgende Funktion um immer die genaue Rotation des Sockets zu nutzen 
//Das bedeutet das auch die Bewegung der Animation mit einbezogen wird.
/* 
simulated event rotator GetViewRotation() 
{
local vector out_Loc;
local rotator out_Rot;
// Pruefen ob EyeSocket korrekt zu gewiesen wurde
if (EyeSocket == '')
return Super.GetViewRotation();
Mesh.GetSocketWorldLocationAndRotation(EyeSocket, out_Loc, out_Rot); return out_Rot;
} */

/*
GetPawnViewLocation
Eine andere Klasse möchte die Position unserer Augen haben
*/
simulated event Vector GetPawnViewLocation()
{
    local vector viewLoc;

    // Pruefen ob EyeSocket korrekt zu gewiesen wurde
    if (EyeSocket == '')
        return Location + BaseEyeHeight * vect(0,0,1);

    Mesh.GetSocketWorldLocationAndRotation(EyeSocket, viewLoc);

    return viewLoc;
}

defaultproperties
{
	EyeSocket=Eyes

	Begin Object Class=SkeletalMeshComponent Name=PawnSkeletalMeshComponent
        //Your Mesh Properties
        SkeletalMesh=SkeletalMesh'CH_IronGuard_Male.Mesh.SK_CH_IronGuard_MaleA'
        AnimTreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_Human'
        PhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Mesh.SK_CH_Corrupt_Male_Physics'
        AnimSets(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_BaseMale'
        Translation=(Z=8.0)
        Scale=1.075
        //General Mesh Properties
        bCacheAnimSequenceNodes=FALSE
        AlwaysLoadOnClient=true
        AlwaysLoadOnServer=true
        bOwnerNoSee=false
        CastShadow=true
        BlockRigidBody=TRUE
        bUpdateSkelWhenNotRendered=false
        bIgnoreControllersWhenNotRendered=TRUE
        bUpdateKinematicBonesFromAnimation=true
        bCastDynamicShadow=true
        RBChannel=RBCC_Untitled3
        RBCollideWithChannels=(Untitled3=true)
        bOverrideAttachmentOwnerVisibility=true
        bAcceptsDynamicDecals=FALSE
        bHasPhysicsAssetInstance=true
        TickGroup=TG_PreAsyncWork
        MinDistFactorForKinematicUpdate=0.2
        bChartDistanceFactor=true
        RBDominanceGroup=20
        bUseOnePassLightingOnTranslucency=TRUE
        bPerBoneMotionBlur=true
End Object
Mesh=PawnSkeletalMeshComponent
Components.Add(PawnSkeletalMeshComponent)
}

Nächstes mal: Steuerung des Kopfes, sowie 1:1 Tracking der Arme mit dem Hydra Controller von Razer 

Das Full Body Awareness Script basiert auf dem „True First Person“-Script für den UTPawn von slowJusko

~ Daniel

Tagged: , , , , , , , , , ,

Geschrieben von Daniel Korgel

Ich bin Daniel Korgel und bin ein selbständiger Software Entwickler im Bereich Virtual Reality. Ich programmiere in meiner Freizeit schon sehr lange und bin gut unterwegs mit C# (& .Net), Java, HTML, PHP und MYSQL. Kenntnisse in C, C++ und Assembler sind aber auch vorhanden. Zudem arbeite ich derzeit auch an meinem Bachelor. In meiner Freizeit sammle ich alte Spielekonsolen und bin auch hin und wieder im Skatepark anzutreffen. Twitter: @DakorVR , @Bloculus_de| Xing: xing.com/profiles/Daniel_Korgel

This article has 2 comments

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert