OasisW 메뉴얼 - 기초다지기
OasisW의 기본 기능들을 단계별로 학습합니다.
새 프로젝트 생성
1단계: 프로젝트 시작
- OasisW 에디터를 실행합니다.
- 프로젝트 이름을 입력합니다.
- 폴더 경로를 선택합니다.
- 템플릿을 선택합니다.
- Create Project 버튼을 클릭합니다.
2단계: 기본 씬 설정
- 기본 카메라와 조명이 자동으로 생성됩니다.
- 하이어라키 뷰에서 Scene 구조를 확인합니다.
바닥면 생성
1단계: Plane 생성
- 하이어라키 뷰에서 Add Entity를 클릭합니다.
- 3D → Plane을 선택합니다.
2단계: 크기 조정
- Scale 값을 조정하여 크기를 설정합니다.
- X: 10, Y: 1, Z: 10
3단계: 위치 조정
- Position 값을 조정합니다.
- Y: -1 (바닥면을 약간 아래로)
머티리얼
1단계: Box 오브젝트 생성
- 하이어라키 뷰에서 Add Entity → 3D → Box를 선택합니다.
- Position에서 Y값을 1로 설정하여 바닥면 위에 배치합니다.
2단계: 머티리얼 생성
- 에셋 뷰에서 우클릭합니다.
- New Asset → Material을 선택합니다.
- 머티리얼 이름을 "BoxMaterial"로 변경합니다.
3단계: 색상 설정
- 생성된 머티리얼을 클릭합니다.
- 인스팩터 뷰에서 Diffuse의 색상을 변경합니다.
- 원하는 색상을 선택합니다 (예: 빨간색).
4단계: 머티리얼 적용
- 하이어라키 뷰에서 Box를 선택합니다.
- 에셋 뷰의 머티리얼을 인스팩터 뷰의 Materials에 드래그 앤 드롭합니다.
물리운동
1단계: 바닥면에 물리 적용
- 하이어라키 뷰에서 Plane을 선택합니다.
- 인스팩터 뷰에서 Add Component → Physics → Collision → Half Extents를 설정합니다.
- Add Component → Physics → Rigid Body를 추가합니다.
- IMPORT AMMO를 클릭합니다.
2단계: Box에 물리 적용
- 하이어라키 뷰에서 Box를 선택합니다.
- Add Component → Physics → Collision을 추가합니다.
- Add Component → Physics → Rigid Body를 추가합니다.
- Type을 Dynamic으로 변경합니다.
3단계: 테스트
- 뷰포트에서 Launch를 클릭합니다.
- Box가 떨어져서 Plane에 멈추는 것을 확인합니다.
템플릿
1단계: 템플릿 생성
- 하이어라키 뷰에서 Box를 오른쪽 클릭합니다.
- Template → New Template을 클릭합니다.
- 템플릿 이름을 입력합니다 (예: "MyBox").
2단계: 템플릿 사용
- 에셋 뷰에서 생성된 템플릿을 확인합니다.
- 템플릿을 하이어라키 뷰에 드래그 앤 드롭하여 인스턴스를 생성합니다.
- 여러 개의 동일한 Box를 생성합니다.
3단계: 인스턴스 수정
- 하나의 인스턴스를 선택합니다.
- Position 또는 Rotation을 변경합니다.
- 다른 인스턴스들은 영향받지 않는 것을 확인합니다.
스크립트 추가
1단계: 스크립트 생성
- 에셋 뷰에서 우클릭합니다.
- New Asset → Script를 선택합니다.
- 스크립트 이름을 입력합니다 (예: "move-script").
2단계: 스크립트 편집
- 생성된 스크립트를 더블클릭합니다.
- 기본 코드를 확인합니다:
var MoveScript = pc.createScript('moveScript');
// initialize code called once per entity
MoveScript.prototype.initialize = function() {
};
// update code called every frame
MoveScript.prototype.update = function(dt) {
};
3단계: 간단한 움직임 구현
var MoveScript = pc.createScript('moveScript');
MoveScript.prototype.initialize = function() {
this.speed = 5;
};
MoveScript.prototype.update = function(dt) {
var forward = this.app.keyboard.isPressed(pc.KEY_W);
var backward = this.app.keyboard.isPressed(pc.KEY_S);
var left = this.app.keyboard.isPressed(pc.KEY_A);
var right = this.app.keyboard.isPressed(pc.KEY_D);
var move = new pc.Vec3();
if (forward) move.z -= 1;
if (backward) move.z += 1;
if (left) move.x -= 1;
if (right) move.x += 1;
if (move.length() > 0) {
move.normalize().scale(this.speed);
this.entity.translateLocal(move.x * dt, 0, move.z * dt);
}
};
4단계: 스크립트 적용
- 하이어라키 뷰에서 Box를 선택합니다.
- 인스팩터 뷰에서 Add Component → Script를 선택합니다.
- Add Script를 클릭합니다.
- 생성한 스크립트를 선택합니다.
5단계: 테스트
- 뷰포트에서 Launch를 클릭합니다.
- WASD 키로 Box 움직임을 확인합니다.