NPC

NPC

์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” NPC ๊ฐ์ฒด์—์š”.

ํ•จ์ˆ˜

void MoveToLocation(Vector Target)

์บ๋ฆญํ„ฐ๊ฐ€ ๋ชฉํ‘œ ์ง€์ ๊นŒ์ง€ ๊ธธ์ฐพ๊ธฐ๋ฅผ ์ด์šฉํ•ด ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. (NavMeshVolume๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ๋™์ž‘ํ•ด์š”.)

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent
local goalPos = Workspace.Cube.Transform.Location

wait(3)
npc:MoveToLocation(goalPos) --ํ•ด๋‹น ์ง€์ ๊นŒ์ง€ ๊ธธ์ฐพ๊ธฐ๋กœ ์ด๋™ํ•ด์š”.

void StopMovement()

์บ๋ฆญํ„ฐ์˜ ๊ธธ์ฐพ๊ธฐ ์ด๋™์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent
local goalPos = Workspace.Cube.Transform.Location

wait(3)
npc:MoveToLocation(goalPos) --ํ•ด๋‹น ์ง€์ ๊นŒ์ง€ ๊ธธ์ฐพ๊ธฐ๋กœ ์ด๋™ํ•ด์š”.

wait(5)
npc:StopMovement() --์ง„ํ–‰์ค‘์ธ ๊ธธ์ฐพ๊ธฐ๋ฅผ ์ค‘์ง€ํ•ด์š”.

PathFollowingStatus GetPathFollowingStatus()

์บ๋ฆญํ„ฐ์˜ ๊ธธ์ฐพ๊ธฐ ์ด๋™ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent
local goalPos = Workspace.Cube.Transform.Location

wait(3)
npc:MoveToLocation(goalPos) --ํ•ด๋‹น ์ง€์ ๊นŒ์ง€ ๊ธธ์ฐพ๊ธฐ๋กœ ์ด๋™ํ•ด์š”.
print(npc:GetPathFollowingStatus()) --๋Œ€์ƒ์˜ ๊ธธ์ฐพ๊ธฐ ์ƒํƒœ๋ฅผ ์ˆซ์ž๋กœ ๋ฐ˜ํ™˜ํ•ด์š”.

void MoveForward(number Value)

์„ค์ •๋œ ์ด๋™ ํƒ€์ž…์— ๋”ฐ๋ผ ์•ž์œผ๋กœ ์ด๋™์‹œ์ผœ์š”. (1 : ์ „์ง„, -1 : ํ›„์ง„ ์ด๋™)

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent

local function update(updateTime)
    npc:MoveForward(-1) --1์ด๋ฉด ์ „์ง„, -1์ด๋ฉด ํ›„์ง„ํ•ด์š”
end
npc.OnUpdateEvent:Connect(update)

void MoveRight(number Value)

์ขŒ, ์šฐ๋กœ ์ด๋™์‹œ์ผœ์š”. (-1 : ์ขŒ์ธก, 1 : ์šฐ์ธก ์ด๋™)

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent

local function update(updateTime)
    npc:MoveRight(-1) --1์ด๋ฉด ์šฐ์ธก, -1์ด๋ฉด ์ขŒ์ธก์œผ๋กœ ์ด๋™ํ•ด์š”
end
npc.OnUpdateEvent:Connect(update)

void Jump()

์ ํ”„๋™์ž‘์„ ์‹คํ–‰ํ•ด์š”.

-- ์ƒ˜ํ”Œ --

local npc = Script.Parent

wait(5)
npc:Jump() -- ์ ํ”„๋™์ž‘์„ ์‹คํ–‰ํ•ด์š”.

string GetNPCName()

NPC์˜ ์ด๋ฆ„์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

-- ์ƒ˜ํ”Œ --

local NPC = Script.Parent
print(NPC:GetNPCName())

void SetNPCName(string Name)

-- ์ƒ˜ํ”Œ --

local NPC = Script.Parent
NPC:SetNPCName("๊ธฐ์‚ฌ")

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ ๊ธฐ๋Šฅ๋“ค

์†์„ฑ

์ด๋ฆ„

์„ค๋ช…

์บ๋ฆญํ„ฐ์˜ ๊ฐ€์‹œ์„ฑ

์บ๋ฆญํ„ฐ์˜ Matring ์—์š”

์บ๋ฆญํ„ฐ ์œ„์น˜๊ฐ’์ด์—์š”.

์บ๋ฆญํ„ฐ ํšŒ์ „๊ฐ’์ด์—์š”.

๊ฐ์ฒด ํ™œ์„ฑํ™” ์—ฌ๋ถ€

๊ฐ์ฒด์˜ Matrix

๊ฐ์ฒด์˜ Local Transform

๊ฐ์ฒด์˜ ์œ„์น˜ Vector

๊ฐ์ฒด์˜ ๋กœ์ปฌ์ขŒํ‘œ Vector

๊ฐ์ฒด์˜ ํšŒ์ „ Vector

๊ฐ์ฒด์˜ ๋กœ์ปฌ ํšŒ์ „ Vector

๊ฐ์ฒด์˜ ํฌ๊ธฐ Vector

๊ฐ์ฒด์˜ ๊ฐ€์‹œ์„ฑ

์ด๋ฒคํŠธ

์ด๋ฆ„

์„ค๋ช…

์ƒ์„ฑ ํ›„ ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function(updateTime), updateTime ์€ number ์ž…๋‹ˆ๋‹ค.

์‚ญ์ œ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

Enable ๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

Disable ๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜

์ด๋ฆ„

์„ค๋ช…

์บ๋ฆญํ„ฐ Material์˜ Emissive ๊ฐ’์„ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์ž์ฒด ๋ฐœ๊ด‘ํ•˜๋Š” ์ˆ˜์น˜ ๊ฐ’)

์บ๋ฆญํ„ฐ์— ๋ฌผ๋ฆฌ์ ์ธ ํž˜์„ ๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด์š”. (ํž˜์„ ๊ฐ€ํ•  Vector ๊ฐ’)

์บ๋ฆญํ„ฐ์˜ ์ตœ๋Œ€ ์ด๋™์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์บ๋ฆญํ„ฐ์˜ ์ตœ๋Œ€ ์ ํ”„์†๋„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์„ค์ •ํ•  ์ตœ๋Œ€ ์ ํ”„์†๋„ ๊ฐ’)

์บ๋ฆญํ„ฐ์˜ ์ตœ๋Œ€ ์ ํ”„์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

๊ณต์ค‘์—์„œ ์บ๋ฆญํ„ฐ ์ปจํŠธ๋กค ๋น„์œจ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์„ค์ •ํ•  ๋น„์œจ ๊ฐ’)

๊ณต์ค‘์—์„œ ์บ๋ฆญํ„ฐ ์ปจํŠธ๋กค ๋น„์œจ์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์บ๋ฆญํ„ฐ์˜ ์ตœ๋Œ€ ๊ณต์ค‘ ์ด๋™์†๋„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. ๊ธฐ์–ด์˜ค๋ฅด๊ธฐ, ๋‚ ๊ธฐ ๋“ฑ์˜ ์ƒํƒœ์—์„œ๋งŒ ๋ฐ˜์˜๋ผ์š”. (์„ค์ •ํ•  ์ตœ๋Œ€ ๊ณต์ค‘ ์ด๋™์†๋„ ๊ฐ’)

์บ๋ฆญํ„ฐ์˜ ์ตœ๋Œ€ ๊ณต์ค‘ ์ด๋™์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์บ๋ฆญํ„ฐ์˜ ์ ํ”„ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์ ํ”„ ๊ฐ€๋Šฅ ์—ฌ๋ถ€)

์บ๋ฆญํ„ฐ์˜ ์ขŒ์šฐ ์ด๋™ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์ขŒ์šฐ ์ด๋™ ๊ฐ€๋Šฅ ์—ฌ๋ถ€)

์บ๋ฆญํ„ฐ๋ฅผ ํŠน์ • ์Šคํฐ ์œ„์น˜๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์š”. (์ด๋™ ํ•  ์Šคํฐํฌ์ธํŠธ ์˜ค๋ธŒ์ ํŠธ, ๋ฐฉํ–ฅ Rot ์ดˆ๊ธฐํ™” ์—ฌ๋ถ€)

ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ์™ธํ˜• ํƒ€์ž…์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”.

ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ์บก์Š ์ฝœ๋ฆฌ์ „์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”.

ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ์™ธํ˜• ํƒ€์ž…์„ ๊ฐ€์ ธ ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”.

์บ๋ฆญํ„ฐ์— ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ์–ด์š”. (ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ, ๋ถ™์ผ AttachPoint)

์บ๋ฆญํ„ฐ์— ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ์–ด์š”. (ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ, ๋ถ™์ผ Bone)

์บ๋ฆญํ„ฐ์— ๋ถ™์–ด์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋–จ์–ด๋œจ๋ฆด ์ˆ˜ ์žˆ์–ด์š”. (ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ)

์บ๋ฆญํ„ฐ์— ๋ถ™์–ด์žˆ๋Š” ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋–จ์–ด๋œจ๋ ค์š”.

๊ฐ์ฒด์˜ ํ‚ค ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

ํ˜„์žฌ ๋งคํŠธ๋ฆญ์Šค์—์„œ ์„ค์ • ๋œ ๋งคํŠธ๋ฆญ์Šค๋กœ ๋ณด๊ฐ„์ด ๋˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’, bool ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

ํ˜„์žฌ ๋งคํŠธ๋ฆญ์Šค์—์„œ ์„ค์ • ๋œ ๋งคํŠธ๋ฆญ์Šค๋กœ ๋ณด๊ฐ„์ด ๋˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๋กœ์ปฌ์ขŒํ‘œ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’, bool ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

์ˆœ๊ฐ„์ด๋™ ํ•˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’)

๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์„ค์ •ํ•  ์œ„์น˜ Vector ๊ฐ’, ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

๊ฐ์ฒด์˜ tag๋ฅผ ์„ค์ •ํ•ด์š”. (์„ค์ •ํ•  tag)

๊ฐ์ฒด์— ์„ค์ •๋œ tag๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์œ ์ €๊ฐ€ ์ถ”๊ฐ€ํ•œ ์˜ค๋ธŒ์ ํŠธ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ์— ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”. (์ด๋ฒคํŠธ ์ด๋ฆ„, ์—ฐ๊ฒฐ ํ•จ์ˆ˜)

์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”. (๋ฐ”๋ผ๋ณผ ์œ„์น˜ Vector)

Last updated