02-14-2013, 03:37 AM
اختصاصی گیمفا
48:
با سلام خدمت تمام دوستان 74:امروز میخوام آموزش ساخت دوربین سوم شخص را توسط موتور UDK یاد بدهم...لطفا قدم به قدم جلو بروید. 53:شروع پروژه UnrealScript 25:خوب اول باید بریم به قسمت ..\Development\Src در محل نصب موتور. بعد یک پوشه ای با نام دلخاه مانند UDNGame میسازیم.
داخل پوشه UDNGame رفته و پوشه ای دیگر با نام Classes میسازیم.
خوب میریم سراغ کدهاش:38:
مواد لازم:.
1-UDNGame.uc
2-UDNPlayerCamera.uc
3-UDNPlayerController.uc
4-UDNPawn.uc
5-UDNHUD.uc
.
داخل UDNPlayerCamera.uc کد های زیر را بریزید.
داخل UDNPlayerController.uc کد های زیر را کپی کنید.
داخل UDNPawn.uc کدهای زیر را کپی کنید:
داخل UDNHUD.uc کدهای زیر را بریزید:
داخل UDNGame.uc کدهای زیر را کپی کنید:
حال به محل نصب udk رفته و به UDKGame\Config میرویم...
فایل DefaultEngine.ini را پیدا کرده و با برنامه NotePad باز میکنیم.
به دنبال [UnrealEd.EditorEngine] گشته و در زیر آن کد زیر را وارد میکنیم.
در اینجا فایل را ذخیره کرده و برنامه UDK را باز میکنیم..
با چنین اروری مواجه میشویم
بر روی دکمه Yes کلیک کرده و وارد بخش کامپایل کد ها میشویم.
حال در محیط UDK منوی View را انتخاب کرده و گزینه World Properties را انتخاب میکنیم.
حال به [i]Game Type رفته و همانند تصویر مقدار ها را روی UDNGame قرار میدهیم.
بدین صورت ما دوربینی سوم شخص خواهیم داشت...
ـــــــــــــــــــــــــــــــــــــ
باتشکر میلاد معتمدی نیا
منبع: http://udn.epicgames.com/Three/BasicGameQuickStart.html
48:
با سلام خدمت تمام دوستان 74:امروز میخوام آموزش ساخت دوربین سوم شخص را توسط موتور UDK یاد بدهم...لطفا قدم به قدم جلو بروید. 53:شروع پروژه UnrealScript 25:خوب اول باید بریم به قسمت ..\Development\Src در محل نصب موتور. بعد یک پوشه ای با نام دلخاه مانند UDNGame میسازیم.
داخل پوشه UDNGame رفته و پوشه ای دیگر با نام Classes میسازیم.
خوب میریم سراغ کدهاش:38:
مواد لازم:.
1-UDNGame.uc
2-UDNPlayerCamera.uc
3-UDNPlayerController.uc
4-UDNPawn.uc
5-UDNHUD.uc
.
داخل UDNPlayerCamera.uc کد های زیر را بریزید.
کد php:
class UDNPlayerCamera extends Camera;
var Vector CamOffset;
var float CameraZOffset;
var float CameraScale, CurrentCameraScale; /** multiplier to default camera distance */
var float CameraScaleMin, CameraScaleMax;
function UpdateViewTarget(out TViewTarget OutVT, float DeltaTime)
{
local vector HitLocation, HitNormal;
local CameraActor CamActor;
local Pawn TPawn;
local vector CamStart, CamDirX, CamDirY, CamDirZ, CurrentCamOffset;
local float DesiredCameraZOffset;
// Don't update outgoing viewtarget during an interpolation
if( PendingViewTarget.Target != None && OutVT == ViewTarget && BlendParams.bLockOutgoing )
{
return;
}
// Default FOV on viewtarget
OutVT.POV.FOV = DefaultFOV;
// Viewing through a camera actor.
CamActor = CameraActor(OutVT.Target);
if( CamActor != None )
{
CamActor.GetCameraView(DeltaTime, OutVT.POV);
// Grab aspect ratio from the CameraActor.
bConstrainAspectRatio = bConstrainAspectRatio || CamActor.bConstrainAspectRatio;
OutVT.AspectRatio = CamActor.AspectRatio;
// See if the CameraActor wants to override the PostProcess settings used.
CamOverridePostProcessAlpha = CamActor.CamOverridePostProcessAlpha;
CamPostProcessSettings = CamActor.CamOverridePostProcess;
}
else
{
TPawn = Pawn(OutVT.Target);
// Give Pawn Viewtarget a chance to dictate the camera position.
// If Pawn doesn't override the camera view, then we proceed with our own defaults
if( TPawn == None || !TPawn.CalcCamera(DeltaTime, OutVT.POV.Location, OutVT.POV.Rotation, OutVT.POV.FOV) )
{
/**************************************
* Calculate third-person perspective
* Borrowed from UTPawn implementation
**************************************/
OutVT.POV.Rotation = PCOwner.Rotation;
CamStart = TPawn.Location;
CurrentCamOffset = CamOffset;
DesiredCameraZOffset = 1.2 * TPawn.GetCollisionHeight() + TPawn.Mesh.Translation.Z;
CameraZOffset = (DeltaTime < 0.2) ? DesiredCameraZOffset * 5 * DeltaTime + (1 - 5*DeltaTime) * CameraZOffset : DesiredCameraZOffset;
CamStart.Z += CameraZOffset;
GetAxes(OutVT.POV.Rotation, CamDirX, CamDirY, CamDirZ);
CamDirX *= CurrentCameraScale;
TPawn.FindSpot(Tpawn.GetCollisionExtent(),CamStart);
if (CurrentCameraScale < CameraScale)
{
CurrentCameraScale = FMin(CameraScale, CurrentCameraScale + 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*DeltaTime);
}
else if (CurrentCameraScale > CameraScale)
{
CurrentCameraScale = FMax(CameraScale, CurrentCameraScale - 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*DeltaTime);
}
if (CamDirX.Z > TPawn.GetCollisionHeight())
{
CamDirX *= square(cos(OutVT.POV.Rotation.Pitch * 0.0000958738)); // 0.0000958738 = 2*PI/65536
}
OutVT.POV.Location = CamStart - CamDirX*CurrentCamOffset.X + CurrentCamOffset.Y*CamDirY + CurrentCamOffset.Z*CamDirZ;
if (Trace(HitLocation, HitNormal, OutVT.POV.Location, CamStart, false, vect(12,12,12)) != None)
{
OutVT.POV.Location = HitLocation;
}
}
}
// Apply camera modifiers at the end (view shakes for example)
ApplyCameraModifiers(DeltaTime, OutVT.POV);
}
defaultproperties
{
CamOffset=(X=12.0,Y=0.0,Z=-13.0)
CurrentCameraScale=1.0
CameraScale=9.0
CameraScaleMin=3.0
CameraScaleMax=40.0
}
داخل UDNPlayerController.uc کد های زیر را کپی کنید.
کد php:
class UDNPlayerController extends GamePlayerController;
defaultproperties
{
CameraClass=class'UDNGame.UDNPlayerCamera'
}
داخل UDNPawn.uc کدهای زیر را کپی کنید:
کد php:
class UDNPawn extends Pawn;
var DynamicLightEnvironmentComponent LightEnvironment;
defaultproperties
{
WalkingPct=+0.4
CrouchedPct=+0.4
BaseEyeHeight=38.0
EyeHeight=38.0
GroundSpeed=440.0
AirSpeed=440.0
WaterSpeed=220.0
AccelRate=2048.0
JumpZ=322.0
CrouchHeight=29.0
CrouchRadius=21.0
WalkableFloorZ=0.78
Components.Remove(Sprite)
Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
bSynthesizeSHLight=TRUE
bIsCharacterLightEnvironment=TRUE
bUseBooleanEnvironmentShadowing=FALSE
End Object
Components.Add(MyLightEnvironment)
LightEnvironment=MyLightEnvironment
Begin Object Class=SkeletalMeshComponent Name=WPawnSkeletalMeshComponent
//Your Mesh Properties
SkeletalMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode'
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)
LightEnvironment=MyLightEnvironment
bOverrideAttachmentOwnerVisibility=true
bAcceptsDynamicDecals=FALSE
bHasPhysicsAssetInstance=true
TickGroup=TG_PreAsyncWork
MinDistFactorForKinematicUpdate=0.2
bChartDistanceFactor=true
RBDominanceGroup=20
bUseOnePassLightingOnTranslucency=TRUE
bPerBoneMotionBlur=true
End Object
Mesh=WPawnSkeletalMeshComponent
Components.Add(WPawnSkeletalMeshComponent)
Begin Object Name=CollisionCylinder
CollisionRadius=+0021.000000
CollisionHeight=+0044.000000
End Object
CylinderComponent=CollisionCylinder
}
داخل UDNHUD.uc کدهای زیر را بریزید:
کد php:
class UDNHUD extends MobileHUD;
defaultproperties
{
}
داخل UDNGame.uc کدهای زیر را کپی کنید:
کد php:
class UDNGame extends FrameworkGame;
defaultproperties
{
PlayerControllerClass=class'UDNGame.UDNPlayerController'
DefaultPawnClass=class'UDNGame.UDNPawn'
HUDType=class'UDNGame.UDNHUD'
bDelayedStart=false
}
حال به محل نصب udk رفته و به UDKGame\Config میرویم...
فایل DefaultEngine.ini را پیدا کرده و با برنامه NotePad باز میکنیم.
به دنبال [UnrealEd.EditorEngine] گشته و در زیر آن کد زیر را وارد میکنیم.
کد php:
+EditPackages=UDNGame
با چنین اروری مواجه میشویم
بر روی دکمه Yes کلیک کرده و وارد بخش کامپایل کد ها میشویم.
حال در محیط UDK منوی View را انتخاب کرده و گزینه World Properties را انتخاب میکنیم.
حال به [i]Game Type رفته و همانند تصویر مقدار ها را روی UDNGame قرار میدهیم.
بدین صورت ما دوربینی سوم شخص خواهیم داشت...
ـــــــــــــــــــــــــــــــــــــ
باتشکر میلاد معتمدی نیا
منبع: http://udn.epicgames.com/Three/BasicGameQuickStart.html