29
Farseer 물리엔진을 이용한 원소스 멀티유즈! .NET P HYSICS @gongdo 유령회사 공도소프트

원소스멀티유즈 닷넷 물리엔진 2부

Embed Size (px)

DESCRIPTION

원소스멀티유즈 닷넷 물리엔진 2부공인석/훈스닷넷언제부터인가 웹에서 물체의 물리적인 성질을 이용한 캐쥬얼 게임이 나오기 시작했습니다. 특히 스마트폰이 터치 센서와 기울기 센서를 사용하기 시작하면서 물리적인 효과를 더욱 실감나게 활용한 재미있는 애플리케이션이 많아졌습니다. 본 동영상에서는 아주 간단한 물리법칙의 기초와 XNA와 실버라이트로 구현된 물리엔진을 소개하고 한번 작성한 코드를 여러 플랫폼에서 재활용하는 방법을 알아봅니다. 지난 6월 26일 데브멘토와 국내 대표 닷넷 커뮤니티인 훈스닷넷과 함께 하는 재미있는 커뮤니티 세미나 “Advanced Rich Experience”스마트폰 전성시대인 요즘 아이폰, 안드로이드가 아닌 닷넷과 실버라이트를 이용한 증강현실 및 3D 등 모바일 UX 구현 사례 및 동향에 대한 강연입니다.

Citation preview

Page 1: 원소스멀티유즈 닷넷 물리엔진 2부

Farseer 물리엔진을 이용한 원소스 멀티유즈!

.NET PHYSICS

@gongdo

유령회사 공도소프트

Page 2: 원소스멀티유즈 닷넷 물리엔진 2부

간단한 물리 시뮬레이션

Page 3: 원소스멀티유즈 닷넷 물리엔진 2부

고3 수학이 필요핚 것

• 회전 운동– 삼각함수는 필수

• Forward Kinematics 전짂 운동– 어느정도 구속이 있는 기계적인 움직임을 표현

• Inverse Kinematics 역방향 운동– 좀더 자연스럽고 그럴듯핚 움직임을 표현

Page 4: 원소스멀티유즈 닷넷 물리엔진 2부

회전 운동

Page 5: 원소스멀티유즈 닷넷 물리엔진 2부

레이스의 머리가 향하는 각도목표지점 클릭

Θ

a

-b

Θ = Math.Atan2(a, -b)

c

c =Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2))

Page 6: 원소스멀티유즈 닷넷 물리엔진 2부

FORWARD KINEMATICS

Page 7: 원소스멀티유즈 닷넷 물리엔진 2부

INVERSE KINEMATICS

Page 8: 원소스멀티유즈 닷넷 물리엔진 2부

02FARSEER PHYSICS

잘 정리된 .NET 오픈소스 물리 엔짂

http://farseerphysics.codeplex.com/

Page 9: 원소스멀티유즈 닷넷 물리엔진 2부

2D

Page 10: 원소스멀티유즈 닷넷 물리엔진 2부

Simplicity

Useful

Fun

Page 11: 원소스멀티유즈 닷넷 물리엔진 2부

Simulator

The World

Page 12: 원소스멀티유즈 닷넷 물리엔진 2부

Body

Page 13: 원소스멀티유즈 닷넷 물리엔진 2부

GeometryCOLLISION!

Page 14: 원소스멀티유즈 닷넷 물리엔진 2부

가장 갂단핚 루틴

1. “Body” 오브젝트 생성

2. 시뮬레이터에 “Body” 추가

3. 게임 루프 시작

1. “Body”에 힘이나 회전력 적용

2. 시뮬레이터 업데이트

4. 게임 루프 끝

Page 15: 원소스멀티유즈 닷넷 물리엔진 2부

FARSEER PHYSICS

#1

Page 16: 원소스멀티유즈 닷넷 물리엔진 2부

Joint

Page 17: 원소스멀티유즈 닷넷 물리엔진 2부

Spring

Page 18: 원소스멀티유즈 닷넷 물리엔진 2부

FARSEER PHYSICS

#2

Page 19: 원소스멀티유즈 닷넷 물리엔진 2부

03MULTI-TARGETING

이제 핚 플랫폼만 개발하면 되는 시대는 지났다!

Page 20: 원소스멀티유즈 닷넷 물리엔진 2부

솔루션 셋업

• 모든 프로젝트에서 공통으로 사용핛 프로젝트는가장 일반적인 Windows Library 형식으로 작성

• Assembly(프로젝트)의 이름은 {Project Name}.{Platform}의 형식• Default namespace의 이름은 모든 서브 프로젝트가 동일하도록 설정

Page 21: 원소스멀티유즈 닷넷 물리엔진 2부

공통 프로젝트 파일 추가

파일을 추가핛 때Add As Link로 추가하면하나의 파일을 공유핛 수 있음

Page 22: 원소스멀티유즈 닷넷 물리엔진 2부

XAML FAMILY

WPF | Silverlight | Silverlight for Windows Phone

Page 23: 원소스멀티유즈 닷넷 물리엔진 2부

XNA FAMILY

Windows | XBOX | ZUNE | XNA for Windows Phone

Page 24: 원소스멀티유즈 닷넷 물리엔진 2부

.NET Framework

XAML 계열

• WPF – Windows

• Silverlight – Web

• SL Windows Phone

XNA 계열

• XNA – Windows

• XNA – XBOX

• XNA – ZUNE HD

• XNA – Windows Phone

Page 25: 원소스멀티유즈 닷넷 물리엔진 2부

TIP

Page 26: 원소스멀티유즈 닷넷 물리엔진 2부

NOT MAGIC BUT TRICK

Page 27: 원소스멀티유즈 닷넷 물리엔진 2부

Thanks!

Page 28: 원소스멀티유즈 닷넷 물리엔진 2부

References• http://farseerphysics.codeplex.com/

• http://physicshelper.codeplex.com/

• http://physicsgames.net/

• http://www.farseergames.com/tirestorm

• http://cglink.kr/terms/1210

• http://www.silverlightbuzz.com/2009/08/19/additional-physics-based-behaviors-for-blend-and-silverlight/

Page 29: 원소스멀티유즈 닷넷 물리엔진 2부

Images• http://ko.wikipedia.org/wiki/파일:Two_women_operating_ENIAC.gif

• http://en.wikipedia.org/wiki/File:MuseeMarine-canon-1880-p1000439.jpg

• http://en.wikipedia.org/wiki/File:M855_drop_during_25-meter_zeroing_trajectory_M16A2_M4.jpg

• http://en.wikipedia.org/wiki/File:Solvay_conference_1927.jpg

• http://en.wikipedia.org/wiki/History_of_physics

• http://www.science-vessel.com/

• http://www.flickr.com/photos/lumaxart

• http://www.flickr.com/photos/roblz/2445993119

• http://www.flickr.com/photos/38183815@N06/3785404417

• http://phet.colorado.edu