<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kimkijeung.com</title>
	<atom:link href="http://kimkijeung.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kimkijeung.com</link>
	<description>Interactive development,flash,Actionscript</description>
	<lastBuildDate>Wed, 25 Aug 2010 09:12:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<image>
			<title>Kimkijeung.com</title>
			<url>http://kimkijeung.com/blog/wp-content/uploads/2009/12/index.gif</url>
			<link>http://kimkijeung.com</link>
			<width></width>
			<height></height>
			<description>Interactive development,flash,Actionscript</description>
		</image>		<item>
		<title>Unity 3 preview : Lightmapping</title>
		<link>http://kimkijeung.com/2010/08/25/unity-3-preview-lightmapping/</link>
		<comments>http://kimkijeung.com/2010/08/25/unity-3-preview-lightmapping/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 08:47:40 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Unity3d]]></category>
		<category><![CDATA[beast]]></category>
		<category><![CDATA[cornell box]]></category>
		<category><![CDATA[lightmapping]]></category>
		<category><![CDATA[unity 3]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=929</guid>
		<description><![CDATA[Unity 3 에서 여러가지 새로운 기능들이 추가되었지만 가장 눈의 띄는 것중에 하나가 Beast 라는 lightmapping 툴이 통합된 점이다. 3D 에서 렌더링 퀄리티의 판단은 아마 광원(lighting) 과 그림자(shadow) 표현이 대부분을 차지할 것이다. 하지만 이런 프로세스를 게임과 같은 컨텐츠에서 실시간으로 처리하기에는 너무 프로세스의 양이 많기 때문에 정적인 광원과 그림자는 실시간으로 렌더링하지 않고 미리 라이트맵 이라는 것을 사용하여 [...]]]></description>
			<content:encoded><![CDATA[<p>Unity 3 에서 여러가지 새로운 기능들이 추가되었지만 가장 눈의 띄는 것중에 하나가 <strong><a rel="nofollow" href="http://www.illuminatelabs.com/products/beast" target="_blank">Beast</a> </strong>라는<strong> </strong>lightmapping 툴이 통합된 점이다. 3D 에서 렌더링 퀄리티의 판단은 아마 광원(lighting) 과 그림자(shadow) 표현이 대부분을 차지할 것이다.</p>
<p>하지만 이런 프로세스를 게임과 같은 컨텐츠에서 실시간으로 처리하기에는 너무 프로세스의 양이 많기 때문에 정적인 광원과 그림자는 실시간으로 렌더링하지 않고 미리 라이트맵 이라는 것을 사용하여 좀더 사실적인 3D 환경을 구성한다.</p>
<p><a rel="shadowbox[lightmap]" href="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox1.png"><img class="alignnone size-full wp-image-937" title="cornell box" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox1-e1282715031682.png" alt="" width="250" height="189" /></a><a rel="shadowbox[lightmap]" href="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox2.png"><img class="alignnone size-full wp-image-938" title="cornell box" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox2-e1282721719722.png" alt="" width="250" height="189" /></a></p>
<p><a rel="shadowbox[lightmap]" href="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox3.png"><img class="alignnone size-full wp-image-945" title="cornell box" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox3-e1282723295861.png" alt="" width="250" height="189" /></a><a rel="shadowbox[lightmap]" href="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox4.png"><img class="alignnone size-full wp-image-946" title="cornell box" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/cornellBox4-e1282723699291.png" alt="" width="250" height="189" /></a></p>
<p>이전 버전(2.6.x) 에서는 이런 라이트맵 생성을 3D Max 나 Maya 과 같은 외부 렌더링 툴을 이용하여 라이트맵을 베이킹하여 사용하였지만 3.0 버전에서는 Unity 에서  Beast 라는  라이트맵 툴이 이 역할을 대신 해 준다. 아래 메뉴가 unity 에 통합되어있는 라이트 맵툴에서 가장 옵션이 많은 부분이다. 기존의 다른 렌더러에 수많은 라이트 옵션에 비하면 상당히 간단한 편이다.</p>
<p style="text-align: center;"><img class="size-full wp-image-954 aligncenter" title="lightmaptool" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/lightmaptool.png" alt="" width="370" height="500" /></p>
<p style="text-align: left;">GI(global illumination) 기능을 사용한 실사의 라이팅 표현 및 라이트 UV 맵까지 자동으로 알아서 생성해줘서 일일이 맵을 잡아줘야하는 수고를 엄청 덜 수 있다. 하지만 고퀄리티의 라이트 표현을 하는 만큼 라이트 맵 렌더링 시간이 옵션에 따라 기하급수적으로 늘어날 수도 있어 적절하게 조절을 해야한다.</p>
<p style="text-align: left;">가장 렌더링 시간을 잡아먹는 부분이 라이트맵의 사이즈를 결정하는 Resolution 부분이다. 단위 unit 당 texture 를 나타내는  pixel 갯수를 얼마로 할지 나타내는 값으로 이 값이 커질수록 맵사이즈가 늘어나게되어 퀄리티가 정교해지긴하지만 상대적으로 렌더링 시간이 오래 걸리게 된다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/08/25/unity-3-preview-lightmapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get a texture on the terrain [Unity]</title>
		<link>http://kimkijeung.com/2010/08/18/unity-how-to-get-a-texture-on-the-terrain/</link>
		<comments>http://kimkijeung.com/2010/08/18/unity-how-to-get-a-texture-on-the-terrain/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 16:51:26 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Unity3d]]></category>
		<category><![CDATA[alpha map]]></category>
		<category><![CDATA[footprints sound]]></category>
		<category><![CDATA[splat map]]></category>
		<category><![CDATA[Terrain]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=890</guid>
		<description><![CDATA[Unity 는 지형을 생성하고 디자인하는 방법이 마치 포토샾에서 이미지 리터칭하는 것과 같이 브러쉬를 이용하여 높이의 고저를 표현할 수 있다. 또한 지형에 텍스쳐를 드로잉하는 방법도 같은 방법으로 alpha map 이라고 하는 splat map 을 사용하여 해당 텍스쳐의 맵 데이타를 구분하여 저장, 각각을 서로 블렌딩하여 표현해주는 방법을 사용하고 있다. 하지만 툴자체에서 텍스쳐링을 하는 방법은 상당히 쉬운반면,  script [...]]]></description>
			<content:encoded><![CDATA[<p>Unity 는 지형을 생성하고 디자인하는 방법이 마치 포토샾에서 이미지 리터칭하는 것과 같이 브러쉬를 이용하여 높이의 고저를 표현할 수 있다. 또한 지형에 텍스쳐를 드로잉하는 방법도 같은 방법으로 alpha map 이라고 하는 splat map 을 사용하여 해당 텍스쳐의 맵 데이타를 구분하여 저장, 각각을 서로 블렌딩하여 표현해주는 방법을 사용하고 있다.</p>
<p>하지만 툴자체에서 텍스쳐링을 하는 방법은 상당히 쉬운반면,  script 로 접근하여 해당 위치의 텍스쳐를 얻어내는 방법은 위 내용을 알지 못하고서는 상당히 난해한 내용일 수 있을 것이다.</p>
<blockquote><p><span style="color: #3366ff;">만약 player 가 지형을 움직이고 있을 때 각각 다른 지형텍스쳐 위에서의  발자국 소리를 구현한다고 했을때 가장 명괘한 방법이 어떤것일까?</span></p></blockquote>
<p>가장 먼저 쉽게 접근할 수 있는 방법으로는 collider 의 trigger mode 를 이용하여 체크하는 방법이 있다. 하지만 이 방법은 실내와 같이 명확하게 오브젝트 중심의 mesh 형태의 구성에 알맞다. 즉, 지형과 같은 오브젝트일 경우 실내에 비해 크기가 훨씬 커서 정확하게 collider 로 체크하는것이 비효율적일 수 있다.</p>
<p>여기에서 위에서 설명한 alpha map 을 활용하여 접근한다면 한결 수월하게 위 문제를 해결 할 수 있을 것이다. 우선 아래 지형 이미지와 코드를 살펴보자.</p>
<p><img class="alignnone size-full wp-image-896" title="sample image" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/terrain-e1282041457227.png" alt="" width="500" height="215" /></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> PlayerHitCheck <span style="color: #008000;">:</span> MonoBehaviour
<span style="color: #000000;">&#123;</span>
&nbsp;
	<span style="color: #0600FF;">private</span> TerrainData terrainData<span style="color: #008000;">;</span>
	<span style="color: #0600FF;">private</span> Vector3 terrainPos<span style="color: #008000;">;</span>
	<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> resultText<span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">void</span> Start <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		terrainData <span style="color: #008000;">=</span> Terrain.<span style="color: #0000FF;">activeTerrain</span>.<span style="color: #0000FF;">terrainData</span><span style="color: #008000;">;</span>
		terrainPos <span style="color: #008000;">=</span> Terrain.<span style="color: #0000FF;">activeTerrain</span>.<span style="color: #0000FF;">transform</span>.<span style="color: #0000FF;">position</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #FF0000;">float</span> textureIndex1<span style="color: #008000;">;</span>
	<span style="color: #FF0000;">float</span> textureIndex2<span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">void</span> Update<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
&nbsp;
		<span style="color: #FF0000;">int</span> mapX <span style="color: #008000;">=</span> Mathf.<span style="color: #0000FF;">RoundToInt</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>transform.<span style="color: #0000FF;">position</span>.<span style="color: #0000FF;">x</span> <span style="color: #008000;">-</span> terrainPos.<span style="color: #0000FF;">x</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">/</span> terrainData.<span style="color: #0000FF;">size</span>.<span style="color: #0000FF;">x</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">*</span> terrainData.<span style="color: #0000FF;">alphamapWidth</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #FF0000;">int</span> mapZ <span style="color: #008000;">=</span> Mathf.<span style="color: #0000FF;">RoundToInt</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>transform.<span style="color: #0000FF;">position</span>.<span style="color: #0000FF;">z</span> <span style="color: #008000;">-</span> terrainPos.<span style="color: #0000FF;">z</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">/</span> terrainData.<span style="color: #0000FF;">size</span>.<span style="color: #0000FF;">z</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">*</span> terrainData.<span style="color: #0000FF;">alphamapHeight</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
		<span style="color: #FF0000;">float</span><span style="color: #000000;">&#91;</span>,,<span style="color: #000000;">&#93;</span> splatmapData <span style="color: #008000;">=</span> terrainData.<span style="color: #0000FF;">GetAlphamaps</span><span style="color: #000000;">&#40;</span>mapX, mapZ, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> 
&nbsp;
		textureIndex1 <span style="color: #008000;">=</span> splatmapData<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//grass texture</span>
		textureIndex2 <span style="color: #008000;">=</span> splatmapData<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//sand texture</span>
&nbsp;
		resultText <span style="color: #008000;">=</span> <span style="color: #666666;">&quot; grass  : &quot;</span><span style="color: #008000;">+</span>textureIndex1<span style="color: #008000;">+</span><span style="color: #666666;">&quot;<span style="color: #008080; font-weight: bold;">\n</span> sand : &quot;</span><span style="color: #008000;">+</span>textureIndex2<span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">void</span> OnGUI<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		GUI.<span style="color: #0000FF;">BeginGroup</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> Rect <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">10</span>, <span style="color: #FF0000;">10</span>, <span style="color: #FF0000;">200</span>, <span style="color: #FF0000;">40</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		GUI.<span style="color: #0000FF;">Box</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> Rect <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">200</span>, <span style="color: #FF0000;">40</span><span style="color: #000000;">&#41;</span>,resultText<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		GUI.<span style="color: #0000FF;">EndGroup</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>지형 텍스쳐는 간단하게 잔디와 모래 2종류로 구성되어있고 해당 텍스쳐 위로 FPC(First Person Controller) 가 접근할때 그 아래있는 텍스쳐의 alpha map 데이타를 추적하는 샘플이다. 가장 핵심적인 역할을 하는 부분이</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//Method</span>
<span style="color: #008080; font-style: italic;">//float[,,] GetAlphamaps (int x,int y,int width,int height)</span>
 <span style="color: #FF0000;">float</span><span style="color: #000000;">&#91;</span>,,<span style="color: #000000;">&#93;</span> splatmapData <span style="color: #008000;">=</span> terrainData.<span style="color: #0000FF;">GetAlphamaps</span><span style="color: #000000;">&#40;</span>mapX, mapZ, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>이 부분으로 player 가 있는 영역을 기준으로  <a href="http://unity3d.com/support/documentation/ScriptReference/TerrainData.html" target="_blank">TerrainData</a> 에서 3차원 배열 텍스쳐 값을 얻어내는 메서드이다. 이 메서드는 Unity 2.6.x 에서는 공식적으로 명문화된(undocumented) 메스드가 아니지만 Unity 3 에서는 문서화 되어 공식화 되었다. 2.6.x 버전사용자들도 물론 사용가능하다.</p>
<p>여기서는 player 바로 아래 1&#215;1 픽셀 짜리 영역만 체크하면 되므로 width 와 height 값을 모두 1로 설정하였다. x,y 값은 alpha map 사이즈를 기준으로 한 player 의 정수 좌표를 의미한다. 더 넓은 영역을 추출하려면 width,height 값을 원하는 값만큼 설정하면 된다. 이를 통해  splatmapData 라는  3차원배열(float[,,]) 을 얻을 수 있는데 의미는 다음과 같다.</p>
<p><span style="color: #888888;">해당 영역에서의 alpha map 가중치(0~1)) = splatmapData[x축의 pixel index, z축의 pixel index , 텍스쳐 layer index] </span></p>
<p>예를들어 player 아래에 2&#215;2 영역의 alpha map을 체크한다고 했을 때 아래와 같은 이미지로 정리할 수 있다.</p>
<p><img class="alignnone size-full wp-image-913" title="texturelayer" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/texturelayer.jpg" alt="" width="500" height="450" /></p>
<p><img class="alignnone size-full wp-image-915" title="terraintool" src="http://kimkijeung.com/blog/wp-content/uploads/2010/08/terraintool.jpg" alt="" width="492" height="498" /></p>
<p>샘플에는 2개의 텍스처만 사용했기 때문에 splatmapData 의 texture layer index가  1까지 존재하였지만 만약 더 등록한다면 등록된 순서대로 인덱스가 정해지게 된다.</p>
<p>위에서 설명했듯이 샘플의 경우는 1&#215;1 픽셀 한개를 체크한 경우라 splatmapData[0,0,0], splatmapData[0,0,1] 과 같이 2개의 가중치만을 얻었다.</p>
<p>그리고 이 가중치는 0~1 까지의 범위의 값인데 해당텍스쳐의 알파값의 정도를 의미하는 것으로 이 값이 0일 경우는 해당 텍스쳐가 없는 경우이고 반대로 1일 경우는 해당 텍스쳐만 존재한다는 의미이다.</p>
<p>따라서 이 값을 사용하면 여러가지 텍스쳐가 알파블렌딩 된 지형텍스쳐를 사용한다고 해도 그 가중치에 맞게 player 발자국 소리를 조합하여 사용할 수 있을 것이다.</p>
<p><a href="http://kimkijeung.com/blog/wp-content/uploads/2010/08/terrainTexture.zip">download sample files</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/08/18/unity-how-to-get-a-texture-on-the-terrain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity 3D Basic API Hierarchy</title>
		<link>http://kimkijeung.com/2010/07/11/unity-3d-basic-api-hierarchy/</link>
		<comments>http://kimkijeung.com/2010/07/11/unity-3d-basic-api-hierarchy/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 02:06:06 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Unity3d]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=872</guid>
		<description><![CDATA[Unity 는 스크립트 언어로 Javascript 와 C# 를 지원하는데 둘의 차이는 크지 않다.  전반적인 구조는 일반적인 프로그래밍 언어와 마찬가지로 Object 를 중심으로 상속관계를 맺어가는 구조이다. 그리고 Component 와 Behaviour 를 주축으로 확장해 나가는 방식으로 구성되어있다.  간략한 형태로 아래와 같이 상속관계를 도식화하여 나타내보았는데 물론 하위에 수많은 확장클래스는 제외하고 어느정도 Unity 에서 가장 기본이 되는 것들 위주로 [...]]]></description>
			<content:encoded><![CDATA[<p>Unity 는 스크립트 언어로 Javascript 와 C# 를 지원하는데 둘의 차이는 크지 않다.  전반적인 구조는 일반적인 프로그래밍 언어와 마찬가지로 Object 를 중심으로 상속관계를 맺어가는 구조이다. 그리고 Component 와 Behaviour 를 주축으로 확장해 나가는 방식으로 구성되어있다.  간략한 형태로 아래와 같이 상속관계를 도식화하여 나타내보았는데 물론 하위에 수많은 확장클래스는 제외하고 어느정도 Unity 에서 가장 기본이 되는 것들 위주로 정리해 보았다.</p>
<p>왠만한 기능들은 엔진 자체에서 처리해 주는 것들이 많아 생각보다 Class 의 갯수가 많지 않다고 생각들 수 있지만 C# 을 기본 언어로 지원하는 만큼 C# 의 System namespace 의 기능들을 고스란히 사용할 수 있다는 점에서는 알아야 할 내용이 적다고는 할 수 는 없을 것이다.</p>
<p>그래도 강력한 비쥬얼 에디터를 지원하는 만큼 3D 공간을 머리속으로만 상상하면서 코딩하는 어려움을 상당부분 해결할 수 있으면서  그만큼 엉청난 코드의 양이 줄어들 수 있다는 점에서 정말 혁신적인 툴인것 같다.</p>
<p><a href="http://kimkijeung.com/blog/wp-content/uploads/2010/07/Unity3d-API-Hierarchy.png" rel="shadowbox[post-872];player=img;" target="_blank"><img class="alignnone size-full wp-image-871" title="Unity3d API Hierarchy" src="http://kimkijeung.com/blog/wp-content/uploads/2010/07/Unity3d-API-Hierarchy-e1278812630547.png" alt="" width="500" height="567" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/07/11/unity-3d-basic-api-hierarchy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project epilogue : 3D Sensing Installation</title>
		<link>http://kimkijeung.com/2010/04/15/project-epilogue-3d-sensing-installation/</link>
		<comments>http://kimkijeung.com/2010/04/15/project-epilogue-3d-sensing-installation/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 03:09:39 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[3d camera]]></category>
		<category><![CDATA[dstrict]]></category>
		<category><![CDATA[gesture interaction]]></category>
		<category><![CDATA[hand gesture]]></category>
		<category><![CDATA[hologram]]></category>
		<category><![CDATA[j4]]></category>
		<category><![CDATA[R&D]]></category>
		<category><![CDATA[TOF]]></category>
		<category><![CDATA[wimpy]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=763</guid>
		<description><![CDATA[이전 버전의 Swing H (J4) 솔루션이 회사의 첫번째 R&#38;D 결과물로서 가능성을 확인한거라면 이번 버전은 좀더 직관적인 형태의 인터페이스의 추가와 정보전달의 용이성을 위한 하단부에 LCD 디스플레이가 추가로 크게 변경되어 개발되었다.  Swing H 에서의 인터랙션 장비는 반지를 통해 이루어졌는데 이 부분이 상당히 사용성에 여러가지 문제점을 드러내 차기버전에서는 좀더 이상적이라고 할 수 있는 아무런 도구없이 단지 손의 제스쳐로만 [...]]]></description>
			<content:encoded><![CDATA[<p>이전 버전의 <a href="http://kimkijeung.com/2010/04/08/project-epilogue-swing-h/">Swing H (J4)</a> 솔루션이 회사의 첫번째 R&amp;D 결과물로서 가능성을 확인한거라면 이번 버전은 좀더 직관적인 형태의 인터페이스의 추가와 정보전달의 용이성을 위한 하단부에 LCD 디스플레이가 추가로 크게 변경되어 개발되었다.  Swing H 에서의 인터랙션 장비는 반지를 통해 이루어졌는데 이 부분이 상당히 사용성에 여러가지 문제점을 드러내 차기버전에서는 좀더 이상적이라고 할 수 있는 아무런 도구없이 단지 손의 제스쳐로만 화면을 제어할 수 있게 개발하는것이 가능 큰 목표였다.</p>
<p>하지만 위 기능을 위해서는 손의 제스처를 인지하고 처리할 수 있는  별도의 처리가 필요했는데 이를 위해 카메라 영상을 통해 공간좌표까지 얻어올 수 있는 3D  Depth camera 인 <a href="http://en.wikipedia.org/wiki/Time-of-flight_camera" target="_blank">TOF(time of flight) camera</a> 를 사용하여 이미지 처리를 하였다.</p>
<div id="attachment_778" class="wp-caption alignleft" style="width: 130px"><img class="size-full wp-image-778   " title="FOTONIC-B70" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/120px-FOTONIC-B70.jpg" alt="" width="120" height="120" /><p class="wp-caption-text">       FOTONIC-B70        by Fotonic</p></div>
<div id="attachment_784" class="wp-caption alignleft" style="width: 130px"><img class="size-full wp-image-784   " title="TOF_Kamera" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/97px-TOF_Kamera.jpg" alt="" width="120" height="120" /><p class="wp-caption-text">    SwissRanger 4000     by MESA Imaging</p></div>
<div id="attachment_785" class="wp-caption alignleft" style="width: 130px"><img class="size-full wp-image-785   " title="PMDvision_CamCube" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/120px-800px-PMDvision_CamCube.jpg" alt="" width="120" height="120" /><p class="wp-caption-text">     PMD CamCube             by PMDTechnologies</p></div>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #888888;"> from <a href="http://en.wikipedia.org/wiki/Time-of-flight_camera" target="_blank">Wikidipedia</a></span></p>
<p>이 장비는 고유의 illumination wave 를 송출하여 반사되어 나오는 파장의 시간을 계산하여 정확하게 거리를 측정할 수 있다. 고유의 주파수를 사용하기 때문에 할로겐 조명과 같은 외부광원의 영향이 거의  없는 것과 빠른 FPS  지원이  장점이다. 하지만 상대적으로 2D camera 에 비해 상당히 고가인점이 단점으로 작용한다. 이런 TOF camera 로 부터 depth 정보가 담겨져 있는 영상을 이용해 CV(computer vision) 처리를 하여 특정 제스쳐를 검출하거나 추적할 수 있다.</p>
<p>이 솔루션이 검출할 수 있는 제스쳐는 기본적으로 주먹(Rock),가위(Sissors),보(Paper) 의 형태를 기본으로 한다. 손을 이용하는 제스쳐일 경우 이 세가지 형태의 제스쳐 사인이 가장 사용자가 이용하기에 편하고 인지하기 쉽기 때문에 모든 제스쳐의 구성은 이 세가지를 기반으로 설계되었다.</p>
<p><img class="alignnone size-full wp-image-808" title="Hand-Gesture-Module" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/Hand-Gesture-Module.jpg" alt="" width="499" height="482" /><br />
처음부터 이전 버전의 문제점에 대해 파악하고 같은 문제점을 일으키지 않기 위해 다각도로 고민하고 노력했지만 어느 프로젝트와 마찬가지로 결과물 그자체로서는 참 아쉬움이 많이 남았다. 아직까지 사용자가 제스쳐로 무언가를 조절한다는 생각이 조성되지 않았을 뿐더러 아무리 센서 작동이 정밀하더라도 컴퓨터는 사람만큼 인지능력이 뛰어나진 않다. 누구나 다 아는 직관적인 제스쳐 하나를 구현할려고 하더라도 절대 그것이 생각만큼 제작이 쉽지 않을 뿐더러 단지 개발자의 룰에 갇혀 간과하는 점이 무척 많다는 점이다.</p>
<blockquote><p>사용자를 고려해 쓰기쉽게 제작하면 이 솔루션의 장점인 다양한 제스쳐를 보여줄수 없고, 그렇다고 다양한 제스쳐를 적용할려고 하니 사용자는 무엇을 어떻게 작동시켜야 할 지 모르는 상황이 반복되는 것이다.</p></blockquote>
<p>참 어려운 문제였다. 어쩌면 영원히 풀 수 없는 문제일 수도라는 생각도 들었다. 단지 재미있고 신기한것은 기술이 발전하면 만들 수가 있다. 하지만 그것이 돈이 될 수 있는냐는 질문에는 항상 머뭇거리게 만든다.</p>
<p><span style="color: #ffffff;">.</span><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5590750&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="375" src="http://vimeo.com/moogaloop.swf?clip_id=5590750&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/5590750">J4</a> from <a href="http://vimeo.com/user1366086">d&#8217;strict</a> on <a href="http://vimeo.com">Vimeo</a>.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10928399&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="375" src="http://vimeo.com/moogaloop.swf?clip_id=10928399&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/10928399">3d sensing hologram installation</a> from <a href="http://vimeo.com/user3594262">vkimone</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>2009.3 ~ 2009.7</p>
<p><strong>R&amp;D Project – 3D Sensing Hologram Installation  (J4 ver 2.0)</strong></p>
<p>Project manager : 김기정,김정헌<br />
Planning : 김정헌,양희수,김기정,김정빈<br />
Visual / UI Design : 김기정,김정빈<br />
Interaction Design : 김기정,김정빈<br />
Product Design : 박진이<br />
3D Modeling : 신백호</p>
<p><a href="http://dstrict.com/reference/view.php?order=1&amp;page=1&amp;idx=31" target="_blank">view detail</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/04/15/project-epilogue-3d-sensing-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tween in Unity3D</title>
		<link>http://kimkijeung.com/2010/04/12/tween-in-unity3d/</link>
		<comments>http://kimkijeung.com/2010/04/12/tween-in-unity3d/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 10:35:18 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Unity3d]]></category>
		<category><![CDATA[iTween]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=736</guid>
		<description><![CDATA[심리스(seamless)한 컨텐츠 제작에 있어 필수적인 요소중 하나가 트윈(tween) 스크립트 일것이다. Flash 가 점점 인터랙티브 컨텐츠 제작툴로서 자리를 잡아가면서 TweenLite,Tweener 와 같은 Falsh Open API  트윈엔진들이 개발되어 트윈 스크립트에 대한 부담감을 상당히 덜어주었다. 사실 이런 트윈엔진들의 도움없이 정교한 script animation easing 조절이 쉽지 않을 뿐더러 컨텐츠 제작시에 오히려 주객전도가 되어 이런처리들을 하느라 많은 시간을 할애해야 하는 [...]]]></description>
			<content:encoded><![CDATA[<p>심리스(seamless)한 컨텐츠 제작에 있어 필수적인 요소중 하나가 트윈(tween) 스크립트 일것이다. Flash 가 점점 인터랙티브 컨텐츠 제작툴로서 자리를 잡아가면서 TweenLite,Tweener 와 같은 Falsh Open API  트윈엔진들이 개발되어 트윈 스크립트에 대한 부담감을 상당히 덜어주었다. 사실 이런 트윈엔진들의 도움없이 정교한 script animation easing 조절이 쉽지 않을 뿐더러 컨텐츠 제작시에 오히려 주객전도가 되어 이런처리들을 하느라 많은 시간을 할애해야 하는 경우가 발생한다. 물론 간단한 이징공식을 이용하여 구현하는 것이 가능하긴하지만  이런경우는 다양한 이징함수의 움직임을 이용하여 좀더 다이나믹한 움직임을 구현하는것과는 분명 움직임에 있어 차이가 나는것이 사실이다. 따라서 새로운 개발툴을 접할 시에는 항상 이런 기본적인 트윈엔진의 유무를 살펴보곤한다.</p>
<p>Unity3D 를 다루면서도 이런 트윈엔진이 분명있을거라 생각하고 찾아봤는데 Flash 만큼은 아니지만 3~4개 정도 찾을 수 있었다. 다만, 아직 많이 사용하는 툴이 아니다 보니 개인적으로 만들어 쓰는 형태라 아직까지는 대부분 기능이 다양하지 못하고 체졔적이지 못한게 약간은 아쉬운 부분이긴하다. 그중에서도 가장 완성도가 높은 <a href="http://www.pixelplacement.com/iTween/" target="_blank">iTween</a> 이라는 Unity3d Tween Engine 을 소개할까 한다.</p>
<p style="text-align: center;"><a href="http://www.pixelplacement.com/iTween/" target="_blank"><img class="size-full wp-image-740 aligncenter" title="iTween Logo" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/iTweenLogo.png" alt="" width="349" height="145" /></a></p>
<p>우선 공식 사이트를 한번 살펴보자. 언듯보면 TweenLite,TweenMax 의 사용법과 비슷하다. 아니 거의 같다고 보면 된다.  그도 그럴것이 위 엔진들을 기반으로 해서 만들었다고 하니 사용경험이 있는 Flash 개발자들은 한두번만 사용한다면 어렵지 않게 적용할 수 있을 것이다.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">private</span> <span style="color: #003366; font-weight: bold;">var</span> targetGameObject <span style="color: #339933;">:</span> GameObject<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> Awake<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	targetGameObject <span style="color: #339933;">=</span> gameObject<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> Start<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	iTween.<span style="color: #660066;">moveTo</span><span style="color: #009900;">&#40;</span>tweenTarget<span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;x&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">1.7</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;y&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;time&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">1.3</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;transition&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;easeInExpo&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;delay&quot;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">1.2</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;onComplete&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;TweenComplete&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> TweenComplete<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 <span style="color: #000066;">print</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;TweenComplete&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Unity3D 의 스크립트 언어가 Javascript / C# 으로 Flash  Actionscript 와 문법이 비슷한지라 기본적인 코드를 읽는데 큰 어려움이 없어<em> </em> Flash 개발자가 접근하기 한결 수월 하다. 아마도 Flash 에서의 3D 구현에 아쉬움을 느낀 많은 Flash 개발자들의 참여로 인해 올한해 가장 기대가 되는 툴이기도 하다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/04/12/tween-in-unity3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project epilogue : Swing H</title>
		<link>http://kimkijeung.com/2010/04/08/project-epilogue-swing-h/</link>
		<comments>http://kimkijeung.com/2010/04/08/project-epilogue-swing-h/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 18:12:58 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Project]]></category>
		<category><![CDATA[dstrict]]></category>
		<category><![CDATA[gesture interaction]]></category>
		<category><![CDATA[hologram]]></category>
		<category><![CDATA[j4]]></category>
		<category><![CDATA[R&D]]></category>
		<category><![CDATA[shop installation]]></category>
		<category><![CDATA[swing h]]></category>
		<category><![CDATA[wimpy]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=674</guid>
		<description><![CDATA[2008년 늦여름부터 시작해서 그해 연말까지 정신없이 진행했던 회사 자체 R&#38;D 프로젝트 였다. 시간이 많이 흐르긴했지만 아직도 그때의 기억은 생생하리만큼 또렷하다. 뭐하나 준비없이 시작했던 프로젝트였기에 두려움 반에 전혀새로운 무언가를 한다는 설레임과 기대감 반을 함께 한 채  그 해 하반기를 이것과 함께 했었다. 그 당시 회사(d&#8217;strict)는 본격적으로 UX 전문회사로 탈바꿈하기 위해 새로운 사업을 준비하는 중이였다. 그와중에 자체 기술없이는 [...]]]></description>
			<content:encoded><![CDATA[<p>2008년 늦여름부터 시작해서 그해 연말까지 정신없이 진행했던 회사 자체 R&amp;D 프로젝트 였다. 시간이 많이 흐르긴했지만 아직도 그때의 기억은 생생하리만큼 또렷하다. 뭐하나 준비없이 시작했던 프로젝트였기에 두려움 반에 전혀새로운 무언가를 한다는 설레임과 기대감 반을 함께 한 채  그 해 하반기를 이것과 함께 했었다.<br />
그 당시 회사(<a href="http://dstrict.com" target="_blank">d&#8217;strict</a>)는 본격적으로 UX 전문회사로 탈바꿈하기 위해 새로운 사업을 준비하는 중이였다. 그와중에 자체 기술없이는 새로운 UX도 없다는 신념아래 새로운 UX  solution 기술발굴에 온통 힘을 쏟았었다. 그때는 나를 포함한 대부분의 작업자들이 온라인 컨텐츠 제작에 익숙해져 있던터라 오프라인에서 돌아갈만한 재미난 무엇가를 생각하기가 쉽지가 않았었다. 더욱이 생소한 하드웨어를 다룰려다 보니 엄청난 시행착오를 거치지 않고서는 도저히 진행이 불가능했던 기억이 난다.</p>
<p>거의 4개월동안 정말 미친듯이 만들고 부수기를 반복하고 수많은 시행착오를 거쳐 만들어진 Swing H&#8230;결국은 단지 R&amp;D 성과물로서 의미를 부여할 수 밖에는 없었다. 상업적인 용도로는 이용하지 못했고 그럴만한 하드웨어및 소프트웨어 기술적인 완성도가 부족했었다. 그래도 나름대로 첫 R&amp;D 성과물로서 그당시에는 사람들의 눈을 한번쯤은 돌아보게 만들만한 것이였으니 개인적으로 많이 의미를 둘 수 있었다.</p>
<p><img style="margin-top: 30px; margin-bottom: 30px;" title="wimpy1_title" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/wimpy1_title.jpg" alt="" width="365" height="41" /></p>
<p>위 타이틀에서도 알 수 있듯이 이 솔루션은 hologram 과 interaction 을 결합한 매장설치물로 만들어진 것이였다. 그 당시 hologram 이라는 디스플레이는 많이 있었다. 또한, reflection 원리의 hologram 은 그리 어려운 기술은 아니였고  단순히 2D 동영상 플레이어로만 작동되는 것이 대부분의 결과물이였다. 반면 Swing H 는 hologram 의 특징을 최대한 살릴 수 있는 3D 컨텐츠로, 그것을 또한 사용자가 원하는 대로 제어할 수 있게 User interaction 을 추가한 형태로 제작이 되었다.</p>
<p><img class="alignnone size-full wp-image-695" title="swing h" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/swingh-e1270659946283.png" alt="swing h" width="500" height="602" /></p>
<p>엄밀히 말하자면 완벽한 hologram 이 아니기 때문에 느껴지는 이질감을 최대한 없애기 위해  컨텐츠 뿐만아니라 여러가지 하드웨어적인 설정이 골치아팠다. 기존에 익숙한 마우스와 키보드 인터페이스에서 벗어나 제스쳐를 이용한다는 점도 미쳐 생각치도 못했던 큰 벽으로 다가왔었다. 비록 마우스 형태를 대신한 반지형태의 인터페이스 였지만 그걸 사용하는 사용자는 그 차이를 전혀 인지하지 못했고, 당황하는 경우가 적지 않아 최대한 간단한 형태로 인터랙션 모델을 수정하는걸로 개선하였었다.</p>
<p><img class="alignnone size-full wp-image-716" title="swingh-flow" src="http://kimkijeung.com/blog/wp-content/uploads/2010/04/swingh-flow.jpg" alt="" width="500" height="53" /></p>
<p>위 순서는 개략적인 컨텐츠 구동방식인데 최종결과물로서 보여지는 컨텐츠가 Flash 의 형태로 작업이 되었다. 필자의 주업무가 플래시 개발자이다보니 당연하겠지만 Flash 가 이러한 형태로까지 쓰일 수 있다는 점에 상당히 놀라웠었다.</p>
<p>개발초기에는 <a title="processing" href="http://processing.org/" target="_blank">Processing</a> 과 같은 인터랙티브 개발툴도 고려했었지만 그 당시에 Flash 만큼의 인터랙티브한 개발 편의성을 제공해 주는 툴도  없다는 판단하에 Flash 로 작업하게 되었다. 3D 오브젝트는 Maya 를 이용하여 제작한 후 Papervision3D 를 사용하여 구현하였다. 지금보면 어려운 구현이 아닐 수 있지만 2년전만해도 실무에서 사용하기란 쉽지 않았기에 그냥 만든것을 바라보는 것만으로도 기분이 좋았던 기억이 난다.</p>
<p>되돌아 보면 내가 진행했던 프로젝트중에서 가장 재미있었고 스릴넘치게 진행했던 것 같다. 마우스와 키보드에서 벗어나 새로운 인터페이스로 컨텐츠를 만든다는 것 &#8230;. 내가 늘 고민하던 것에서 벗어나 새로운 것에 눈 돌린다는 것&#8230;..이런것들이  내 가슴을 뛰게 만들었던 것 같다.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5040262&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="375" src="http://vimeo.com/moogaloop.swf?clip_id=5040262&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/5040262">Swing H</a> from <a href="http://vimeo.com/user1366086">d&#8217;strict</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>2008.7 ~ 2008.11</p>
<p><strong>R&amp;D Project – Swing H (J4)<br />
</strong><br />
Project manager : 김기정<br />
Planning : 김기정,김정빈,김주희<br />
Visual / UI Design : 김기정,김정빈<br />
Interaction Design : 김기정,김정빈<br />
Product Design : 남성규<br />
3D Modeling :  전인규</p>
<p><a title="d'strict page" href="http://dstrict.com/reference/view.php?order=1&amp;page=1&amp;idx=23" target="_blank">View detail</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/04/08/project-epilogue-swing-h/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why not change stage.quality in AIR ?</title>
		<link>http://kimkijeung.com/2010/02/22/why-not-change-stage-quality-in-air/</link>
		<comments>http://kimkijeung.com/2010/02/22/why-not-change-stage-quality-in-air/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 09:20:44 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[stage.quality]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=646</guid>
		<description><![CDATA[비트맵 연산이 많이 사용되는 컨텐츠를 제작할 시에  가변적인 stage.quality 조정은 상당한 performance 향상을 가져올 수 있어 즐겨 사용하는 팁중에 하나이다. 하지만 안타깝게도 아래와 같이 공식적으로 Adobe AIR 에서는 StageQuality.BEST 나 StageQuality.HIGH 만 지원할 뿐 StageQuality.MEDIUM 또는 StageQuality.LOW 를 지원하지 않는다. AIR 에서 이 속성을 사용하게 되면 그냥 무시되어버린다. For content running in Adobe AIR, quality can [...]]]></description>
			<content:encoded><![CDATA[<p>비트맵 연산이 많이 사용되는 컨텐츠를 제작할 시에  가변적인 stage.quality 조정은 상당한 performance 향상을 가져올 수 있어 즐겨 사용하는 팁중에 하나이다. 하지만 안타깝게도 아래와 같이 공식적으로 Adobe AIR 에서는 StageQuality.BEST 나 StageQuality.HIGH 만 지원할 뿐 StageQuality.MEDIUM 또는 StageQuality.LOW 를 지원하지 않는다.</p>
<p>AIR 에서 이 속성을 사용하게 되면 그냥 무시되어버린다.</p>
<blockquote><p>For content running in Adobe AIR, <code style="font-family: 'Lucida Console', 'Courier New', Courier, monospace; font-size: 12px;">quality</code> can be set to <code style="font-family: 'Lucida Console', 'Courier New', Courier, monospace; font-size: 12px;">StageQuality.BEST</code> or <code style="font-family: 'Lucida Console', 'Courier New', Courier, monospace; font-size: 12px;">StageQuality.HIGH</code> (and the default value is <code style="font-family: 'Lucida Console', 'Courier New', Courier, monospace; font-size: 12px;">StageQuality.HIGH</code>). Attempting to set it to another value has no effect (and the property remains unchanged).</p>
<p>For content running in Adobe AIR, setting the <code style="font-family: 'Lucida Console', 'Courier New', Courier, monospace; font-size: 12px;">quality</code> property of one Stage object changes the rendering quality for all Stage objects (used by different NativeWindow objects).</p>
<p>- from  <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html" target="_blank">Flash CS4 Professional ActionScript 3.0 Language Reference</a></p></blockquote>
<p>물론 AIR 사용 목적이 과도한 비트뱁 연산을 주로 사용한 비쥬얼적인 요소의 표현이 아닌 desktop application 의 목적이 강한지라 원래의 의도(?) 대로 사용한다면 별다른 아쉬움이 없을 것이다.</p>
<p>하지만, 나와 같이 actionscript 를 visualization 도구로 사용하는 개발자는 아쉬움이 상당히 클것이다.  플래시 컨텐츠를  desktop application 범위로서 좀더 다듬고 싶은 생각이 들어 AIR 로 접근했지만 위 문제로 접어야만 했다.</p>
<p>AIR 가 기본적으로 다중 window 를 지원하여 일괄적인 stage.quality 를 조정할려고 강제로 위 기능을 막아놓은것 같은 생각이 들지만 굳이 위 기능을 지원 안했어야만 했는지는 의문이 풀리진 않는다.</p>
<p>AIR 2.0 beta 도 지원하지 않는다..아쉽다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/02/22/why-not-change-stage-quality-in-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to reduce the complie time with Flash IDE</title>
		<link>http://kimkijeung.com/2010/02/15/how-to-reduce-the-complie-time-with-flash-ide/</link>
		<comments>http://kimkijeung.com/2010/02/15/how-to-reduce-the-complie-time-with-flash-ide/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 16:05:03 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Flash-Tip]]></category>
		<category><![CDATA[AS3.0]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=640</guid>
		<description><![CDATA[Actionscript 의 덩치가 커지면서 Flash IDE 를 기본 액션에디터로 사용하는 것보다 인텔리젼트 기능이 탑재된 외부 에디터를 이용해 프로그래밍하는 것이 작업의 효율성 측면에서 상당한 개선 얻어올 수 있다.  이 포스팅 내용은 compile 도구로 반드시 Flash IDE 를 사용한다는 것을 전제로 한 내용이다. 작업 환경 조합으로는  Flash IDE + Eclipse(FDT) , Flash IDE  + Flashdevelop 과 같은 [...]]]></description>
			<content:encoded><![CDATA[<p>Actionscript 의 덩치가 커지면서 Flash IDE 를 기본 액션에디터로 사용하는 것보다 인텔리젼트 기능이 탑재된 외부 에디터를 이용해 프로그래밍하는 것이 작업의 효율성 측면에서 상당한 개선 얻어올 수 있다.  이 포스팅 내용은 compile 도구로 반드시 Flash IDE 를 사용한다는 것을 전제로 한 내용이다.</p>
<p>작업 환경 조합으로는  Flash IDE + Eclipse(FDT) , Flash IDE  + Flashdevelop 과 같은 경우의 조합으로 많이 사용하는데 이런 외부 에디터를 사용할 경우 자동으로 syntax 를 사전에 체크해줘 compile 타임에 발생할 수 있는 코드의 문제점을 알아차릴 수 있다. 하지만 compile 을 위해 Flash IDE 와 외부에디터의 창을 이러저리 왔다갔다 하거나 compile 을 기다리는 시간 등,  compile 전체에 소모되는 시간이 생각보다 길다라고 느껴질 때가 있을것이다. 특히 수많은 클래스의 사용으로 더욱 그 시간이 길어질 때 더할 것이다. 그래서 이럴경우 compile 시간을 대폭(?) 줄일 수 있는 간단한 tip 하나를 소개할까 한다.</p>
<p><img class="alignnone size-full wp-image-658" title="publishsetting" src="http://kimkijeung.com/blog/wp-content/uploads/2010/02/publishsetting-e1266977562742.jpg" alt="" width="500" height="601" /></p>
<p>Flash IDE 에서 File -publish Settings&#8230; &#8211; Flash Tab &#8211; Settings&#8230;  를 실행하면 위와 같은 화면을 볼 수 있을것이다. 위 radio button 중 <strong>Warnings Mode </strong>가 기본적으로는 체크되어있는데 이를 해제하자. Warnings Mode 는 As2.0 코드에서 As3.0 코드로 업데이트할때 발생할 수도 있는 Migration issue 를 리포팅해주는 기능이다.</p>
<p>따라서 체크를 해제하더라도 특별히 문제될건 없다. 이 기능을 해제하게 되면 컴파일 시간이 몰라볼 정도로 빨라지게 된다. 물론 영상이나 폰트를 임베드해서 컴파일이 오래걸리는 경우는 해당사항이 없다.  많은  클래스 파일을 사용하는 컨텐츠일 수록 효과가 크다.</p>
<p>quad core  , ram 4 GB , AS file 60개 정도의 환경으로 테스트 해본 결과 Warnings  Mode 를 체크를 했을 경우 16 sec 정도 걸리던 시간이 해제했을 경우에는 4 sec 정도로 4배이상 시간이 빨라졌다. 특별히 compile 안정성에 문제가 되는것이 아닌것 같으니 Flash IDE 를 사용하면서 class 를 많이 구성하여 사용하는 사람이라면 compile 에 걸리는 시간을 많이 줄일 수 있을 것이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2010/02/15/how-to-reduce-the-complie-time-with-flash-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Blog : Kimkijeung.com</title>
		<link>http://kimkijeung.com/2009/12/24/wordpress-blog/</link>
		<comments>http://kimkijeung.com/2009/12/24/wordpress-blog/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 17:24:13 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=571</guid>
		<description><![CDATA[기존에 사용하던 태터툴즈 설치형 블로그에서 wordpress 로의 이전 작업이 대부분 끝났다. 스킨을 나름대로 편집하여 사용하는 바람에 이전에는 버전업이 될때 적절하게 이전할 수 없어 도저히 기존상태에서는 업그레이드를 할 수 없었다.  기존 호스팅 서비스도 불안하여 이번기회에 도메인 기관이전 하였고, 호스팅업체도 wordpress 를 지원하는 곳으로 옮겼다. 전세계 설치형 블로그의 90% 이상을 점유한 블로그답게 수많은 플러그인과 스킨들이 참 맘에 [...]]]></description>
			<content:encoded><![CDATA[<p>기존에 사용하던 태터툴즈 설치형 블로그에서 wordpress 로의 이전 작업이 대부분 끝났다.</p>
<p>스킨을 나름대로 편집하여 사용하는 바람에 이전에는 버전업이 될때 적절하게 이전할 수 없어 도저히 기존상태에서는 업그레이드를 할 수 없었다.  기존 호스팅 서비스도 불안하여 이번기회에 도메인 기관이전 하였고, 호스팅업체도 wordpress 를 지원하는 곳으로 옮겼다.</p>
<p>전세계 설치형 블로그의 90% 이상을 점유한 블로그답게 수많은 플러그인과 스킨들이 참 맘에 들었다.</p>
<p>자료는 대부분 기존 블로그 내용을 살려 옮겨왔고 기존 링크는 아마 상당히 바뀌었을 것이다.</p>
<p>새롭게 블로그를 구성한 만큼 알찬내용으로 채워나갈 생각이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2009/12/24/wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Development Tool : Unity3D</title>
		<link>http://kimkijeung.com/2009/04/07/game-development-tool-unity3d/</link>
		<comments>http://kimkijeung.com/2009/04/07/game-development-tool-unity3d/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 04:29:30 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Unity3d]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=554</guid>
		<description><![CDATA[Integrated Editor Everything is done through Unity&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kimkijeung.com/blog/wp-content/uploads/2009/04/unity.png" rel="shadowbox[post-554];player=img;"><img class="alignnone size-full wp-image-628" title="unity" src="http://kimkijeung.com/blog/wp-content/uploads/2009/04/unity-e1266977782943.png" alt="" width="500" height="161" /></a></p>
<p><strong>Integrated Editor</strong> Everything is done through Unity&#8217;s simple user interface. Thousands of hours of thought and spit-polish have gone into it. <a href="http://unity3d.com/unity/features/">Read more</a></p>
<p><strong>Graphical Power</strong> Unity has a highly optimized graphics pipeline for both DirectX and OpenGL. <a href="http://unity3d.com/unity/features/graphics">Read more</a></p>
<p><strong>Asset Importing</strong> All major file formats are supported, and almost any art application can be used with Unity. <a href="http://unity3d.com/unity/features/asset-importing">Read more</a></p>
<p><strong>One-Click Deployment</strong> Unity supports a wide range of platforms when you release your work to the come alive. <a href="http://unity3d.com/unity/features/deployment">Read more</a></p>
<p><strong>Wii Publishing </strong>The industry&#8217;s most popular console just got a lot easier to develop for&#8230; <a href="http://unity3d.com/unity/features/wii-publishing">Read more</a></p>
<p><strong>iPhone Publishing </strong>Revolutionary game development comes to a revolutionary device. <a href="http://unity3d.com/unity/features/iphone-publishing">Read more</a></p>
<p><strong>Shaders </strong>Unity&#8217;s shader system combines ease of use, flexibility and performance. <a href="http://unity3d.com/unity/features/shaders">Read more</a></p>
<p><strong>Terrains </strong>Vast, densely foliaged landscapes that run smoothly on low-end hardware. <a href="http://unity3d.com/unity/features/terrains">Read more</a></p>
<p><strong>Networking </strong>Go from single-player to full realtime multiplayer games. <a href="http://unity3d.com/unity/features/networking">Read more</a></p>
<p><strong>Physics </strong>Bring your interactions to life with the built-in Ageia PhysX™ physics engine. <a href="http://unity3d.com/unity/features/physics">Read more</a></p>
<p><strong>Audio &amp; Video </strong>Mix realtime 3D graphics with streamed audio and video. <a href="http://unity3d.com/unity/features/audio-and-video">Read more</a></p>
<p><strong>Scripting </strong>Blazing fast .NET-based JavaScript and C#, with rich libraries and great documentation. <a href="http://unity3d.com/unity/features/scripting">Read more</a></p>
<p><strong>Unity Asset Server </strong>The Unity Asset Server is an add-on product which adds version control to Unity. <a href="http://unity3d.com/unity/features/unity-asset-server">Read more</a></p>
<p><strong>Shadow &amp; Light </strong>Realtime soft-shadows and baked lightmaps, spiced up with halos and lens flares. <a href="http://unity3d.com/unity/features/shadow-and-light">Read more</a></p>
<p><strong>Documentation </strong>We provide you with step by step tutorials, documentation and example projects. <a href="http://unity3d.com/unity/features/documentation">Read more</a></p>
<p>from <a href="http://unity3d.com" target="_blank">http://unity3d.com</a></p>
<p>3D game 개발 툴로 많이 사용되고 있으며 인터페이스가 3D 모델링 툴과 비슷하여 모델링툴을 다뤄봤던 경험이 있다면 쉽게 접근할 수 있다.<br />
특히 하드웨어 가속을 지원하고 있고 Flash 플레이어의 미미한 하드웨어 가속 기능과 비교했을때 엄청난(?) 성능을 보여주고 있어 인스톨레이션과 같은 웹이 아닌 다른 플랫폼의 컨텐츠를 제작할 때 상당한 힘을 발휘 할 것으로 보인다.<br />
3D 게임 개발용도로 쓰이기 때문에 물리엔진이 탑재되어 있으며 각  오브젝트를 제어할 수 있는 스크립트 언어를 제공하여 궁극의 방향이라고 할 수 있는 3D 게임을 생각보다 쉽게 구현할 수 있는 환경을 제공해준다. 스크립트 언어는 자바스크립트와 C# 이 주로 사용되고 액션스크립트에 익숙한 플래시 개발자라면 쉽게 배울수 있다.</p>
<p>지원하는 플랫폼은 데스크탑,Wii 콘솔게임,i-phone 게임 뿐만아니라 Web 도 플래시 플레이어와 같이 플러그인 방식으로 지원한다.</p>
<p>아래 링크에 데모버전이 있는데 웹플러그인 방식이라 플레이어를 설치한 후에 확인하면 된다.</p>
<p><strong>Demo site</strong><strong><br />
</strong><a href="http://unity3d.com/gallery/live-demos/tropical-paradise">http://unity3d.com/gallery/live-demos/tropical-par</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2009/04/07/game-development-tool-unity3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
