์ค๋์ ์ก์ ๊ฒ์์ ๋น ์ง ์ ์๋ ์ ์บ๋ฆญํฐ๋ฅผ ๋ง๋ค์ด๋ณด์. ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ๋ฅผ ์ ์ํ ๋์ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ผ๋ ์ง๊ธ๊น์ง ํ๋ ๊ฒ๋ค์ ๋ณต์ตํ๋ค๋ ๋๋์ผ๋ก ์งํํ์.
์ฐ์ ์๋ ๋งํฌ์์ ์ ์บ๋ฆญํฐ์ ๊ทธ๋ํฝ ํ์ผ์ ๋ค์ด๋ก๋ํ์.
https://i-mega.itch.io/sideview-dummy-graphics
์์ถ์ ํ๊ณ
ํ์ผ ์์คํ ์ graphic/character์ ๋ฃ์ด์ค๋ค.
์ด์ ์ ์บ๋ฆญํฐ๋ฅผ ์ ์ํ ๊ฒ์ธ๋ฐ ๊ทธ์ ์์ ์ ์บ๋ฆญํฐ๋ฅผ ์ํ ์๋ก์ด ์ฌ์ ์ค๋นํ์. ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ ์ฌ์ ์ ์ํ ๋๋ stage_1์ฌ์์ ํ์ํ ๋ ธ๋๋ค์ ๋ฐฐ์นํ ๋ค์ ๋ณ๋์ ์ฌ(player.tscn)์ผ๋ก ๋ถ๋ฆฌ ์์ผฐ์ง๋ง, ๊ตณ์ด ๊ทธ๋ด ํ์ ์์ด ์ฒ์๋ถํฐ ๋ณ๊ฐ์ ์ฌ์์ ๋ง๋ค ์๋ ์๋ค.
ํ์ผ ์์คํ ์์ ์ํ๋ ํด๋๋ฅผ ์ฐํด๋ฆญํ๊ณ [Create New]-[Scene]์ ์ ํํ์ฌ ํด๋น ํด๋์ ์๋ก์ด ์ฌ์ ๋ฐ๋ก ์์ฑํ ์ ์๋ค.
๋ํ๋ [Create New Scene]์ฐฝ์ ์ ๋ณด๊ณ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผํด์ ์ ์บ๋ฆญํฐ ์ฌ์ ๋ง๋ค์ด๋ณด์.
์ฐ์ [Root Type]์ ์ด๋ค ๊ฒ์ผ๋ก ํ ์ง ์ ํํ์. ํด๋น ์ฌ์ ์ต์์ ๋ ธ๋์ ์ข ๋ฅ๋ฅผ ๊ฒฐ์ ํ๋๋ฐ [2D Scene]์ ์ ํํ๋ฉด Node2D(2D๊ฒ์ ๋ง๋ค ๋ ์ฌ์ฉ)๊ฐ, [3D Scene]์ ์ ํํ๋ฉด Node3D(3D๊ฒ์ ๋ง๋ค ๋ ์ฌ์ฉ)๊ฐ, [User Interface]๋ฅผ ์ ํํ๋ฉด Control(์ฒด๋ ฅ๋ฐ, ๋ฒํผ ๊ฐ์ GUI๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ)๋ ธ๋๊ฐ ์ต์์์ธ ์ฌ์ด ์์ฑ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ ์ฌ์ฒ๋ผ CharacterBody2D๋ ธ๋๋ฅผ ์ต์์๋ก ๋๋ ์ฌ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ๋งจ ์๋ ์ต์ ์ ์ ํํ๊ณ ๊ทธ ์ค๋ฅธ์ชฝ ๋์ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ํ๋ ๋ ธ๋๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค. ํด๋น ๋ฒํผ์ ํด๋ฆญํ์.
์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด CharacterBody2D๋ฅผ ์ฐพ์ ์ ํํ ๋ค์ [Pick]๋ฒํผ์ ํด๋ฆญํ์ฌ [Root Type] ์ง์ ์ ์๋ฃํ๋ค.
๊ทธ๋ฆฌ๊ณ Scene์ ์ด๋ฆ์ enemy๋ผ๊ณ ์ ๋ ฅํ ๋ค [OK]๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋ค.
์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด characterํด๋์ enemy.tscn์ด๋ผ๋ ์ฌ์ด ์์ฑ๋๊ณ 2D์คํฌ๋ฆฐ์ ํด๋น ์ฌ์ด ์ด๋ฆฌ๋ฉด ๋ ๊ฒ์ด๋ค.
์ฃผ์ธ๊ณต ์บ๋ฆญํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทธ๋ํฝ์ ํ์ํ Sprite2D๋ ธ๋๊ฐ ํ์ํ๋ ์ต์์ ๋ ธ๋๋ฅผ ์ฐํด๋ฆญ, [Add Child Nodeโฆ]๋ฉ๋ด๋ฅผ ์ ํํ์ฌ Sprite2D ๋ ธ๋๋ฅผ ์์ฑํด์ฃผ์.
์์ฑ๋ Sprite2D์ ์ธ์คํํฐ์์ texture์์ฑ์ ์ ์บ๋ฆญํฐ ๊ทธ๋ํฝ ํ์ผ ์ค idle_000.png๋ฅผ ์ฐพ์ ๋๋๊ทธํ์ฌ ๋ฃ์ด์ฃผ์.
์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด 2D์คํฌ๋ฆฐ์ ์ ์บ๋ฆญํฐ์ ์ด๋ฏธ์ง๊ฐ ๋ํ๋๋ฉด ์๋ฃ
์ ์บ๋ฆญํฐ๋ ์ ๋๋ฉ์ด์ ์ด ์์ด์ผํ๋ ์ต์์๋ ธ๋ ํ์์ AnimationPlayer๋ ธ๋๋ ์์ฑํด์ฃผ์.
๋ฐํ ํจ๋์์ ์ ๋๋ฉ์ด์ ํญ์ ์ด๊ณ , ์๋จ์ Animation๋ฒํผ์ ํด๋ฆญ, [New]๋ฉ๋ด๋ฅผ ์ ํํ์ฌ idle์ด๋ผ๋ ์ด๋ฆ์ ์ ๋๋ฉ์ด์ ์ ๋ง๋ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐํ ํจ๋์ ์ ๋๋ฉ์ด์ ํญ์ด ๋ํ๋์๋ ์ํ์์ ์ฌ ๋ ์์ Sprite2D๋ฅผ ์ ํ, ์ธ์คํํฐ์์ texture์์ฑ ์ค๋ฅธ์ชฝ์ ์ด์ ๋ชจ์ ๋ฒํผ์ ํด๋ฆญํ๊ณ ํ์ธ์ฐฝ์์ [Create]๋ฅผ ์ ํํ์ฌ idle์ ๋๋ฉ์ด์ ์ Sprite2D๋ ธ๋์ texture์์ฑ์ ๋ํ ํธ๋์ ์ถ๊ฐํด์ฃผ์.
textureํธ๋์ ์ฐํด๋ฆญํ๊ณ [Insert Key]๋ฉ๋ด๋ฅผ ์ ํํ์ฌ ํคํ๋ ์์ 2๊ฐ ๋ ์์ฑํด์ฃผ์. ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ์ด ํคํ๋ ์์ ์๊ฐ 3๊ฐ๊ฐ ๋๋ฉด ๋๋ค.
๋ฐํ ํจ๋์ ์ฐ์ธก ๋์์ ์ ๋๋ฉ์ด์ ์ ์ด ๊ธธ์ด๋ฅผ 0.6์ด๋ก ์ค์ ํ๊ณ ๋ฃจํ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ฃจํ๋ฅผ ํ์ฑํํ์.
์ด์ 3๊ฐ์ ํคํ๋ ์์ ๊ฐ๊ฐ 0์ด, 0.2์ด, 0.4์ด ์ง์ ์ ์์น์ํค๊ณ ๋๋ฒ์งธ์ ์ธ๋ฒ์งธ ํคํ๋ ์์ ๊ฐ๊ฐ idle_001.png, idle_002.png๋ฅผ ์ง์ ํ์.
Idie ์ ๋๋ฉ์ด์ ์ด ์์ฑ๋์์ผ๋ ์ฌ์๋ฒํผ์ ํด๋ฆญํด์ ์ ๋๋ก ์ค์ ๋์๋์ง ๋ง์ง๋ง์ผ๋ก ํ์ธํ๋ฉด ๋๋ค.
์ด๋ฒ์๋ ์ด๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์. run์ด๋ผ๋ ์ด๋ฆ์ ์ ์ ๋๋ฉ์ด์ ์ ์์ฑํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก Sprite2D์ texture์์ฑ ํธ๋์ ์์ฑํด์ฃผ๊ณ
์ ๋๋ฉ์ด์ ์ ์ด ๊ธธ์ด๋ฅผ 0.4๋ก ์ค์ ๋ฐ ๋ฃจํ๋ฅผ ํ์ฑํํ ๋ค์, ํคํ๋ ์์ ์์ฑํ๊ณ ๊ฐ ํคํ๋ ์๊ฐ ๊ฐ๊ฒฉ์ 0.1์ด๋งํผ ๋์์ค๋ค. ๊ทธ๋ฆฌ๊ณ run_000.png ~ run_003.png ์ด๋ฏธ์ง๋ค์ ๊ฐ ํคํ๋ ์๋ง๋ค ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ฌ์๋ฒํผ์ ํด๋ฆญํ์ฌ ์ ๋๋ก ๋ง๋ค์๋์ง ํ์ธํ๋ฉด ๋์ด๋ค.
์ ๋๋ฉ์ด์ ์ ๋ค ๋๊ณ ์ด์ ์ ์บ๋ฆญํฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ฐจ๋ก์ด๋ค. ํ์ผ์์คํ ์์ scriptํด๋์ ์๋ก์ด ์คํฌ๋ฆฝํธ ํ์ผ์ ์์ฑํด์ฃผ์.
์คํฌ๋ฆฝํธ ์์ฑ์ฐฝ์ด ๋ํ๋๋ฉด CharacterBody2D๋ ธ๋๋ฅผ ์์ํ๋๋ก ์ง์ ํ๊ณ , ์คํฌ๋ฆฝํธ ํ์ผ์ ์ด๋ฆ์ enemy.gd๋ก ์ง์ ํ ๋ค Create๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ง๋ฌด๋ฆฌํ๋ค.
ํ์ผ ์์คํ ์์ enemy.gd๋ฅผ ๋๋ธ ํด๋ฆญํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ด๋ณด์.
์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฉด ๋ฏธ๋ฆฌ ์์ฑ๋์ด์๋ ๋ด์ฉ์ ๋งจ ์์ค์ extends๋ถ๋ถ์ ์ ์ธํ๊ณ ์ ๋ถ ์ง์์ฃผ๊ณ
์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์.
์คํฌ๋ฆฝํธ๊ฐ ์์ฑ๋์์ผ๋ฉด ํ์ผ์์คํ ์ enemy.gd๋ฅผ ๋๋๊ทธํ์ฌ enemy์ฌ์ ์ต์์ ๋ ธ๋์ ๋ถ์ฌ์ค๋ค.
๊ทธ๋ฆฌ๊ณ Sprite2D๋ ธ๋์ ์ด๋ฆ์ ์คํฌ๋ฆฝํธ ์์์์ ์ผ์นํ๋๋ก Sprite๋ก ์์ ํ์.
์ด์ enemy์ฌ์ด ์์ฑ๋์๋ค. Ctrl+S ๋จ์ถํค๋ก ์ ์ฅํด์ฃผ์.
์คํ ์ด์ง์ ์์ฑ๋ ์ ์บ๋ฆญํฐ๋ฅผ ๋ฐฐ์นํด๋ณด์. ์คํฌ๋ฆฐ์ท์ฒ๋ผ ํ์ผ ์์คํ ์ enemy.tscn์ 2D์คํฌ๋ฆฐ์ ๋๋๊ทธํ๋ฉด
์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ ์บ๋ฆญํฐ๊ฐ ๋ฐฐ์น๋๋ค.
์ฌ๋ฌ ๋ฒ ๋๋๊ทธํด์ ์ฌ๋ฌ ๊ฐ ๋ฐฐ์นํ ์๋ ์๋ค. ์ํ๋ ๋งํผ ๋ฐฐ์นํด๋ณด์
์ด์ ๊ฒ์์ ์คํํด๋ณด๋ฉดโฆ ์ ์บ๋ฆญํฐ๋ค์ด ๋ ์ ๋ซ๊ณ ๋จ์ด์ง ๊ฒ์ด๋ค. ์ถฉ๋ ํ์ ์ ๋ฃ์ด์ฃผ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ค์ enemy์ฌ์ผ๋ก ๊ฐ์ CollisionShape2D๋ ธ๋๋ฅผ ์์ฑํด์ฃผ์.
CollisionShape2D์ shape์์ฑ์์ RectangleShape2D๋ฅผ ์ ํํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ถฉ๋ ํ์ ์ ํฌ๊ธฐ์ ์์น๋ฅผ ์ ๋นํ ์กฐ์ ํด์ค๋ค.
๋ง์ง๋ง์ผ๋ก CharacterBody2Dํ์ ์ธ ์ต์์ ๋ ธ๋๋ฅผ ์ ํํ๊ณ ์ธ์คํํฐ์์ Layer๋ฅผ 3๋ฒ(Enemy)์ผ๋ก, Mask๋ฅผ 1๋ฒ(Ground)์ผ๋ก ์ค์ ํด์ฃผ์.
์ด์ enemy์ฌ์ Ctrl+S๋ก ์ ์ฅํ๊ณ stage_1์ผ๋ก ๋์์ค๋ฉด, ๋ชจ๋ ์ ์บ๋ฆญํฐ๋ค์ enemy์ฌ์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋์ด ๊ฐ์์ ์ถฉ๋ํ์ ์ด ์๊ธด ๋ชจ์ต์ ๋ณผ ์ ์๋ค. ์ด๋ ๊ฒ ์ฌ์ผ๋ก ๋ง๋ค์ด๋ ์์๋ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฌ์ฉํ๊ธฐ๋ ์ข๊ณ ๋ณ๊ฒฝ์ฌํญ๋ ์๋์ผ๋ก ๋ฐ์๋์ด ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์ด์ ๊ฒ์์ ์คํํ๋ฉด ์ ์บ๋ฆญํฐ๋ค์ด ์ ๋๋ก ๋
์์ ์์๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
๋๋ฌด ๋ง์๊ฑธ ํ๋ฒ์ ์ฌ๋ ค์ ๋ด ๊ฐ์ถ๊ฐ ๋ชป๋ฐ๋ผ๊ฐ
์ค ์ฐํด๋์ ์ด์ฌํ ์คํฌ๋ฆฐ์ท ์ฐ๊ณ ํธ์งํ๊ณ ํ์ผ๋์ ๋ด์ฉ ์์ฑํ๊ณ ์ค๋ ํ๊บผ๋ฒ์ ์ฌ๋ ท๋ฐ...
์ด ๊ฐ์(์ด๊ฐ์ธ ์๋) ๋งํฌ ์ฎ์ด๋์ ๊ธ์ ์ฌ๋ ค๋ผ ๋ ๊ธ๋ก ๋ณด๋ด์ฃผ๊ฒ๋ค
๋ ๊ธ ๊ฐ ํ์๋ ์ ์ค๋ ๊ฐ ์ฐฌ๊ณ ๊ฐ์ข๊ธ ๋ชฉ๋ก์ ๋ณธ์ธ์ ๋ธ๋ก๊ทธ์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊น๋ํ ์ ๋ฆฌ๋์ด์์ค๋ ๊ฐ์ ๋ณด๋ฉด ๋
๊ฐค ๋ด ๊ณ ๋์ธ์ฌ์ด ๋จ์ด์ง์ ์์๊ฐ์ ๊ฐ์๋ฅผ ์ฌ๋ฆฌ๋ ๊ณ ๋ ์ํธ์;
๋ ธ๋ฆฐ๊ฑด ์๋๋ฐ ํ์ด๋ฐ์ด ์ฐธ ์ ๋ฌํ๊ทธ๋ ์
๊ณ ๋์ถ
๊ฐ์๊ธฐ ์๊ธฐ์ฅ ๋ญ์
๊ณ ๋์ ์๋์ ๋์์๋ค
๊ณ ๋์์ง ์์๋ ํ์ด ๋ณต๊ตฌ์์ ใทใท
์ด๊ฑด.. ์ถ์ฒ ๋๋ฅผ ์ ๋ฐ์ ์์๋...