<?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>Hi-farm blog &#187; C#</title>
	<atom:link href="http://blog.hi-farm.net/category/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hi-farm.net</link>
	<description>ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL</description>
	<lastBuildDate>Sat, 07 Jan 2012 14:26:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenNIのUnityWrapper</title>
		<link>http://blog.hi-farm.net/2011/12/24/openni%e3%81%aeunitywrapper/</link>
		<comments>http://blog.hi-farm.net/2011/12/24/openni%e3%81%aeunitywrapper/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 13:15:23 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenNI]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=564</guid>
		<description><![CDATA[
			
				
			
		
このエントリはOpenNI Advent Calendar 2011 : ATNDの12月24日分です!!

さてクリスマスイブですが、
少し前からOpenNIにはUnityWrappe [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hi-farm.net%2F2011%2F12%2F24%2Fopenni%25e3%2581%25aeunitywrapper%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hi-farm.net%2F2011%2F12%2F24%2Fopenni%25e3%2581%25aeunitywrapper%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>このエントリは<a href="http://atnd.org/events/22725" target="_blank">OpenNI Advent Calendar 2011</a> : ATNDの12月24日分です!!</p>
<hr />
さてクリスマスイブですが、<br />
少し前からOpenNIにはUnityWrapper版が存在していますのでそれについて紹介します。</p>
<p><img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/unity_screenshot-300x205.png" alt="unity_screenshot" title="unity_screenshot" width="300" height="205" class="aligncenter size-medium wp-image-566" /></p>
<p>最近話題になっている、ゲームの開発環境のUnity3Dというものがあり、OpenNIのサイトからUnity3Dで使うためのUnityWrapperをダウンロードできます。</p>
<p><img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/opennidownload.png" alt="opennidownload" title="opennidownload" width="362" height="271" class="aligncenter size-full wp-image-567" /></p>
<hr />
<h2>Unity3Dについて：</h2>
<p>Unity3D ( <a href="http://unity3d.com/unity/" target="_blank">http://unity3d.com/unity/</a> ) とはゲーム開発ツールであり、WindowsとMacのどちらでも開発する事が可能です。<br />
IDEがあるのでステージの画面を見ながら次々とオブジェクトを配置するだけでゲームの世界を簡単に作る事ができます。<br />
プログラムはJavascriptとC#（mono）で書く事ができるのでweb開発者や.NETの開発者にも取っ付きやすいのではないでしょうか。<br />
MacでもC#で記述する事ができます。</p>
<p>また、一人でグラフィックやサウンドやモデリング、プログラムを行うのは大変ですが、Unity3DではAsset Storeというものが用意されており、これを利用する事で必要な素材を入手する事ができるので気軽にゲーム開発を進める事ができます。</p>
<h3>Unity3Dの無料版、有料版、ライセンスについて</h3>
<p>無料版と有料版があり、無料版では制限はいくつかありますが、WindowsとMacで実行できますし、有料版にアップグレードする事でAndroidやiOSに対応させる事も可能です。<br />
詳しいライセンスなどはUnity3Dのサイト( <a href="http://unity3d.com/unity/licenses" target="_blank">http://unity3d.com/unity/licenses</a> )か、「強火で進め」さまのサイトが詳しいです。（ <a href="http://d.hatena.ne.jp/nakamura001/20110710/1310292561" target="_blank">http://d.hatena.ne.jp/nakamura001/20110710/1310292561</a> ）</p>
<hr />
<h3>Unityのダウンロードからインストール</h3>
<p>それでは、Unityをダウンロードしましょう。<br />
 <a href="http://unity3d.com/unity/download/" target="_blank">http://unity3d.com/unity/download/</a>より、Unityをダウンロードし、流れに沿ってインストールしてください。<br />
インストール後、先ほどOpenNIのサイトからダウンロードしたファイル（Unity OpenNI toolkit 0.9.7.1.unitypackage ）をダブルクリックしImport Packageより一式をunityにインポートします。<br />
importが完了すると、Projectタブにこのようなファイル群が表示されます。<br />
<img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/unity_project.png" alt="unity_project" title="unity_project" width="141" height="124" class="aligncenter size-full wp-image-576" /></p>
<p>OpenNI/Sample Scenes以下にすぐに試せるようなサンプルシーンが入っていますのでダブルクリックしてシーンを開き、三角の再生ボタンを押して次々と試してみるとUnity3D+OpenNIの可能性を試せると思います。<br />
<a rel="lightbox" href="http://blog.hi-farm.net/wp-content/uploads/2011/12/Unity_IDE.png"><img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/Unity_IDE-300x190.png" alt="Unity_IDE" title="Unity_IDE" width="300" height="190" class="aligncenter size-medium wp-image-581" /></a></p>
<p>私はライブなどで使ったりしていますが、骨格をちゃんと映していれば問題なく現場でも使えます。今のUnityWrapperだと全身映す前提のコードになっているので、上半身だけ認識などに変更する事でより柔軟なアプリケーションが開発できます。</p>
<p>ではそれぞれのサンプルのキャプチャやサンプル動画をのせておきます。</p>
<hr />
<h3>サンプルのシーンについて</h3>
<dl>
<dt>MultipleSkeletons：</dt>
<dd>僕は一人なので試せませんでしたが、複数人のスケルトンを認識できるサンプルだと思います。<br />
<a rel="lightbox" href="http://blog.hi-farm.net/wp-content/uploads/2011/12/MutipleSkeletons.png"><img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/MutipleSkeletons-300x192.png" alt="MutipleSkeletons" title="MutipleSkeletons" width="300" height="192" class="aligncenter size-medium wp-image-568" /></a>
</dd>
</dl>
<dl>
<dt>NIGUIControl：</dt>
<dd>
<a rel="lightbox" href="http://blog.hi-farm.net/wp-content/uploads/2011/12/NIGUIControl.png"><img src="http://blog.hi-farm.net/wp-content/uploads/2011/12/NIGUIControl-300x190.png" alt="NIGUIControl" title="NIGUIControl" width="300" height="190" class="aligncenter size-medium wp-image-569" /></a>
</dd>
</dl>
<dl>
<dt>NIInputControl:</dt>
<dd>すごく地味なのですが、手を動かすと黒い四角が追従します。XBoxでもあるような、手で操作するゲームはこれを使うと作れそうですね。</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/K-CYkHA5Tcc" frameborder="0" allowfullscreen></iframe>
</dd>
</dl>
<dl>
<dt>SimpleGame:</dt>
<dd>
上からふってくるボールにタッチするゲームです。実際に動いたりジャンプするとそれにあわせて画面も動きます。一番運動している感じになりそうですね。</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/U1976PIagRY" frameborder="0" allowfullscreen></iframe>
</dd>
</dl>
<dl>
<dt>SingleSkeleton:</dt>
<dd>
スケルトンの情報をもとに画面のキャラクターが動きます。</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/gmJlFLVKjls" frameborder="0" allowfullscreen></iframe>
</dd>
<p>せっかくなのでスケルトンをサンタにかえてみましたよ。サンタ気分で小さく踊ってみました。<br />
あ、サンタのデータはAsset Storeで購入可能ですよ！</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/JUE-8fyGju0" frameborder="0" allowfullscreen></iframe></p>
<p>※この記事は、下記の環境で確認しました。</p>
<table>
<tr>
<td>OpenNI</td>
<td>1.5.2.7</td>
</tr>
<tr>
<td>NITE</td>
<td>1.5.2.7</td>
</tr>
<tr>
<td>Unity3D</td>
<td>3.4.2f3</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2011/12/24/openni%e3%81%aeunitywrapper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ListBoxとDataTemplate</title>
		<link>http://blog.hi-farm.net/2009/08/11/listbox%e3%81%a8datatemplate/</link>
		<comments>http://blog.hi-farm.net/2009/08/11/listbox%e3%81%a8datatemplate/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 16:32:45 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=222</guid>
		<description><![CDATA[
			
				
			
		
なんと今回はC#あるいはWPFについてです。
自分があまりにも物事を忘れやすいことを反省して、忘れないようにするためのタスク管理アプリを作りました。
その時にListBoxで困ったのでメモ。
やりたい事は、ListBoxのItemsSourceに自分で作成したクラスのプロパティのコレクションを適用させる、ということ。
Window1.xamlの一部
ListBoxの定義：

&#60;ListBox x:Name=&#34;dataList&#34; ItemTemplate=&#34;{StaticResource listTemplate}&#34;/&#62;

DataTemplateの定義（TodoEntityというのが自分で定義したエンティティクラスです。）：

&#60;DataTemplate x:Key=&#34;listTemplate&#34; DataType=&#34;{x:Type local:TodoEntity}&#34;&#62;
            &#60;Grid ToolTip=&#34;{Binding Path=DescriptionValue}&#34;&#62;
                &#60;Grid.ColumnDefinitions&#62;
                   [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.hi-farm.net%2F2009%2F08%2F11%2Flistbox%25e3%2581%25a8datatemplate%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.hi-farm.net%2F2009%2F08%2F11%2Flistbox%25e3%2581%25a8datatemplate%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>なんと今回はC#あるいはWPFについてです。</p>
<p>自分があまりにも物事を忘れやすいことを反省して、忘れないようにするためのタスク管理アプリを作りました。<br />
その時にListBoxで困ったのでメモ。<br />
やりたい事は、ListBoxのItemsSourceに自分で作成したクラスのプロパティのコレクションを適用させる、ということ。</p>
<p>Window1.xamlの一部<br />
ListBoxの定義：</p>
<pre class="brush: plain; title: ; notranslate">
&lt;ListBox x:Name=&quot;dataList&quot; ItemTemplate=&quot;{StaticResource listTemplate}&quot;/&gt;
</pre>
<p>DataTemplateの定義（TodoEntityというのが自分で定義したエンティティクラスです。）：</p>
<pre class="brush: plain; title: ; notranslate">
&lt;DataTemplate x:Key=&quot;listTemplate&quot; DataType=&quot;{x:Type local:TodoEntity}&quot;&gt;
            &lt;Grid ToolTip=&quot;{Binding Path=DescriptionValue}&quot;&gt;
                &lt;Grid.ColumnDefinitions&gt;
                    &lt;ColumnDefinition Width=&quot;*&quot;/&gt;
                    &lt;ColumnDefinition Width=&quot;*&quot;/&gt;
                &lt;/Grid.ColumnDefinitions&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot; Grid.Column=&quot;0&quot;&gt;
                   &lt;TextBlock Text=&quot;件名：&quot;/&gt;
                   &lt;TextBlock x:Name=&quot;subject_tb&quot; Text=&quot;{Binding Path=SubjectValue}&quot; /&gt;
                &lt;/StackPanel&gt;
                &lt;StackPanel Margin=&quot;10,0,0,0&quot; Orientation=&quot;Horizontal&quot; Grid.Column=&quot;1&quot;&gt;
                    &lt;TextBlock Text=&quot;概要：&quot;/&gt;
                    &lt;TextBlock Text=&quot;{Binding Path=DescriptionValue}&quot;/&gt;
                &lt;/StackPanel&gt;

            &lt;/Grid&gt;
        &lt;/DataTemplate&gt;
</pre>
<p>で、これがエンティティクラスのTodoEntity</p>
<pre class="brush: plain; title: ; notranslate">
/// &lt;summary&gt;
        /// 終了しているか。
        /// 1: 終了
        /// 0: 未
        /// &lt;/summary&gt;
        public int isFinished;
        /// &lt;summary&gt;
        /// 件名
        /// &lt;/summary&gt;
        public string subject;
        /// &lt;summary&gt;
        /// 詳細
        /// &lt;/summary&gt;
        public string description;
        /// &lt;summary&gt;
        /// 登録時間
        /// &lt;/summary&gt;
        public DateTime registerDateTime;

        #region アクセサ。なぜかこうしないとデータバインドしなかった.

        public string SubjectValue
        {
            get
            {
                return subject;
            }
            set
            {
                subject = value;
            }
        }
        public string DescriptionValue
        {
            get
            {
                return description;
            }
            set
            {
                description = value;
            }
        }
        #endregion
</pre>
<p>DataTemplateにTodoEntityのsubjectプロパティを表示させたかったのですが、なぜか表示できなくて困ってたのですが、#regionに書いているようにアクセサ（SubjectValue, DescriptionValue）を作ってそれにバインドさせてやると、無事にデータが表示されました。</p>
<p>これなんでだろう。。。</p>
<p>あ、コードの書き方が統一されてなくてすみません。。。</p>
<p>アプリは見栄えがもう少しまともにできたらアップしますね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2009/08/11/listbox%e3%81%a8datatemplate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

