امتیاز موضوع:
  • 3 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش ساخت دوربین سوم شخص در UDK
#1
Information 
اختصاصی گیمفا
Confused48:

با سلام خدمت تمام دوستان Confused74:امروز میخوام آموزش ساخت دوربین سوم شخص را توسط موتور UDK یاد بدهم...لطفا قدم به قدم جلو بروید. Confused53:شروع پروژه UnrealScript Confused25:خوب اول باید بریم به قسمت ..\Development\Src در محل نصب موتور. بعد یک پوشه ای با نام دلخاه مانند UDNGame میسازیم.

[تصویر:  project_directory.jpg]


داخل پوشه UDNGame رفته و پوشه ای دیگر با نام Classes میسازیم.
[تصویر:  classes_directory.jpg]

خوب میریم سراغ کدهاش:Confused38:

مواد لازم:.
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 CameraScaleCurrentCameraScale/** multiplier to default camera distance */
var float CameraScaleMinCameraScaleMax;

function 
UpdateViewTarget(out TViewTarget OutVTfloat DeltaTime)
{
   
local vector     HitLocationHitNormal;
   
local CameraActor   CamActor;
   
local Pawn        TPawn;
   
   
local vector CamStartCamDirXCamDirYCamDirZCurrentCamOffset;
   
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(DeltaTimeOutVT.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(DeltaTimeOutVT.POV.LocationOutVT.POV.RotationOutVT.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 DeltaTime + (5*DeltaTime) * CameraZOffset DesiredCameraZOffset;
        
        
CamStart.+= CameraZOffset;
        
GetAxes(OutVT.POV.RotationCamDirXCamDirYCamDirZ);
        
CamDirX *= CurrentCameraScale;
     
        
TPawn.FindSpot(Tpawn.GetCollisionExtent(),CamStart);
        if (
CurrentCameraScale CameraScale)
        {
          
CurrentCameraScale FMin(CameraScaleCurrentCameraScale FMax(CameraScale CurrentCameraScale0.3)*DeltaTime);
        }
        else if (
CurrentCameraScale CameraScale)
        {
          
CurrentCameraScale FMax(CameraScaleCurrentCameraScale FMax(CameraScale CurrentCameraScale0.3)*DeltaTime);
        }                        
        if (
CamDirX.TPawn.GetCollisionHeight())
        {
          
CamDirX *= square(cos(OutVT.POV.Rotation.Pitch 0.0000958738)); // 0.0000958738 = 2*PI/65536
        
}
        
OutVT.POV.Location CamStart CamDirX*CurrentCamOffset.CurrentCamOffset.Y*CamDirY CurrentCamOffset.Z*CamDirZ;
        if (
Trace(HitLocationHitNormalOutVT.POV.LocationCamStartfalsevect(12,12,12)) != None)
        {
          
OutVT.POV.Location HitLocation;
        }
     }
   }

   
// Apply camera modifiers at the end (view shakes for example)
   
ApplyCameraModifiers(DeltaTimeOutVT.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 
در اینجا فایل را ذخیره کرده و برنامه UDK را باز میکنیم..

با چنین اروری مواجه میشویم

[تصویر:  compile_auto.jpg]

بر روی دکمه Yes کلیک کرده و وارد بخش کامپایل کد ها میشویم.
[تصویر:  compile_output.jpg]


حال در محیط UDK منوی View را انتخاب کرده و گزینه World Properties را انتخاب میکنیم.


[تصویر:  default_worldproperties.jpg]

حال به [i]Game Type رفته و همانند تصویر مقدار ها را روی
UDNGame قرار میدهیم.


[تصویر:  default_selectgame.jpg]


بدین صورت ما دوربینی سوم شخص خواهیم داشت...
[تصویر:  default_ingame.jpg]

ـــــــــــــــــــــــــــــــــــــ
باتشکر میلاد معتمدی نیا

منبع: http://udn.epicgames.com/Three/BasicGameQuickStart.html
پاسخ
#2
میشه اموزش دوربین اول شخص هم بدی
امسال مادریدی کشون داریممم

[تصویر:  unuhpmfk79r7oiox25dj.jpg]
پاسخ
#3
دوربین اول شخص تو خود انجین تعریف شده هست فقط باید بری سلاح ها و چیزایی که نیاز داری بهش اضافه کنی Confused25:

اقا پس از اموزش Zoom دوربین و تفنگ دوربین دار چی شد Confused43:Confused66:
[تصویر:  rcqcmxsqjmvdyyqa7zbm.jpg]
پاسخ
#4
(02-14-2013, 02:16 PM)arash12 نوشته است: دوربین اول شخص تو خود انجین تعریف شده هست فقط باید بری سلاح ها و چیزایی که نیاز داری بهش اضافه کنی Confused25:

اقا پس از اموزش Zoom دوربین و تفنگ دوربین دار چی شد Confused43:Confused66:


درود.

درحال ساخت هستم. Confused29:
پاسخ
#5
سلام

بسیار ممنونم [img]/images/smi/new/241.gif[/img][img]/images/smi/new/241.gif[/img][img]/images/smi/new/241.gif[/img]

خیلی خوبی، خیلی آموزشات باحالن.

ببخشید نمیشه به این کد یه چیزی اضافه کرد تا با اسکرول اپ و اسکرول داون دوربین دور و نزدیک بشه ؟

میزان دوریش محدودیت داشته باشه؟
 
پاسخ


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Tongue آموزش بازی سازی با موتور Unreal engine 4 dj_sash 0 2,413 01-28-2015, 12:16 PM
آخرین ارسال: dj_sash
Lightbulb آموزش ساخت دوربین شکاری در udk skyred.milad 0 4,947 02-10-2013, 12:56 AM
آخرین ارسال: skyred.milad
  آموزش ساخت دشمن در UDK Nimaking 4 4,323 01-29-2013, 09:34 PM
آخرین ارسال: erfanak
  آموزش آنریل اسکریپت UDK Nimaking 0 2,830 03-25-2012, 06:41 PM
آخرین ارسال: Nimaking
  آموزش ساخت متریال در UDK Nimaking 0 2,389 03-25-2012, 06:39 PM
آخرین ارسال: Nimaking

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان