Create, Compete & Win at Redbrick Connect 2024! πŸŽ‰
λ ˆλ“œλΈŒλ¦­ 엔진Content Type

Content type

μ½˜ν…μΈ  μœ ν˜•μ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜κΈ° 전에 λ§Œλ“€κ³ μž ν•˜λŠ” μ½˜ν…μΈ  μœ ν˜•μ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. 선택할 수 μžˆλŠ” μ½˜ν…μΈ  μœ ν˜•μ€ μ„Έ 가지가 μžˆμŠ΅λ‹ˆλ‹€:

  1. λ©”νƒ€λ²„μŠ€: 이 λͺ¨λ“œμ—μ„œλŠ” 카메라와 아바타가 기본으둜 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ•„λ°”νƒ€λŠ” λ ˆλ“œλΈŒλ¦­ ν™ˆνŽ˜μ΄μ§€μ—μ„œ μ„€μ •ν•œ 아바타λ₯Ό μ‚¬μš©ν•˜λ©°, μΉ΄λ©”λΌλŠ” 항상 아바타λ₯Ό λ”°λΌλ‹€λ‹ˆλ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

  2. κ²Œμž„: 이 λͺ¨λ“œμ—μ„œλŠ” 아바타가 선택 μ‚¬ν•­μž…λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 아바타λ₯Ό μ‚¬μš©ν• μ§€ 말지, 그리고 카메라가 아바타λ₯Ό λ”°λΌλ‹€λ‹ˆλ„λ‘ 할지 κ²°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ˜΅μ…˜μ€ 높은 μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

이 λͺ¨λ“œμ—μ„œλŠ” 카메라와 아바타에 λŒ€ν•œ 섀정이 λ˜μ–΄μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ”°λΌμ„œ μ‚¬μš©μžκ°€ ν•΄λ‹Ή 뢀뢄듀을 λͺ¨λ‘ μ„€μ •ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

  1. VR: 이 λͺ¨λ“œλŠ” 가상 ν˜„μ‹€μ„ μ§€μ›ν•©λ‹ˆλ‹€. λ©”νƒ€λ²„μŠ€λ₯Ό μ„ νƒν•˜κ³  VR을 ν™œμ„±ν™”ν•˜λ©΄ VR카메라가 아바타에 μ—°κ²°λ©λ‹ˆλ‹€. κ²Œμž„ λͺ¨λ“œμ—μ„œλŠ” VR의 μœ„μΉ˜λ₯Ό μ‚¬μš©μžκ°€ μ›ν•˜λŠ” λŒ€λ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€
⚠️

μ½˜ν…μΈ  μœ ν˜•μ„ μ„ νƒν•œ ν›„ 개발 쀑에 이λ₯Ό λ³€κ²½ν•˜κ³  μ‹Άλ‹€λ©΄ κ±±μ •ν•˜μ§€ λ§ˆμ„Έμš”. μ–Έμ œλ“ μ§€ μ„ ν˜Έμ— 따라 사전 μ„€μ •λœ 슀크립트λ₯Ό μ‰½κ²Œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


options-image Options Images

Metaverse

β€˜λ©”νƒ€λ²„μŠ€β€™λ₯Ό μ‹œμž‘ν•˜λ €λ©΄ ν…œν”Œλ¦Ώμ„ μƒμ„±ν•˜κΈ° 전에 β€˜λ©”νƒ€λ²„μŠ€β€™ μ˜΅μ…˜μ„ μ„ νƒν•˜μ„Έμš”.

이 사전 μ„€μ • μŠ€ν¬λ¦½νŠΈλŠ” 아바타와 카메라λ₯Ό μƒμ„±ν•˜κ³  카메라λ₯Ό 아바타에 μ—°κ²°ν•˜μ—¬ λ‹€μŒκ³Ό 같은 효과λ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

⚠️

ν”„λ‘œμ νŠΈ 생성 μ‹œ metaverseλ₯Ό μ„ νƒν•œ 경우 이 μ½”λ“œλŠ” 기본으둜 PresetScript에 μ μš©λ©λ‹ˆλ‹€.

PresetScript
const avatar = REDBRICK.AvatarManager.createDefaultAvatar();
const camera = WORLD.getObject("MainCamera");
const followingCamera = avatar.setFollowingCamera(camera);
avatar.setDefaultController();

Game

game ν…œν”Œλ¦Ώμ—λŠ” 아바타λ₯Ό μƒμ„±ν•˜λŠ” μ½”λ“œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

PresetScript
function Start() {
  //nothing
}
ℹ️

단: 아바타λ₯Ό μƒμ„±ν•˜λ €λ©΄ metaverse ν…œν”Œλ¦Ώμ— ν‘œμ‹œλœ λŒ€λ‘œ 아바타 생성 μ½”λ“œλ₯Ό μΆ”κ°€ν•˜λ©΄ λ©λ‹ˆλ‹€.

VR Option

ν…œν”Œλ¦Ώμ„ μƒμ„±ν•˜λŠ” λ™μ•ˆ β€˜VR μ˜΅μ…˜β€™μ„ μ „ν™˜ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ PresetScript에 μΆ”κ°€ μ½”λ“œκ°€ μžλ™μœΌλ‘œ μΆ”κ°€λ˜λ―€λ‘œ μˆ˜λ™μœΌλ‘œ μΆ”κ°€ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

PresetScript
const avatar = REDBRICK.AvatarManager.createDefaultAvatar();
const camera = WORLD.getObject("MainCamera");
const followingCamera = avatar.setFollowingCamera(camera);
avatar.setDefaultController();
followingCamera.useVR({ VRObject: avatar }); //VR needs to have VRObject
⚠️

μ°Έκ³ : VR κΈ°λŠ₯은 perspectiveμΉ΄λ©”λΌμ—λ§Œ ν˜Έν™˜λ©λ‹ˆλ‹€.

λ˜ν•œ VR은 λ‹€λ₯Έ VRObject와도 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

VRObject
const headOfSomething = WORLD.getObject("headOfSomething");
const camera = WORLD.getObject("cameraTitle");
camera.useVR({ VRObject: headOfSomething }); // now you can use VR without an avatar
⚠️

NOTE: ν˜„μž¬ VRμ—μ„œλŠ” GUIκ°€ λ Œλ”λ§λ˜μ§€ μ•ŠμœΌλ―€λ‘œ 이 점을 μœ μ˜ν•΄ μ£Όμ„Έμš”.

κ²Œμž„ λͺ¨λ“œμ™€ VR 섀정을 μ„ νƒν•˜λ©΄ PresetScriptλŠ” μ΄λ ‡κ²Œ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이전 예제(headOfSomething)μ—μ„œμ²˜λŸΌ 이λ₯Ό μ‚¬μš©μž μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

VR GAME PresetScript
const camera = WORLD.getObject("MainCamera");
if (!camera) return;
const obj = new THREE.Object3D();
WORLD.add(obj);
obj.position.copy(camera.position);
camera.useVR({ VRObject: obj });