Register    Login    Forum    Search    FAQ

Board index » General Programming




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: [UDK]-Blank/Empty/New/Default Project
 Post Posted: Sun Feb 20, 2011 3:15 pm 
Offline
Site Admin

Joined: Sat Feb 19, 2011 1:33 am
Posts: 15
เวลาเราเห็นตัวอย่างวิดีโอการใช้งาน UDK ส่วนมากก็จะเป็นการทำการ Modifier หรือ เรียกสั้นๆว่า Mod
ตัวเกมส์หลักที่มีมาให้ในตอนติดตั้งเลย ซึ่งก็คือ UT ( Unreal Tournament) ซึ่งตัวแพคเกจที่มีมาให้
ก็จะมี Contents ต่างๆมาให้มากมาย รวมถึง Classes ด้วย แต่คิดว่าหลายคนคงอยากจะเริ่มด้วยโปรเจค
ที่เป็นของตัวเอง ก็เลยมีคนในบอร์ดหลักของ UDK มาโพสวิธีการทำ Blank/Empty/New/Default Project
(สักอย่าง) เอาไว้ ซึ่งผมลองทำตามแล้วถือว่า โอเคเลย เราสามารถเริ่มโปรเจคโดยสามารถเอา UTGame
ที่มีมาให้ออกไปได้หมด ทำให้เราสามารถเริ่มโปรเจคใหม่ของเราเองได้จริงๆ

แต่ก็ยังต้องมีสิ่งที่ต้องคำนึงถึงดังนี้
1. ต้องมีการดัดแปลง Unreal Scripts ที่หาได้จากที่อื่น ที่มีการใช้ Class UTGame
2. ในการศึกษาการเขียนโปรแกรม ยังไงก็จำเป็นต้องใช้ ตัวอย่าง Contents จาก UTGame อยู่ดี
เพราะ โปรแกรมเมอร์ส่วนมากจะไม่ค่อยมีเวลาไปยุ่งกับ Contents
ดังนั้นการใช้ของที่มีมาให้ในการศึกษาการทำงานจะดีที่สุด
3. การตั้งค่าต่างๆ อาจมีการผิดเพี้ยนไปได้

ต่อไปเป็นวิธีการทำ Blank/Empty/New/Default Project นะครับ
โดยรายละเอียดจะเอามาจาก UDK Forums เป็นหลัก
โดย รายละเอียดที่เป็นต้นฉบับดูได้ที่นี่นะครับ
http://utforums.epicgames.com/showthread.php?t=760167


วิธีการทำนะครับ
1. ก่อนอื่นให้เรา Install UDK แบบเต็มรูปแบบไปก่อน
2. พอเสร็จแล้ว ยังไม่ต้องเปิดโปรแกรมขึ้นมา ให้เรา Back Up โฟลเดอร์
- UDKGame
- Development
ไปไว้ที่อื่นก่อน เผื่อมีการเอามาใช้ภายหลัง

3. ทำการดาวน์โหลดไฟล์ จาก http://utforums.epicgames.com/showthread.php?t=760167
ต้องเข้าไปดูเองนะครับเพราะ Link จะมีการอัพเดทตลอด พอโหลดเสร็จแล้ว Extract File ออกมา
จะมีโฟลเดอร์ UDKGame และ Development อยู่ในนั้น ก็เอาสองโฟลเดอร์นี้ ไปใส่แทน โฟลเดอร์เก่า
ที่เราเอาไปไว้ที่อื่นแล้ว

4. ยังไม่ต้องเปิดโปรแกรมอีกเช่นเคย แต่ให้เข้าไปที่ โฟลเดอร์

[ไดร์ของคุณ]:\\[โฟลเดอร์ที่ติดตั้ง UDK]\UDKGame\Config

แล้วเปิดไฟล์ DefaultEngine.ini กับ DefaultGame.ini ขึ้นมา

5. แก้ไขไฟล์ดังนี้
Quote:
YourMapFileExtension: นามสกุลไฟล์ของแผนที่ หรือ MapFile นั่นแหละ ตามปกติก็จะเป็น .udk
YourMapName: ชื่อ+นามสกุลไฟล์ของแผนที่เริ่มต้น
YourGameName: ชื่อเกมส์ของคุณ เช่น Mario,Tera อะไรก็ว่าไป[ไม่อ้างอิงไฟล์ใดๆ]
YourShortGameName: ตัวอักษรย่อของเกมส์ 2 ตัวอักษร อะไรก็ได้
YourGamePackage: ชื่อเกมส์ Package หลักของคุณ ซึ่งจะเป็นชื่อ โฟลเดอร์ ที่อยู่ใน Development/Src
Ex: คุณเอา Code หลักของเกมส์คุณไว้ในโฟลเดอร์ Development/Src/DefendMaster/Classes/[สคริปเกมส์หลัก]
ดังนั้นชื่อ Package จะเป็น DefendMaster
YourDefaultPostProcessEffect: ชื่อแพคเกจหลักของ Effect เกี่ยวกับการแสดงผล ซึ่งสามารถเพิ่มได้ภายหลัง
ถ้าไม่มีก็ Comment ไว้ก่อน
YourGameInfoClass: ชื่อคลาสหลักของ Class Info ที่ Extends มาจาก GameInfo
โดยจะมีรูปแบบคือ [ชื่อแพคเกจหลัก].[ชื่อไฟล์ Info Class]
เช่น Development/Src/DefendMaster/Classes/DMInfo.uc
YourGameInfoClass = DefendMaster.DMInfo
YourPlayerController: หลักการเดียวกันกับ YourGameInfoClass แต่จะเป็นไฟล์ Class PlayerController
ของตัวละครหลัก
YourMapPrefix: ชื่อเริ่มของชื่อไฟล์แผนที่ ที่ซ้ำกัน เช่น DM-Fortress,DM-UnderSea Prefix จะเป็น DM


ไฟล์ที่แก้ไขมีดังนี้

DefaultEngine.ini
Quote:
[URL]
MapExt=YourMapFileExtension
Map=YourMapName
LocalMap=YourMapName
TransitionMap=YourMapName
EXEName=YourGameName.exe
DebugEXEName=DEBUG-YourGameName.exe
GameName=YourGameName
GameNameShort=YourShortGameName

[Core.System]
+Extensions=YourMapFileExtension

[UnrealEd.EditorEngine]
+EditPackages=YourGamePackage

[Engine.PackagesToAlwaysCook]
;Your Packages Here

[Engine.StartupPackages]
;Your Packages Here

[Engine.PackagesToForceCookPerMap]
;Your Packages Here

[Engine.DataStoreClient]
;Your DataStoreClients Here

[Windows.StandardUser]
MyDocumentsSubDirName=YourGameName


DefaultGame.ini
Quote:
[Engine.GameInfo]
DefaultGame=YourGamePackage.YourGameInfoClass
DefaultServerGame=YourGamePackage.YourGameInfoClass
PlayerControllerClassName=YourGamePackage.YourPlayerController
GameDifficulty=+1.0
MaxPlayers=1
DefaultGameType="YourGamePackage.YourGameInfoClass"
+DefaultMapPrefixes=(Prefix="YourMapPrefix",bUsesCommonPackage=false,GameType="YourGamePackage.YourGameInfoClass")



ตัวอย่างไฟล์ที่ผมทำการแก้ไข
DefaultEngine.ini
Quote:
[URL]
MapExt=udk
Map=northground.udk
LocalMap=northground.udk
TransitionMap=northground.udk
EXEName=DefendMasterUDK.exe
DebugEXEName=DEBUG-DefendMasterUDK.exe
GameName=DefendMasterUDK
GameNameShort=DM

[Core.System]
+Extensions=udk

[UnrealEd.EditorEngine]
+EditPackages=DefendMaster
+EditPackages=UTGame // เพิ่มภายหลัง

[Engine.Engine]
DefaultPostProcessName=FX_HitEffects.UTPostProcess // เพิ่มภายหลัง

[Engine.PackagesToAlwaysCook]
+Package=EnvyEntry // เพิ่มภายหลัง

[Engine.StartupPackages]
+Package=FX_HitEffects // เพิ่มภายหลัง
+Package=UDKFonts // เพิ่มภายหลัง

[Engine.PackagesToForceCookPerMap]
;Your Packages Here

[Engine.DataStoreClient]
;Your DataStoreClients Here

[Windows.StandardUser]
MyDocumentsSubDirName=DefendMasterUDK


DefaultGame.ini
Quote:
[Engine.GameInfo]
DefaultGame=DefendMaster.DMInfo
DefaultServerGame=DefendMaster.DMInfo
PlayerControllerClassName=DefendMaster.DMPlayerController
GameDifficulty=+1.0
MaxPlayers=1


จะเห็นว่าบางส่วนผมก็ใช้ไม่เหมือนที่เค้าให้มา ก็ปรับเอาตามความเมาะสมละกันนะครับ
6. ทำการเปิด UDK Editor ขึ้นมา จะมีการ Compile Shader/Material รอสักครู่ พอเสร็จแล้วก็จะได้โปรเจคว่างๆ

คำแนะนำ
1. ถ้าอยากได้ Contents ตัวไหนที่มีมาให้ก็ไปก๊อบมาใส่ในโฟลเดอร์ UDKGame/Content/ แล้วไปแก้ไขใน
Config File ในส่วนที่เกี่ยวข้องด้วย แต่อย่าลืมว่า Contents บางอย่าง มีความเกี่ยวเนื่องกับ Scripts
ซึ่งต้องมาดูจข้อ 2 ต่อ

2. ในกรณีที่อยากได้ Contents และ Class บางอย่างของ UT มาใช้ในการทดสอบการเขียนโปรแกรม
ก็ให้ไปก๊อบโฟลเดอร์ UTGame มาใส่ไว้ใน Development/Src/
แล้วก็อย่าลืมไปลบไฟล์ UTGame.u ในโฟลเดอร์ UDKGame/Scripts/ ด้วยนะครับ ( หาดูเอา )
แล้วก็ไปแก้ไขค่า ใน DefaultEngine.ini ตรง

[UnrealEd.EditorEngine]
+EditPackages=DefendMaster
+EditPackages=UTGame // เพิ่มตรงนี้

เสร็จแล้ว Compile Scripts ใหม่ ด้วย Unreal Frontend
ถ้าไม่มี Errors ก็ถือว่าใช้ได้ ถ้ามี Warnings ขึ้นมาไม่ต้องไปสนใจมัน
แต่ขอให้แน่ใจว่า ส่วนที่เราเขียนโปรแกรม ไม่มีความเกี่ยวข้องกับส่วนที่ขึ้น Warnings มันก็จะไม่มีปัญหา
ไม่จำเป็นต้อง ก๊อบปี้ Contents มาทั้งหมด

------------

ปัญหาที่เกิดเมื่อใช้ Blank/Empty/New/Default Project
ในการทดสอบ
ถ้าเราไม่มีโครงสร้างของ Scripts และ Content เกี่ยวกับ Player หรือพวก Character Model
ที่มันจะมีส่วนประกอบของ Animation Tree ที่มีการใช้ Scripts เข้ามาควบคุม
เมื่อเราทำการ Init Player เข้าระบบ ตัวละคร จะไม่สามารถแสดงท่าทางต่างๆได้

วิธีแก้ปัญหา คือการเอา UTGame Classes มาใช้ในส่วนของการควบคุม Animations ของตัวละคร
โดย Copy โฟลเดอร์ Characters ในโฟลเดอร์ที่ BackUp เอาไว้ ไปใส่ใน UDKGame/Content/
ใน Project ของเราซะ และ ทำตามคำแนะนำข้อ 2

เสร็จแล้วทำการ Compile หลังจากนี้ เมื่อมีการ Init Player ด้วย Code ก็จะสามารถ แสดง Animations
ได้ตามปกติ

แค่นี้ก็เสร็จแล้วครับสำหรับการทำ Blank/Empty/New/Default Project


Top 
 Profile  
 
Display posts from previous:  Sort by  
 
Post new topic Reply to topic  [ 1 post ] 

Board index » General Programming


Who is online

Users browsing this forum: No registered users and 1 guest

 
 

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron