기존에 사용하던 태터툴즈 설치형 블로그에서 wordpress 로의 이전 작업이 대부분 끝났다.
스킨을 나름대로 편집하여 사용하는 바람에 이전에는 버전업이 될때 적절하게 이전할 수 없어 도저히 기존상태에서는 업그레이드를 할 수 없었다. 기존 호스팅 서비스도 불안하여 이번기회에 도메인 기관이전 하였고, 호스팅업체도 wordpress 를 지원하는 곳으로 옮겼다.
전세계 설치형 블로그의 90% 이상을 점유한 블로그답게 수많은 플러그인과 스킨들이 참 맘에 들었다.
자료는 대부분 기존 블로그 내용을 살려 옮겨왔고 기존 링크는 아마 상당히 바뀌었을 것이다.
새롭게 블로그를 구성한 만큼 알찬내용으로 채워나갈 생각이다.
Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.
Integrated Editor
Everything is done through Unity’s simple user interface. Thousands of hours of thought and spit-polish have gone into it.
Read more
Graphical Power
Unity has a highly optimized graphics pipeline for both
DirectX and OpenGL.
Read more
Asset Importing
All major file formats are supported, and almost any art application can be used with Unity. Read more
One-Click Deployment
Unity supports a wide range of platforms when you release your work to the come alive. Read more
Wii Publishing
The industry’s most popular console just got a lot easier to develop for…
Read more
iPhone Publishing
Revolutionary game development comes to a revolutionary device.
Read more
Shaders
Unity’s shader system combines ease of use, flexibility and performance. Read more
Terrains
Vast, densely foliaged landscapes that run smoothly on low-end hardware. Read more
Networking
Go from single-player to full realtime multiplayer games.
Read more
Physics
Bring your interactions to life with the built-in Ageia PhysX™ physics engine.
Read more
Audio & Video
Mix realtime 3D graphics with streamed audio and video.
Read more
Scripting
Blazing fast .NET-based JavaScript and C#, with rich libraries and great documentation.
Read more
Unity Asset Server
The Unity Asset Server is an add-on product which adds version control to Unity.
Read more
Shadow & Light
Realtime soft-shadows and baked lightmaps, spiced up with halos and lens flares.
Read more
Documentation
We provide you with step by step tutorials, documentation and example projects.
Read more
3D game 개발 툴로 많이 사용되고 있으며 인터페이스가 3D 모델링 툴과 비슷하여 모델링툴을 다뤄봤던 경험이 있다면 쉽게 접근할 수 있다.
특히 하드웨어 가속을 지원하고 있고 Flash 플레이어의 미미한 하드웨어 가속 기능과 비교했을때 엄청난(?) 성능을 보여주고 있어 인스톨레이션과 같은 웹이 아닌 다른 플랫폼의 컨텐츠를 제작할 때 상당한 힘을 발휘 할 것으로 보인다.
3D 게임 개발용도로 쓰이기 때문에 물리엔진이 탑재되어 있으며 각 오브젝트를 제어할 수 있는 스크립트 언어를 제공하여 궁극의 방향이라고 할 수 있는 3D 게임을 생각보다 쉽게 구현할 수 있는 환경을 제공해준다. 스크립트 언어는 자바스크립트와 C# 이 주로 사용되고 액션스크립트에 익숙한 플래시 개발자라면 쉽게 배울수 있다.
지원하는 플랫폼은 데스크탑,Wii 콘솔게임,i-phone 게임 뿐만아니라 Web 도 플래시 플레이어와 같이 플러그인 방식으로 지원한다.
아래 링크에 데모버전이 있는데 웹플러그인 방식이라 플레이어를 설치한 후에 확인하면 된다.
Demo site
http://unity3d.com/gallery/live-demos/tropical-paradise
서브버전으로 각종 프로젝트를 진행하다보면 여러가지의 오픈소스들을 활용해야 할 때가 있는데 그럴때 외부 저장소에 있는 오픈소스 프로젝트를 현재 작업하고 있는 저장소에 포함시키면 상당히 효율적으로 외부라이브러리를 관리할 수 있다.
다시말해 진행하려는 프로젝트 저장소를 생성하고 그 저장소에 Papervision 이라든지 Away3D 와 같은 외부 저장소의 소스를 연결할 수 있다는 의미이다. 이렇게 되면 현재 저장소에 외부 오픈소스가 귀속되어 실제 버전관리가 이루어지지 않는 맹점을 해결할 수 있다.
서브버전 디렉토리 속성중에 svn:externals 이라는 것이 있는데 이것을 이용하면 현재 저장소에 다른 저장소의 내용을 포함시킬 수가 있다.

위와 같이 외부저장소에서 가져온 라이브러리는 독립적인 버전관리가 이루어지며 한 저장소 안에서 여러개의 서로다른 저장소의 라이브러리를 가져와 연결할 수 있다.
아래 설명은 eclipse 기반의 서브버전 플러그인인 Subclipse 를 작업기준으로 한다.
우선 SVN 프로젝트를 생성하고 속성을 설정하고자 하는 폴더에서 마우스 우클릭을 하여
아래와 같이 Team –> Set Property… 메뉴를 클릭한다.

그러면 다음과 같은 svn 속성 설정창이 뜨는데 Property name 으로 svn:externals 을 선택하고 Property content (value)값을 다음과 같은 정의로 입력해준다.

svn:externals [저장할 디렉토리](-r 리비전번호)[외부저장소의 URL]
lib/pv -r 873 http://papervision3d.googlecode.com/svn/trunk/as3/turnk/src
Property content (value) 정의는 크게 두부분으로 구성되는데 처음부분은 외부저장소 파일이 저장될 프로젝트의 디렉토리 이름이고 두번째는 외부저장소의 URL 로 이루어진다. 그리고 외부저장소에서 원하는 리비전번호의 파일을 제한적으로 연결할 수 있는데 이는 외부저장소의 뜻하지 않은 변경사항에 현재 적용하고 있는 프로젝트와의 충돌이나 오류를 막아준다. 이는 옵션사항이니 항상 최신버전을 가져오려면 생략하면 된다. 또한 여러개의 저장소를 가져올 경우 위와 같은 형식으로 각각의 다른 라인으로 작성하면 현재 프로젝트에서 여러개의 서로다른 외부저장소를 연결하여 사용할 수 있다.
입력이 끝났으면 업데이트를 실행해보자. 그러면 외부저장소의 파일들을 프로젝트내로 가져올것이다. 그리고 변경사항에 대해 커밋을 한다.
여기서 중요한 사실은, 커밋한다고 해서 현재 프로젝트에서 업데이트 되었던 외부저장소의 파일들이 저장소에 모두 커밋되는것이 아니다. 저장소를 확인해보면 알 수 있듯이 서버상에는 svn 속성값만 변경되었을 뿐 어떠한 외부저장소의 폴더가 반영된 것을 볼 수 없을 것이다.
또한, 현재 프로젝트에서 외부저장소를 포함한 모든 작업파일에 대한 변경사항을 커밋할 때 만약 외부 저장소의 파일을 직접 변경했다고 하더라도 자동으로 외부저장소의 파일을 커밋하지 않는다는 것이다. 외부저장소의 변경을 커밋하고 싶으면 해당 외부디렉토리로 직업가서 커밋을 직접해줘야한다.
정리한다 하면서도 미루고 있었는데 지금보니 시간이 1년이 훌쩍 지나서 그런지 런칭되었던 사이트의 링크들이 많이 깨져있었다.
요즘에는 쉽게 쓸 수있는 3D Engine 이 있어서 흔히 볼 수 있는 인터랙션이지만 그때만 해도 이런 형태로 구현하기가 쉽지 않았던 기억이 난다.
물론 이 당시에도 papervision3D 초기버전이 나와있었긴 했지만 AS2.0 버전이여서 성능상의 문제로 사용하지 못했다.
기존 Samsung Mobile Ultra 시리즈의 통합 플랫폼사이트로 여러개의 사이트를 통합할 수 있는 사이트의 구조가 필요했다. 각기 다른 나라 다른회사에서 제작한 사이트를 통합한다는 것이 여간 힘든게 아니였다. 또한 플랫폼인 만큼 모든 이미지나 텍스트 정보를 모듈화 시켜야하는 것도 상당한 부담이였다. 각 오브젝트간의 연관성있는 움직임, 그리고 유기체적인 움직임을 표현하고자 최대한 공을 들였다. 개인적으로 가장 애착이 가는 프로젝트 중 하나이다.


2007.6
Samsung Mobile – Ultra Platform
Project manager : 김희선
Planning : 김희선,김상미
Visual / UI Design : 박미연,이정인
Interaction Design : 김기정, 김대우,김정빈
http://samsungmobile.dstrict.com/test_site/platform/en/platform/
flash 개발환경이 AS3.0 대체되고 있는 상황에서 기존에 개발되어 있던 AS1.0 또는 AS2.0 으로 개발된 컨텐츠의 병행사용은 어느정도 같이 가져가여 할 부분이다.
여기서 약간 문제가 되는 부분은 AS3.0 으로 제작된 부분에서 AS1.0 또는 AS2.0 제작된 부분을 로드할 경우 발생하는 이슈이다.
AS3.0 부터는 AVM2 라고 하는 성능이 대폭개선된 가상머신을 도입했다. 이전의 가상머신은 AVM1 이라고 하여 AS1.0 또는 AS2.0 이 실행될 수 있는 환경을 말한다.
이런 기본적인 환경의 차이로 인해 기본적으로 AVM1 과 AVM2 무비사이간의 어떠한 커뮤니케이션이 가능하지 않다. 물론 LocalConnection 을 사용하면 가능하다.
단지, AVM2 에서 AVM1 을 로드하여 어떠한 cross-scripting 없이 사용한다면 로드한다는 것 자체에 별다는 이슈가 없어야 할텐데 실제적으로는 몇가지 문제가 발행한다.
만약에 AVM2 기반에서 AVM1 의 파일을 로드해서 사용했을 경우 일반적으로는 별 이상없이 작동한다. 하지만 AVM1 파일의 depth 가 커지면 커질수록 다시말해 AVM1 파일의 구조가 서로다른 로더에 의해 여러개의 구조로 이루어졌을경우 이상하게도 이 AVM1 파일들간의 인스턴스 구조가 변경되는 문제가 발생한다. 이는 여러 다른 플래시 개발자에게도 발생한 현상이다.
이러한 결과로 로드한 무비가 제대로 제어가 되지않거나 unload 가 되지 않는 현상이 발생한다.
아직까지 원인이 무엇인지는 찾지는 못했지만 약간의 팁으로 이런 위기상황를 극복할 수 있다.
첫째로, AVM1 컨텐츠들 간에서 다른 AVM1 컨텐츠를 로드해서 제어할때는 반드시 새로운 무비클립을 동적으로 생성하여 로드를 하고 언로드할 경우에는 remove 를 한다.
둘째로, 로드를 하는 AVM2 에서는 로더를 DisplayContainer 에 직접 붙이지 말고 로더의 컨텐츠(loader.content)를 사용하여 추가한다.
Recent Comments