[ Introduction ]
[ obi 에 관하여 ]
Obi 는 Unity용 Particle 기반 물리 플러그인 모음이다. Obi의 모든 것은 Particle 이라고 하는 작은 구체로 만들어진다 .
Particle은 제약 조건을 사용하여 서로 상호 작용하고 다른 객체에 영향을 미치고 영향을 받을 수 있다 .
모든 Obi Asset은 동일한 물리 프레임워크를 사용하고 동일한 아키텍처 디자인을 공유한다.
Obi에서 제공하는 Asset에는 밧줄 / 옷감 /유체등이 존재한다 .
이중 밧줄(Obi Rope)를 사용해 볼 것이다 .
[ Set Up ]
[ 임포트 하기 ]
https://assetstore.unity.com/packages/tools/physics/obi-rope-55579
에셋 스토어에서 37 $에 구매 가능하다 .
임포트 하면 다음과 같이 들어온다 . 전체 폴더를 옮길 수는 있지만 내용을 수정해서는 안된다 .
구성은 다음과 같다 .
- Editor : Unity 편집기 내에서 Obi를 실행할 때만 사용되는 Editor 스크립트 및 도구가 포함되어 있다.
- Plugins : 여러 플랫폼(.dll, .bundle, .so 등)에 대해 Obi에서 사용하는 미리 컴파일된 라이브러리가 포함되어 있다. ( Oni 백엔드 등 )
- Resources : 런타임에 사용되는 리소스(주로 Material 및 셰이더)를 포함한다.
- Samples : 샘플 장면, 리소스 및 스크립트가 포함되어 있다. 필요없다면 제거해주는 것이 안전하다 .
- Scripts : 런타임 시 사용되는 스크립트 및 도구를 포함한다.
[ 백엔드 ]
백엔드 (Burst / Oni )는 Solver가 시뮬레이션의 실행을 위해 사용하는 물리엔진이다 .
위와 같이 두가지 백엔드를 사용 가능하지만 , Oni보다는 레거시 백엔드이기에 도큐먼트는 Burst를 추천했다 .
[ 백엔드 - Burst ]
Obi 5.6 이후 기본 백엔드이다 .모바일 환경에서 특히 성능을 발휘한다 .
Oni와 마찬가지로 완전히 CPU 기반이며 멀티스레딩과 SIMD를 많이 사용한다 .
진행전 Obi 에서 사용하는 핵심 물리 엔진 Burst 백엔드를 설치해야 한다 .
Solver에서 다음의 Unity 패키지가 있어야 Burst 백엔드를 사용 가능하다고 한다 .
Package Manager에서 검색하여 설치해주자 .
- Burst 1.3.3 이상
- Collections 0.8.0-preview 5 이상
- Mathematics 1.0.1 이상
- Jobs 0.2.9-preview.15 이상
이때 , Collections와 Jobs와 같은 Preview Packages는 직접 다운로드가 필요하다 .
Add package from git UPL을 클릭 , com.unity.collections, 혹은 com.unity.jobs를 설치해준다 .
또한 정상적인 성능을 위해 Jobs - Burst - Enable Compilation을 활성화 해준다 .
Jobs - Leak Detection을 Off로 비활성화 해준다 .
[ 구조 ]
[ 구조 ]
다음은 두 Solver가 있는 장면을 보여주는 다이어그램이다.
첫번째 Solver는 3개의 천 Actor를 시뮬레이션하고 다른 하나의 Solver는 2개의 로프Actor를 시뮬레이션한다.
이처럼 Obi 는 01.Obi Solver / 02.Obi Updater / 03.ObiActorBlutPrint / 04.ObiActor 로 구성되어 있다 .
각 구성에 대해 살펴보자 .
[ 01 . Obi Solver ]
Obi Solver는 물리 시뮬레이션을 수행하는 구성 요소이다 .
Solver 는 중력, 관성 스케일등의 전역 시뮬레이션 매개변수와 모든 제약 조건에 대한 전역 매개변수를 노출한다 .
각 솔버는 계층 구조에서 찾은 모든 하위 Actor 를 시뮬레이션한다
이를 위해 여러 백엔드를 사용할 수 있다 (Obi 5.5 이상만 해당).
[ 02 . Obi Updater ]
Obi Updater는 하나 이상의 Solver 의 시뮬레이션을 발전시켜
Unity의 자체 물리 엔진과 동기화를 유지하는 구성 요소이다.
일반적인 사용 사례를 다루기 위해 여러 유형의 Updater가 Obi에 포함되어 있지만 시
뮬레이션 업데이트 주기를 정밀하게 제어해야 하는 경우 직접 작성할 수 있다.
[ 03. Obi ActorBlueprint ]
Obi Actor BluePrint는 많은 Particle과 제약 조건을 저장하는 Asset이다.
자체적으로 시뮬레이션이나 렌더링을 수행하지 않는다.
텍스처나 오디오 파일과 다르지 않은 데이터 컨테이너 일 뿐이다 .
Obi Actor BluePrint는 메시(ObiCloth 및 ObiSoftbody), 곡선(ObiRope) 또는 material 정의(ObiFluid)에서 생성된다.
즉 , 현재 Actor의 양상 (모양등)을 저장한다 .
[ 04. Obi Actor ]
Obi Actor는 Solver 내에서 BluePrint를 인스턴스화하는 구성 요소이다.
모든 Actor는 solver 의 자식 이다 . 여러 Actor가 동일한 BluePrint를 공유할 수 있으며
가능한 한 동일한 BluePrint를 재사용하는 것이 좋다.
액터의 예로는 rope, a flag, a bouncy jelly, or a water emitter가 있다 .
정리하자면 , Obi Updater가 있는 상태에서 Obi Solver의 자식에 있는 Obi Actor는
Obi blueprint의 데이터를 받아 밧줄,옷감등을 구현한다
출처
'유니티 > Asset' 카테고리의 다른 글
[ Asset - ObiRope ] 06 . 제약 유형 (0) | 2023.07.25 |
---|---|
[ Asset - ObiRope ] 05 . Simulation (0) | 2023.07.25 |
[ Asset - ObiRope ] 04 . Actor (0) | 2023.07.24 |
[ Asset - ObiRope ] 03 . Updater (0) | 2023.07.24 |
[ Asset - ObiRope ] 02 . Obi Solver (0) | 2023.07.24 |