<?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>Daidiru &#124; 代汁</title>
	<atom:link href="http://www.daijima.jp/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.daijima.jp/blog</link>
	<description>the soup of daijima</description>
	<lastBuildDate>Tue, 31 Aug 2010 04:15:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ナビで地上絵―TOKYO ZOO PROJECT</title>
		<link>http://www.daijima.jp/blog/?p=729</link>
		<comments>http://www.daijima.jp/blog/?p=729#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:14:46 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=729</guid>
		<description><![CDATA[


ナビで地上絵―TOKYO ZOO PROJECT
『“nav-u”presents ナビで地上絵―TOKYO ZOO PROJECT』キャンペーンサイトのFlash制作を担当させていただきました。
“nav-u”（ナブ・ユー）『NV-U35』を使用して、東京に世界最大の動物園を開園させてしまおうというGPSアートプロジェクトです。“nav-u”の走行ログ機能とGoogle Mapを連携させて、たくさんの動物を入園させました。
動物の地上絵は、「TOKYO ZOO PROJECT制作委員会」が実際に街を自転車走行・歩行した上で作成しています。
また、動物ごとに、制作委員会が走っている道中で見つけたカフェや、お勧めしたい景色等の楽しい「おでかけポイント」も紹介しています。
Twitterの公式アカウント（@tokyozoopj）で、ユーザーから描いてほしい動物を募り、そのツイートの中から制作委員会がピックアップし、実際にコースを作成・公開していきました。
当初は10種類の動物を入園する予定でしたが、最終的には全部で15種類の動物達が入園しました！
この15種類の地上絵の膨大なGPSデータを、いかにGoogle Map上に描画負荷をおさえて表示させるかに、個人的には苦心したところでもあります。
『NV-U35』を使うと、自分でも同じように地上絵を描くことができます。走行ログはPetaMapで共有したり走行軌跡（GPSログ）をKMLフォーマットで記録し、対応アプリケーションで表示することも可能です。当然Google Mapに表示することも可能ですので、興味のある方は、ぜひ挑戦してみてはいかかでしょうか。
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=729"><img src="http://www.daijima.jp/blog/images/image100831.jpg" alt="" title="" /></a>
</div>
<p><a href="http://www.sony.jp/nav-u/tokyozoo/" target="_blank">ナビで地上絵―TOKYO ZOO PROJECT</a></p>
<p>『“nav-u”presents ナビで地上絵―TOKYO ZOO PROJECT』キャンペーンサイトのFlash制作を担当させていただきました。</p>
<p>“nav-u”（ナブ・ユー）『NV-U35』を使用して、東京に世界最大の動物園を開園させてしまおうというGPSアートプロジェクトです。“nav-u”の走行ログ機能とGoogle Mapを連携させて、たくさんの動物を入園させました。</p>
<p>動物の地上絵は、「TOKYO ZOO PROJECT制作委員会」が実際に街を自転車走行・歩行した上で作成しています。<br />
また、動物ごとに、制作委員会が走っている道中で見つけたカフェや、お勧めしたい景色等の楽しい「おでかけポイント」も紹介しています。</p>
<p>Twitterの公式アカウント（<a href="http://twitter.com/tokyozoopj/", target="_blank">@tokyozoopj</a>）で、ユーザーから描いてほしい動物を募り、そのツイートの中から制作委員会がピックアップし、実際にコースを作成・公開していきました。<br />
当初は10種類の動物を入園する予定でしたが、最終的には全部で15種類の動物達が入園しました！<br />
この15種類の地上絵の膨大なGPSデータを、いかにGoogle Map上に描画負荷をおさえて表示させるかに、個人的には苦心したところでもあります。</p>
<p>『NV-U35』を使うと、自分でも同じように地上絵を描くことができます。走行ログはPetaMapで共有したり走行軌跡（GPSログ）をKMLフォーマットで記録し、対応アプリケーションで表示することも可能です。当然Google Mapに表示することも可能ですので、興味のある方は、ぜひ挑戦してみてはいかかでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=729</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps API For Flash</title>
		<link>http://www.daijima.jp/blog/?p=735</link>
		<comments>http://www.daijima.jp/blog/?p=735#comments</comments>
		<pubDate>Fri, 30 Jul 2010 10:37:18 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=735</guid>
		<description><![CDATA[


先日、某案件でGoogle Maps API For Flashを使ってごにょごにょしたので、
自分なりに感じたことや注意点をメモっとく。

APIキーに関して
Google Maps APIを使用するには、ここでGoogle Maps API For Flashを使用するサイト（またはアプリ）のドメインを指定してAPIキーを取得する。
取得したAPIキーは、Flashで開発する場合は以下のようにASのコード内で指定する。
map.key = &#8220;取得したAPIキー&#8221;;
APIキーはSWFファイルにコンパイルされ、SWFファイルがホストされているドメインと一致する必要がある。
なので、開発環境、テスト環境、本番環境など、各環境でドメインが違う際には、予め各ドメインごとにAPIキーを取得しておいて、ドメイン判別してそれぞれにAPIキーを設定してあげる作りにしておくと良いかもしれない。

var _url:String = loaderInfo.url;
if(_url.indexOf(”honban.jp”) >= 0) map.key = “honban.jp用のAPIキー”;
else if(_url.indexOf(”test.com”) >= 0) map.key = “test.com用のAPIキー”;
else if(_url.indexOf(”dev.co.jp”) >= 0) map.key = “dev.co.jp用のAPIキー”;



Map3Dに関して
※以下2010年7月現在の最新版であるVersion 1.18に対しての内容

・地図を3Dで見せたい時などはMap3Dクラスを使用する。
使い方はここを参考。
ただMapクラスに比べると、Map3Dクラスは地図画像の読み込みや描画が若干遅いようだ。


・Map3Dクラスは、デフォルトだと黄色の枠が表示されてしまう。これはAPI独自のキーボードイベントが有効になっていると出てしまう枠のようだ。黄色枠を消したければ、キーボードイベントを無効にする。

map.disableControlByKeyboard();

黄色枠は気になるけど、キーボード操作をさせたいのであれば、API独自のキーボードイベントを使わずに、Flashのネイティブキーボードイベントを使用して、自分でキーボード操作の仕組みを作った方がよさげ。


・地図にパースをつける。
地図にパースをつけたい時は、Map3DインスタンスのsetAttitudeメソッドに対してAttitudeクラスのインスタンスを指定する。

Attitude(yaw:Number, pitch:Number, roll:Number)

例えば、30度Pitch回転させたい時は以下のように指定する。

map.setAttitude(new Attitude(0, 30, 0));

ただ、傾ければ傾けるほど描画処理が重くなるようなので注意が必要。


・ドラッグを無効にする。

map.disableDragging();



・ダブルクリックを無効にする。

map.setDoubleClickMode(MapAction.ACTION_NOTHING);



・マウスホイールでのZOOM機能はAPI独自の機能を使わずに自分でZOOMの仕組みを作った方がいい。
理由は、Macのfirefoxで動作しないし、細かい動きの設定などができないから。
ちなみにAPI独自の機能を使う場合は以下のように指定する。

map.enableScrollWheelZoom(); //マウスホイールで拡大縮小できる
map.enableContinuousZoom(); //スムースな拡大縮小ができる



・地図上を滑らかに移動、寄り引きをさせる。
個人的な感覚だが、setCenterメソッドが、一番滑らかに移動できた。
panToやsetZoomなどメソッドは何種類か用意されているが、setCenterが一番良さげ。
このsetCenterメソッドをENTER_FRAMEイベントとかトィーンライブラリのUPDATEイベントの中で処理して、
アニメーションさせるとそれなりに滑らかに動く。

public function setCenter(latLng:LatLng, opt_zoom:Number, opt_mapType:IMapType = null):void
・Parameters
latLng:LatLng — Coordinates for the new center.
opt_zoom:Number — New [...]]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=735"><img src="http://www.daijima.jp/blog/images/image100730.jpg" alt="" title="" /></a>
</div>
<p>先日、某案件でGoogle Maps API For Flashを使ってごにょごにょしたので、<br />
自分なりに感じたことや注意点をメモっとく。</p>
<div class="marginTop40">
<strong><font color="#FFFFFF">APIキーに関して</font></strong></p>
<p>Google Maps APIを使用するには、<a href="http://code.google.com/intl/ja/apis/maps/signup.html" target="_blank">ここ</a>でGoogle Maps API For Flashを使用するサイト（またはアプリ）のドメインを指定してAPIキーを取得する。<br />
取得したAPIキーは、Flashで開発する場合は以下のようにASのコード内で指定する。</p>
<div class="script_area">map.key = &#8220;取得したAPIキー&#8221;;</div>
<p>APIキーはSWFファイルにコンパイルされ、SWFファイルがホストされているドメインと一致する必要がある。<br />
なので、開発環境、テスト環境、本番環境など、各環境でドメインが違う際には、予め各ドメインごとにAPIキーを取得しておいて、ドメイン判別してそれぞれにAPIキーを設定してあげる作りにしておくと良いかもしれない。</p>
<div class="script_area">
var _url:String = loaderInfo.url;<br />
if(_url.indexOf(”honban.jp”) >= 0) map.key = “honban.jp用のAPIキー”;<br />
else if(_url.indexOf(”test.com”) >= 0) map.key = “test.com用のAPIキー”;<br />
else if(_url.indexOf(”dev.co.jp”) >= 0) map.key = “dev.co.jp用のAPIキー”;
</div>
</div>
<div class="marginTop40">
<strong><font color="#FFFFFF">Map3Dに関して</font></strong></p>
<p>※以下2010年7月現在の最新版であるVersion 1.18に対しての内容</p>
<div class="marginTop30">
・地図を3Dで見せたい時などはMap3Dクラスを使用する。<br />
使い方は<a href="http://code.google.com/intl/ja/apis/maps/documentation/flash/3d-maps.html" target="_blank">ここ</a>を参考。<br />
ただMapクラスに比べると、Map3Dクラスは地図画像の読み込みや描画が若干遅いようだ。
</div>
<div class="marginTop30">
・Map3Dクラスは、デフォルトだと黄色の枠が表示されてしまう。これはAPI独自のキーボードイベントが有効になっていると出てしまう枠のようだ。黄色枠を消したければ、キーボードイベントを無効にする。</p>
<div class="script_area">
map.disableControlByKeyboard();
</div>
<p>黄色枠は気になるけど、キーボード操作をさせたいのであれば、API独自のキーボードイベントを使わずに、Flashのネイティブキーボードイベントを使用して、自分でキーボード操作の仕組みを作った方がよさげ。
</p></div>
<div class="marginTop30">
・地図にパースをつける。</p>
<p>地図にパースをつけたい時は、Map3DインスタンスのsetAttitudeメソッドに対してAttitudeクラスのインスタンスを指定する。</p>
<div class="script_area">
Attitude(yaw:Number, pitch:Number, roll:Number)
</div>
<p>例えば、30度Pitch回転させたい時は以下のように指定する。</p>
<div class="script_area">
map.setAttitude(new Attitude(0, 30, 0));
</div>
<p>ただ、傾ければ傾けるほど描画処理が重くなるようなので注意が必要。
</p></div>
<div class="marginTop30">
・ドラッグを無効にする。</p>
<div class="script_area">
map.disableDragging();
</div>
</div>
<div class="marginTop30">
・ダブルクリックを無効にする。</p>
<div class="script_area">
map.setDoubleClickMode(MapAction.ACTION_NOTHING);
</div>
</div>
<div class="marginTop30">
・マウスホイールでのZOOM機能はAPI独自の機能を使わずに自分でZOOMの仕組みを作った方がいい。<br />
理由は、Macのfirefoxで動作しないし、細かい動きの設定などができないから。<br />
ちなみにAPI独自の機能を使う場合は以下のように指定する。</p>
<div class="script_area">
map.enableScrollWheelZoom(); //マウスホイールで拡大縮小できる<br />
map.enableContinuousZoom(); //スムースな拡大縮小ができる
</div>
</div>
<div class="marginTop30">
・地図上を滑らかに移動、寄り引きをさせる。<br />
個人的な感覚だが、setCenterメソッドが、一番滑らかに移動できた。<br />
panToやsetZoomなどメソッドは何種類か用意されているが、setCenterが一番良さげ。<br />
このsetCenterメソッドをENTER_FRAMEイベントとかトィーンライブラリのUPDATEイベントの中で処理して、<br />
アニメーションさせるとそれなりに滑らかに動く。</p>
<div class="script_area">
public function setCenter(latLng:LatLng, opt_zoom:Number, opt_mapType:IMapType = null):void</p>
<p>・Parameters<br />
latLng:LatLng — Coordinates for the new center.<br />
opt_zoom:Number — New zoom level.<br />
opt_mapType:IMapType (default = null) — New map type.
</p></div>
</div>
<div class="marginTop30">
・ズームの範囲。<br />
ズームは0〜21くらい（すごいアバウトw）までの数値で指定できるようだ。0が一番引き、21が一番寄り。
</div>
</div>
<div class="marginTop40">
<strong><font color="#FFFFFF">Polylineに関して</font></strong></p>
<p>Polylineオブジェクトは、地図上に線形のオーバーレイを作成する。<br />
Polylineは一連の点で構成され、これらの点を指定された順序に結ぶ連続した線セグメントを作成する。<br />
KMLデータを元にPolylineを描画することもできる。<br />
点（緯度経度）が多すぎると画面描画処理が重くなるので注意が必要。<br />
個人的な感覚では、20,000ポイントくらいがまともに動く限界の数といったところ。<br />
エンコード化ポリラインを使用すると、描画処理も軽くなる。<br />
これは地図のズームレベルによって、ラインの精度をコントロールできるらしい。詳細地図の場合は詳細なポイントを、粗い地図の場合はポイントも粗くして表示速度を得ているらしい。
</p></div>
<p>注意点やもっとこうして欲しい点はあるけど、<br />
やっぱりよくできてる、すごいぞGoogle Maps API！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=735</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After Effectsでループ作成</title>
		<link>http://www.daijima.jp/blog/?p=722</link>
		<comments>http://www.daijima.jp/blog/?p=722#comments</comments>
		<pubDate>Tue, 01 Jun 2010 05:07:49 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[After Effects]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=722</guid>
		<description><![CDATA[やるたびに毎回忘れているのでメモ。
はいすいません、またまた備忘録メモです。
フッテージをループさせるには、ビジュアルフッテージをプロジェクト内で連続してループする場合は、
After Effectsで1サイクルのみのフッテージを作成すればよい。
手順は下記のとおり。
１．プロジェクトパネルで、ループさせるフッテージを選択する。
２．ファイル／フッテージを変換／メインを選択する。
３．「ループ」に整数値を入力して、「OK」をクリック。
以上。
いいかげん覚えろ、俺。
]]></description>
			<content:encoded><![CDATA[<p>やるたびに毎回忘れているのでメモ。<br />
はいすいません、またまた備忘録メモです。</p>
<p>フッテージをループさせるには、ビジュアルフッテージをプロジェクト内で連続してループする場合は、<br />
After Effectsで1サイクルのみのフッテージを作成すればよい。<br />
手順は下記のとおり。</p>
<p>１．プロジェクトパネルで、ループさせるフッテージを選択する。<br />
２．ファイル／フッテージを変換／メインを選択する。<br />
３．「ループ」に整数値を入力して、「OK」をクリック。</p>
<p>以上。<br />
いいかげん覚えろ、俺。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=722</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ジオメトリパイプライン</title>
		<link>http://www.daijima.jp/blog/?p=479</link>
		<comments>http://www.daijima.jp/blog/?p=479#comments</comments>
		<pubDate>Thu, 06 May 2010 11:25:27 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=479</guid>
		<description><![CDATA[ジオメトリパイプラインの超私的メモ。毎度の超私的メモでスミマセン。
このサイトの記事を参考にさせていただきました。ありがとうございました。
ジオメトリパイプラインとは3Dオブジェクトを画面に描画するための座標変換のこと。
変換の流れは以下。
1 . ローカル座標で3Dオブジェクトを組み立てる。
2 . ワールド座標変換
3 . ビュー座標変換（またはカメラ座標変換ともいう）
4 . プロジェクション座標変換（または射影変換ともいう）
5 . スクリーン座標変換（またはビューポート座標変換ともいう）

1 . ローカル座標で3Dオブジェクトを組み立てる。
まず、ローカル座標で3Dオブジェクトを組み立てる。


2 . ワールド座標変換
ワールド変換行列でローカル座標からワールド座標に変換する。
平行移動行列、回転行列、スケーリング行列を使う。
※平行移動行列は演算順序によって、結果が変わるので、以下の順序で演算を行う。

求めたい行列 = スケーリング行列 * 回転行列 * 平行移動行列

※ちなみにアフィン変換とは、変換によっても図形の形が変わらない変換のことをいう。


3 . ビュー座標変換（カメラ座標変換）
カメラの位置を定義することによって、物体をワールド座標からカメラの位置・方向を表す座標系への変換を行う。
カメラの位置を定義するには、視点(カメラ)の位置ベクトル、注視点の位置ベクトル、およびカメラの上方向を表すベクトルの３つのベクトルによって定義される。
ビュー座標変換の手順としては、まずカメラの座標を定義された位置から原点まで移動する。
そして、その負の移動座標を全てのオブジェクトに適用する。
カメラを移動したら、軸の調整をする。カメラの軸は以下のようにして求める。

At = 注視点の位置ベクトル
Eye = 視点(カメラ)の位置ベクトル
Up = カメラの上方向を表すベクトル
//z軸にカメラをあわせる。視線方向の単位ベクトルを求める。
zaxis = normal(At &#8211; Eye)
//x軸にカメラを合わせる。カメラの向いてる方向とカメラの上方向の法線がx軸となる。　
xaxis = normal(cross(Up, zaxis))　
//y軸にカメラを合わせる。カメラの向いてる方向とx軸の方向の法線がy軸となる。
yaxis = cross(zaxis, xaxis)

軸を求めたら、それに合わせて全てのオブジェクトを回転させる。
以上をふまえるとビュー座標変換行列は以下になる。

ビュー座標変換行列 = [
　xaxis.x　　yaxis.x　　zaxis.x　　0
　xaxis.y　　yaxis.y　　zaxis.y　　0
　xaxis.z　　yaxis.z　　zaxis.z　　0
　-dot(xaxis, eye)　　-dot(yaxis, eye)　　-dot(zaxis, eye)　　1
]

※normal(a) = aの単位ベクトルを求める
※cross(a,b) = aとbの外積を求める
※dot(a,b) = aとbの内積を求める


4 . プロジェクション座標変換(射影変換)
3Dの情報であるビュー座標を、投影により2Dの座標に変換する。
それと、カメラの設定（主にズームなどの機能）をする。
プロジェクション座標変換行列には二通りある。平行投影と透視投影。
平行投影は視点の手前にあるものと視点の奥にあるものの大きさが同じ。
透視投影は実際にカメラで覗いてるように物体が視点に近いと大きくなり、遠いと小さくなる。
平行投影に関しては今回はスルーして、透視投影について。
まず視錘台を定義する。
定義する要素は、近クリップ平面、遠クリップ平面、アスペクト比、視野角。
近平面と遠平面の間が実際に画面に表示される部分。つまり視錘台とは見える領域を表す。
視野角はカメラの角度。ズームインやズームアウトといったことができる。
アスペクト比は横と縦の比率を決める。
視野角に関して。
視野角が広いほど奥行き感が増加する。またズームアウトする感じになり、周りの映る範囲が広がる。
カメラを回転させるとパースがきき過ぎて歪んでいる感じがする。
逆に視野角が狭いほど奥行き感が減少する。
ズームインする感じになり周りの映る範囲が狭くなる。
45 ～ 60度くらいが３Ｄゲームではよく使われているらしい。
先にも書いたが、視錘台の外にあるオブジェクトは見えない。つまり描画処理を行う必要はない。
そこでオブジェクトを内包する単純な形状(球など)を考え、それが視錘台の内部にあるかを判定し、
内部に無ければ描画処理を行わないようにする。これを視野カリングとか視錘台カリングと呼ぶ。
プロジェクション変換行列を適用した結果は、
X座標が-1.0 から1.0、
Y座標が-1.0 [...]]]></description>
			<content:encoded><![CDATA[<p>ジオメトリパイプラインの超私的メモ。毎度の超私的メモでスミマセン。<br />
<a href="http://homepage2.nifty.com/skimp-studio/htm/crawl/1_9_transform4.htm" target="_blank">このサイトの記事</a>を参考にさせていただきました。ありがとうございました。</p>
<p>ジオメトリパイプラインとは3Dオブジェクトを画面に描画するための座標変換のこと。</p>
<p>変換の流れは以下。</p>
<p>1 . ローカル座標で3Dオブジェクトを組み立てる。<br />
2 . ワールド座標変換<br />
3 . ビュー座標変換（またはカメラ座標変換ともいう）<br />
4 . プロジェクション座標変換（または射影変換ともいう）<br />
5 . スクリーン座標変換（またはビューポート座標変換ともいう）</p>
<div class="marginTop40">
<strong><font color="#FFFFFF">1 . ローカル座標で3Dオブジェクトを組み立てる。</font></strong><br />
まず、ローカル座標で3Dオブジェクトを組み立てる。
</div>
<div class="marginTop40">
<strong><font color="#FFFFFF">2 . ワールド座標変換</font></strong><br />
ワールド変換行列でローカル座標からワールド座標に変換する。<br />
平行移動行列、回転行列、スケーリング行列を使う。<br />
※平行移動行列は演算順序によって、結果が変わるので、以下の順序で演算を行う。</p>
<div class="script_area">
求めたい行列 = スケーリング行列 * 回転行列 * 平行移動行列
</div>
<p>※ちなみにアフィン変換とは、変換によっても図形の形が変わらない変換のことをいう。
</p></div>
<div class="marginTop40">
<strong><font color="#FFFFFF">3 . ビュー座標変換（カメラ座標変換）</font></strong><br />
カメラの位置を定義することによって、物体をワールド座標からカメラの位置・方向を表す座標系への変換を行う。<br />
カメラの位置を定義するには、視点(カメラ)の位置ベクトル、注視点の位置ベクトル、およびカメラの上方向を表すベクトルの３つのベクトルによって定義される。</p>
<p>ビュー座標変換の手順としては、まずカメラの座標を定義された位置から原点まで移動する。<br />
そして、その負の移動座標を全てのオブジェクトに適用する。</p>
<p>カメラを移動したら、軸の調整をする。カメラの軸は以下のようにして求める。</p>
<div class="script_area">
At = 注視点の位置ベクトル<br />
Eye = 視点(カメラ)の位置ベクトル<br />
Up = カメラの上方向を表すベクトル</p>
<p>//z軸にカメラをあわせる。視線方向の単位ベクトルを求める。<!--//ビュー座標のz軸、つまり、カメラが向いてる方向がz軸になる。--><br />
zaxis = normal(At &#8211; Eye)</p>
<p>//x軸にカメラを合わせる。カメラの向いてる方向とカメラの上方向の法線がx軸となる。　<br />
xaxis = normal(cross(Up, zaxis))　</p>
<p>//y軸にカメラを合わせる。カメラの向いてる方向とx軸の方向の法線がy軸となる。<br />
yaxis = cross(zaxis, xaxis)
</p></div>
<p>軸を求めたら、それに合わせて全てのオブジェクトを回転させる。<br />
以上をふまえるとビュー座標変換行列は以下になる。</p>
<div class="script_area">
ビュー座標変換行列 = [<br />
　xaxis.x　　yaxis.x　　zaxis.x　　0<br />
　xaxis.y　　yaxis.y　　zaxis.y　　0<br />
　xaxis.z　　yaxis.z　　zaxis.z　　0<br />
　-dot(xaxis, eye)　　-dot(yaxis, eye)　　-dot(zaxis, eye)　　1<br />
]
</div>
<p>※normal(a) = aの単位ベクトルを求める<br />
※cross(a,b) = aとbの外積を求める<br />
※dot(a,b) = aとbの内積を求める
</p></div>
<div class="marginTop40">
<strong><font color="#FFFFFF">4 . プロジェクション座標変換(射影変換)</font></strong><br />
3Dの情報であるビュー座標を、投影により2Dの座標に変換する。<br />
それと、カメラの設定（主にズームなどの機能）をする。</p>
<p>プロジェクション座標変換行列には二通りある。平行投影と透視投影。<br />
平行投影は視点の手前にあるものと視点の奥にあるものの大きさが同じ。<br />
透視投影は実際にカメラで覗いてるように物体が視点に近いと大きくなり、遠いと小さくなる。</p>
<p>平行投影に関しては今回はスルーして、透視投影について。</p>
<p>まず視錘台を定義する。<br />
定義する要素は、近クリップ平面、遠クリップ平面、アスペクト比、視野角。<br />
近平面と遠平面の間が実際に画面に表示される部分。つまり視錘台とは見える領域を表す。<br />
視野角はカメラの角度。ズームインやズームアウトといったことができる。<br />
アスペクト比は横と縦の比率を決める。</p>
<p>視野角に関して。<br />
視野角が広いほど奥行き感が増加する。またズームアウトする感じになり、周りの映る範囲が広がる。<br />
カメラを回転させるとパースがきき過ぎて歪んでいる感じがする。<br />
逆に視野角が狭いほど奥行き感が減少する。<br />
ズームインする感じになり周りの映る範囲が狭くなる。<br />
45 ～ 60度くらいが３Ｄゲームではよく使われているらしい。</p>
<p>先にも書いたが、視錘台の外にあるオブジェクトは見えない。つまり描画処理を行う必要はない。<br />
そこでオブジェクトを内包する単純な形状(球など)を考え、それが視錘台の内部にあるかを判定し、<br />
内部に無ければ描画処理を行わないようにする。これを視野カリングとか視錘台カリングと呼ぶ。</p>
<p>プロジェクション変換行列を適用した結果は、<br />
X座標が-1.0 から1.0、<br />
Y座標が-1.0 から1.0、<br />
Z軸が0.0 から 1.0の間の値になる。<br />
ちなみに、近クリップ平面がz=0、遠クリップ平面がz=1。</p>
<p>んで、プロジェクション変換行列を生成する計算式。</p>
<div class="script_area">
θ = Y方向の視野角<br />
a = アスペクト比<br />
n = 近クリップ平面までの距離<br />
f = 遠クリップ平面までの距離</p>
<p>sy  = cot(θ/2)<br />
sx = sy / a<br />
sz = f / (f-n)</p>
<p>プロジェクション変換行列 = [<br />
　sx, 0, 0, 0,<br />
　0, sy, 0, 0,<br />
　0, 0, sz, 0,<br />
　0, 0, -sz*n, 0<br />
]
</p></div>
<p>となる。<br />
んー、むずい。
</p></div>
<div class="marginTop40">
<strong><font color="#FFFFFF">5 . スクリーン座標変換(ビューポート座標変換)</font></strong><br />
スクリーン座標は左上隅を原点とし、Flashの場合なら、右方向を+X、下方向を+Yとする。</p>
<div class="script_area">
w = スクリーンの横幅/2<br />
h = スクリーンの縦幅/2</p>
<p>スクリーン座標行列 = [<br />
　１, 0, 0, 0,<br />
　0, １, 0, 0,<br />
　0, 0, 1, 0,<br />
　w, h, 0, 1<br />
]
</p></div>
<p>※Flashで実装する場合はわざわざスクリーン座標変換するよりも、３D空間を内包したDisplayObjectをまるっとステージの中央に配置した方が処理的に軽いかも。
</p></div>
<p>ちょっと間違ってるところありそうだけど以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=479</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SanDisk &#124; zoom±ZOO</title>
		<link>http://www.daijima.jp/blog/?p=585</link>
		<comments>http://www.daijima.jp/blog/?p=585#comments</comments>
		<pubDate>Mon, 26 Apr 2010 03:32:28 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=585</guid>
		<description><![CDATA[


SanDisk &#124; zoom±ZOO
サンディスク様「SanDisk &#124; zoom±ZOO」の制作に関わらせていただきました。
動物写真家、前川貴行氏が撮り下ろした、地球に生きる命の数々を記録したフォトギャラリーです。
今回は「大きく、残そう。」というテーマのもとに、高画質で美しい写真を記録に残していくということはもちろん、心を揺さぶられた時の人間の気持ち、つまり感動や思い出も記憶に残していってもらいたい、というサンディスクの思いが込められています。
個人的にはインタラクションデザインとFlash開発を担当させていただきました。
前川氏の撮り下ろした迫力のある動物達の命の記録を、可能な限り等身大に近いサイズまで拡大させることで、写真自体の持つ活き活きとした迫力をより引き立たせ、見ていただいた方に驚きや興奮、または喜びや癒しなど、様々な感情を抱いていただければという思いで制作いたしました。
また、写真の切り替わるトランジションでは、１０種類の動物それぞれに異なったモーションをつけています。
有機的な（動物的な）動きと、サイトのテーマでもあるズーム感を感じてもらえるようなモーションに注力してみました。
さりげない機能として、それぞれの写真に対して抱いた感情を５パターン（Surprise、Excite、Relax、Cute、Cool）の中から選択して投稿できたり、その結果を絞込みできる機能もつけました。

また、今回はブログパーツも制作しております。
動物達がブログ上でとんでもないことをしでかすかも？
ぜひクリックしてみてください↓↓↓。
ちなみに、アクセスする度に違う動物が登場します。




さらに、野生動物の宝庫「ボルネオ島」の旅などが当たるプレゼントキャンペーンもやっております。
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=585"><img src="http://www.daijima.jp/blog/images/image100422.jpg" alt="" title="" /></a>
</div>
<p><a href="http://www.sandisk-jp.com/zoomzoo/" target="_blank">SanDisk | zoom±ZOO</a></p>
<p>サンディスク様「SanDisk | zoom±ZOO」の制作に関わらせていただきました。</p>
<p>動物写真家、前川貴行氏が撮り下ろした、地球に生きる命の数々を記録したフォトギャラリーです。</p>
<p>今回は「大きく、残そう。」というテーマのもとに、高画質で美しい写真を記録に残していくということはもちろん、心を揺さぶられた時の人間の気持ち、つまり感動や思い出も記憶に残していってもらいたい、というサンディスクの思いが込められています。</p>
<p>個人的にはインタラクションデザインとFlash開発を担当させていただきました。<br />
前川氏の撮り下ろした迫力のある動物達の命の記録を、可能な限り等身大に近いサイズまで拡大させることで、写真自体の持つ活き活きとした迫力をより引き立たせ、見ていただいた方に驚きや興奮、または喜びや癒しなど、様々な感情を抱いていただければという思いで制作いたしました。</p>
<p>また、写真の切り替わるトランジションでは、１０種類の動物それぞれに異なったモーションをつけています。<br />
有機的な（動物的な）動きと、サイトのテーマでもあるズーム感を感じてもらえるようなモーションに注力してみました。</p>
<p>さりげない機能として、それぞれの写真に対して抱いた感情を５パターン（Surprise、Excite、Relax、Cute、Cool）の中から選択して投稿できたり、その結果を絞込みできる機能もつけました。</p>
<div id="blog_parts">
また、今回はブログパーツも制作しております。<br />
動物達がブログ上でとんでもないことをしでかすかも？<br />
ぜひクリックしてみてください↓↓↓。<br />
ちなみに、アクセスする度に違う動物が登場します。</p>
<div align="center">
<p><script type="text/javascript" src="http://www.sandisk-jp.com/zoomzoo/blog_parts/ga.js"></script><script type="text/javascript" src="http://www.sandisk-jp.com/zoomzoo/blog_parts/ga2.js"></script><script type="text/javascript" src="http://www.sandisk-jp.com/zoomzoo/blog_parts/zoomzoo.js"></script></p>
</div>
</div>
<p>さらに、野生動物の宝庫「ボルネオ島」の旅などが当たるプレゼントキャンペーンもやっております。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=585</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USJ宇宙じゃんけん</title>
		<link>http://www.daijima.jp/blog/?p=584</link>
		<comments>http://www.daijima.jp/blog/?p=584#comments</comments>
		<pubDate>Mon, 26 Apr 2010 03:29:16 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=584</guid>
		<description><![CDATA[


USJ宇宙じゃんけん
もう随分前にやらせて頂いたお仕事の話です。
ユニバーサル・スタジオ･ジャパンが2010年3月19日にオープンした本格的宇宙体験ライドアトラクション、スペース・ファンタジー・ザ・ライドのキャンペーンサイト「USJ宇宙ジャンケン」の制作をさせていただきました。
スペース・ファンタジー・ザ・ライドは、危機に瀕している太陽をみんなで助けに行くというストーリーのライドアトラクション。「USJ宇宙ジャンケン」もアトラクションと同様に、太陽を救うというミッションのため太陽系の8つの各惑星にいるAKB48とジャンケン対決して勝ち進み、太陽を救いに行くというものです。太陽に到達した人の中から抽選でケネディ宇宙センター見学付きアメリカオーランド6日間の旅や賞金100万円が当たります！
サイトは2010年5月末日までの公開ですので、豪華賞品目指してAKB48相手にじゃんけんで勝ちまくって、太陽到達に挑戦してみてはいかがでしょうか。
またmixiアプリ版も制作しました。mixiアプリ版ではサイト版とは別の豪華賞品が当たります！
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=584"><img src="http://www.daijima.jp/blog/images/image100226.jpg" alt="" title="" /></a>
</div>
<p><a href="http://www.usj.co.jp/janken/" target="_blank">USJ宇宙じゃんけん</a></p>
<p>もう随分前にやらせて頂いたお仕事の話です。<br />
ユニバーサル・スタジオ･ジャパンが2010年3月19日にオープンした本格的宇宙体験ライドアトラクション、スペース・ファンタジー・ザ・ライドのキャンペーンサイト「USJ宇宙ジャンケン」の制作をさせていただきました。</p>
<p>スペース・ファンタジー・ザ・ライドは、危機に瀕している太陽をみんなで助けに行くというストーリーのライドアトラクション。「USJ宇宙ジャンケン」もアトラクションと同様に、太陽を救うというミッションのため太陽系の8つの各惑星にいるAKB48とジャンケン対決して勝ち進み、太陽を救いに行くというものです。太陽に到達した人の中から抽選でケネディ宇宙センター見学付きアメリカオーランド6日間の旅や賞金100万円が当たります！</p>
<p>サイトは2010年5月末日までの公開ですので、豪華賞品目指してAKB48相手にじゃんけんで勝ちまくって、太陽到達に挑戦してみてはいかがでしょうか。<br />
また<a href="http://mixi.jp/view_appli.pl?id=18603" target="_blank">mixiアプリ版</a>も制作しました。mixiアプリ版ではサイト版とは別の豪華賞品が当たります！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=584</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EXILIMケータイ フォトアワード</title>
		<link>http://www.daijima.jp/blog/?p=477</link>
		<comments>http://www.daijima.jp/blog/?p=477#comments</comments>
		<pubDate>Sun, 10 Jan 2010 17:13:12 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=477</guid>
		<description><![CDATA[


EXILIMケータイ フォトアワード
またまた、公開してから、随分月日が経ってしまいましたが、
カシオ計算機様の「EXILIMケータイ フォトアワード」の制作をさせていただきました。
EXILIMケータイ フォトアワードは、期間ごとに決まったテーマ（笑えた一枚、元気になれた一枚、感動した一枚）に沿ったケータイフォトをユーザーに送付してもらい、その中から、グランプリ、準グランプリ、ベストショット賞、入賞が選ばれるというコンテンツになっています。
私個人としては、Flash Developを担当したわけですが、
今回は、応募していただいたユーザーの皆様の渾身の一枚を、より楽しく見ていただけるように、
「笑えた」、「元気になれた」、「感動した」の三つのテーマごとに、写真の動きやインタラクションなどの演出に注力してみました。
関係者の皆様、お疲れ様でした。
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=477"><img src="http://www.daijima.jp/blog/images/image100111.jpg" alt="" title="" /></a>
</div>
<p><a href="http://exilim-keitai.jp/campaign/" target="_blank">EXILIMケータイ フォトアワード</a><br />
またまた、公開してから、随分月日が経ってしまいましたが、<br />
カシオ計算機様の「EXILIMケータイ フォトアワード」の制作をさせていただきました。</p>
<p>EXILIMケータイ フォトアワードは、期間ごとに決まったテーマ（笑えた一枚、元気になれた一枚、感動した一枚）に沿ったケータイフォトをユーザーに送付してもらい、その中から、グランプリ、準グランプリ、ベストショット賞、入賞が選ばれるというコンテンツになっています。</p>
<p>私個人としては、Flash Developを担当したわけですが、<br />
今回は、応募していただいたユーザーの皆様の渾身の一枚を、より楽しく見ていただけるように、<br />
「笑えた」、「元気になれた」、「感動した」の三つのテーマごとに、写真の動きやインタラクションなどの演出に注力してみました。<br />
関係者の皆様、お疲れ様でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=477</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SanDisk &#124;  サンディスク　地球を記録に残したい。</title>
		<link>http://www.daijima.jp/blog/?p=474</link>
		<comments>http://www.daijima.jp/blog/?p=474#comments</comments>
		<pubDate>Mon, 14 Dec 2009 16:14:29 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=474</guid>
		<description><![CDATA[


SanDisk &#124;  サンディスク　地球を記録に残したい。
公開から少し日数が経ってしまいましたが、サンディスク様の「エクストリーム® プロ™ コンパクトフラッシュ」に引き続き、「地球を記録に残したい。」の制作に関わらせて頂きました。
美しい地球の姿を後世に伝えていくことが、フラッシュメモリカード世界No.1ブランドであるサンディスクの使命であるというコンセプトの元、ナショナルジオグラフィックチャンネルと世界遺産写真家・平山和充氏とコラボレーションし、地球の美しい姿をムービーとフォトギャラリーで展開するコンテンツになっています。
また、旅行やフォトフレームが当たるプレゼントキャンペーンも2010年１月31日まで開催しております。









]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=474"><img src="http://www.daijima.jp/blog/images/image091214_1.jpg" alt="" title="" /></a>
</div>
<p><a href="http://mp3support.sandisk.com/web/memory/" target="_blank">SanDisk |  サンディスク　地球を記録に残したい。</a></p>
<p>公開から少し日数が経ってしまいましたが、サンディスク様の「<a href="http://www.sandisk.co.jp/extremepro/" target="_blank">エクストリーム® プロ™ コンパクトフラッシュ</a>」に引き続き、「地球を記録に残したい。」の制作に関わらせて頂きました。</p>
<p>美しい地球の姿を後世に伝えていくことが、フラッシュメモリカード世界No.1ブランドであるサンディスクの使命であるというコンセプトの元、ナショナルジオグラフィックチャンネルと世界遺産写真家・平山和充氏とコラボレーションし、地球の美しい姿をムービーとフォトギャラリーで展開するコンテンツになっています。</p>
<p>また、旅行やフォトフレームが当たるプレゼントキャンペーンも2010年１月31日まで開催しております。</p>
<div class="image_area">
<a href="http://mp3support.sandisk.com/web/memory/index/" target="_blank"><img src="http://www.daijima.jp/blog/images/image091214_2.jpg" alt="" title="" /></a>
</div>
<div class="image_area">
<a href="http://mp3support.sandisk.com/web/memory/channel/" target="_blank"><img src="http://www.daijima.jp/blog/images/image091214_3.jpg" alt="" title="" /></a>
</div>
<div class="image_area">
<a href="http://mp3support.sandisk.com/web/memory/hirayama/" target="_blank"><img src="http://www.daijima.jp/blog/images/image091214_4.jpg" alt="" title="" /></a>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=474</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacでFlex SDKを使用してswfをコンパイルする</title>
		<link>http://www.daijima.jp/blog/?p=462</link>
		<comments>http://www.daijima.jp/blog/?p=462#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:15:08 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=462</guid>
		<description><![CDATA[MacでFlex SDKを使用してswfをコンパイルをすることは滅多にないけど、
いざやろうとする時、いつも忘れているので、一応メモっとく。
例えばHOMEディレクトリ/Works/にあるMain.asをコンパイルする場合。
1.ターミナルを起動。
2.ディレクトリをHOMEディレクトリ/Works/に移動 (cd ~/Works/と入力してreturn)。
3.mxmlcキーワードに続いてコンパイルしたいファイルを指定 (mxmlc Main.asと入力してreturn)。
以上。
]]></description>
			<content:encoded><![CDATA[<p>MacでFlex SDKを使用してswfをコンパイルをすることは滅多にないけど、<br />
いざやろうとする時、いつも忘れているので、一応メモっとく。</p>
<p>例えばHOMEディレクトリ/Works/にあるMain.asをコンパイルする場合。<br />
1.ターミナルを起動。<br />
2.ディレクトリをHOMEディレクトリ/Works/に移動 (cd ~/Works/と入力してreturn)。<br />
3.mxmlcキーワードに続いてコンパイルしたいファイルを指定 (mxmlc Main.asと入力してreturn)。</p>
<p>以上。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=462</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>マリオ死にすぎ</title>
		<link>http://www.daijima.jp/blog/?p=450</link>
		<comments>http://www.daijima.jp/blog/?p=450#comments</comments>
		<pubDate>Wed, 14 Oct 2009 13:54:58 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Others]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=450</guid>
		<description><![CDATA[


マリオ死にすぎ
キノコの美味しい季節になってきましたね♪
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=450"><img src="http://www.daijima.jp/blog/images/image091014.gif" alt="" title="" /></a>
</div>
<p><a href="http://29g.net/html/082101.php" target="_blank">マリオ死にすぎ</a><br />
キノコの美味しい季節になってきましたね♪</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=450</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitterハジメマシタ</title>
		<link>http://www.daijima.jp/blog/?p=431</link>
		<comments>http://www.daijima.jp/blog/?p=431#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:29:36 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Diary]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=431</guid>
		<description><![CDATA[Twitterを始めてみた。
http://twitter.com/daijimachine
厳密には約2年5ヶ月ほど前に作ったまま、放ったらかしにしておいたアカウントを再開させた。
この長い沈黙の歳月の間に、いったいどれほどの人がどれほどつぶやいたのだろうか。。。

2年5ヶ月という歳月がたったの100ピクセル強でおさまってしまう。。。
2007年5月11日の自分のつぶやきが、移り変わりの早いこの世界では、まるで化石のようであり、いとおしくもある。
このブログの最初のエントリーにも書いたが、これで、今年の目標を達成してしまった。
今年の残り2ヶ月間は、来年の目標でも、ゆっくりまったり考えていこう。
]]></description>
			<content:encoded><![CDATA[<p>Twitterを始めてみた。<br />
<a href="http://twitter.com/daijimachine" target="_blank">http://twitter.com/daijimachine</a></p>
<p>厳密には約2年5ヶ月ほど前に作ったまま、放ったらかしにしておいたアカウントを再開させた。</p>
<p>この長い沈黙の歳月の間に、いったいどれほどの人がどれほどつぶやいたのだろうか。。。</p>
<p><img src="http://www.daijima.jp/blog/images/insert_image091008.gif" alt="" title="" /></p>
<p>2年5ヶ月という歳月がたったの100ピクセル強でおさまってしまう。。。<br />
2007年5月11日の自分のつぶやきが、移り変わりの早いこの世界では、まるで化石のようであり、いとおしくもある。</p>
<p>このブログの<a href="http://www.daijima.jp/blog/?p=1">最初のエントリー</a>にも書いたが、これで、今年の目標を達成してしまった。<br />
今年の残り2ヶ月間は、来年の目標でも、ゆっくりまったり考えていこう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=431</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pixel Benderメモ</title>
		<link>http://www.daijima.jp/blog/?p=377</link>
		<comments>http://www.daijima.jp/blog/?p=377#comments</comments>
		<pubDate>Mon, 05 Oct 2009 13:05:25 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=377</guid>
		<description><![CDATA[Flash Player 10でサポートされているカスタムフィルタ（ピクセルシェーダ）を作成できるツール、Pixel Bender Toolkitのメモ。
Pixel Benderは、Adobe Flash Player 10、Adobe After Effects等がサポートするグラフィックス処理エンジン。
Pixel Benderの言語は、3Dレンダリングピクセル描画処理の最適化に用いられる、フラグメントシェーダ言語（GLSL：OpenGL Shading Languageなど）に基づいて開発されているとのこと。Flash Playerでは、このPixel Benderのプログラムを利用してフィルタやブレンド、面または線の塗りを独自に作成することができる。
Pixel Bender Toolkitで新規Filterファイルを作成すると、以下のようなデフォルトのソースが生成される。

kernel NewFilter
<   namespace : "Your Namespace";
    vendor : "Your Vendor";
    version : 1;
    description : "your description";
>
{
    input image4 src;
    output [...]]]></description>
			<content:encoded><![CDATA[<p>Flash Player 10でサポートされているカスタムフィルタ（ピクセルシェーダ）を作成できるツール、<a href="http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit" target="_blank">Pixel Bender Toolkit</a>のメモ。</p>
<p>Pixel Benderは、Adobe Flash Player 10、Adobe After Effects等がサポートするグラフィックス処理エンジン。<br />
Pixel Benderの言語は、3Dレンダリングピクセル描画処理の最適化に用いられる、フラグメントシェーダ言語（<a href="http://ja.wikipedia.org/wiki/GLSL" target="_blank">GLSL：OpenGL Shading Language</a>など）に基づいて開発されているとのこと。Flash Playerでは、このPixel Benderのプログラムを利用してフィルタやブレンド、面または線の塗りを独自に作成することができる。</p>
<p>Pixel Bender Toolkitで新規Filterファイルを作成すると、以下のようなデフォルトのソースが生成される。</p>
<pre name="code" class="xml">
kernel NewFilter
<   namespace : "Your Namespace";
    vendor : "Your Vendor";
    version : 1;
    description : "your description";
>
{
    input image4 src;
    output pixel4 dst;

    void
    evaluatePixel()
    {
        dst = sampleNearest(src,outCoord());
    }
}
</pre>
<p>以下、ざっくりメモ。<br />
・Parameterを定義すると、実行したときにツールの右側エリアにスライダーが表示されて動的にパラメータを変更できるようになる。<br />
・inputは入力画像を宣言するキーワード。<br />
・outputは出力するピクセル色を宣言するキーワード。<br />
・実際のシェーダーの処理はevaluatePixelメソッド内に記述。このメソッドで指定した処理が、<br />
描画領域の全ピクセルに対して実行される仕組みになっている。<br />
・outCoordメソッド : 処理中のピクセルのグローバル座標を返す。<br />
・sampleNearestメソッド : サンプリングメソッド。入力画像の所定の座標に最も近いピクセルのチャンネル値が含まれたベクトルを返す。戻り値はfloat4型で、それぞれrgbaにてアクセスできる。第一引数に入力画像、第二引数で位置を指定。戻ってきた値をoutput変数に割り当てるのが一般的な処理の流れ。<br />
・distanceメソッド: 2点間の距離を算出。<br />
・float3&#215;3型は行列データ型。asのMatrixクラスみたいなもの。<br />
・Flashで使用する場合、ループ処理、配列、カスタム関数は使用できない。<br />
・浮動小数点数を記述する際には、必ず小数点まで記述しなければならない。<br />
・Flashで使用するには、.pbjという形式のバイトコードデータとして書き出してFlashで読み込むもしくは埋め込む。<br />
・どうやらFlash Player 10ではまだGPU機能が有効になってない模様。なんじゃそれって感じ。早く対応してほしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=377</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ「セカイカメラ」、App Storeにて配信開始</title>
		<link>http://www.daijima.jp/blog/?p=350</link>
		<comments>http://www.daijima.jp/blog/?p=350#comments</comments>
		<pubDate>Fri, 25 Sep 2009 04:51:43 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=350</guid>
		<description><![CDATA[


ついにセカイカメラが一般公開された。
現実世界とインターネットをつなぐ新しい情報ブラウジングとコミュニケーション。
ARが社会にどのような影響を及ぼすのかなー。
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=350"><img src="http://www.daijima.jp/blog/images/image4.jpg" alt="" title="" /></a>
</div>
<p>ついに<a href="http://support.sekaicamera.com/" target="_blank">セカイカメラ</a>が一般公開された。<br />
現実世界とインターネットをつなぐ新しい情報ブラウジングとコミュニケーション。<br />
<a href="http://ja.wikipedia.org/wiki/拡張現実" target="_blank">AR</a>が社会にどのような影響を及ぼすのかなー。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=350</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashでのクロスドメインに関して</title>
		<link>http://www.daijima.jp/blog/?p=247</link>
		<comments>http://www.daijima.jp/blog/?p=247#comments</comments>
		<pubDate>Fri, 25 Sep 2009 04:04:18 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=247</guid>
		<description><![CDATA[久々にクロスドメインになりそうなFlash案件があったのだが、
そういえばFlash Player 10になって、セキュリティの扱いに変更があったことを思い出したので調べてみた。
いくつか有効な手段があった。ので備忘録的メモ。
Flash Player 10 におけるセキュリティ変更はakihiro kamijo: Flash Player 10 におけるセキュリティ変更を参照。
要は、クロスドメイン間のデータのやりとりをしたければ、
参照される側のサーバールートにポリシーファイル（crossdomain.xml）を設置し、
ポリシーファイル内で、メタポリシーを設定してくれっていう内容。
サーバーのルートに、ポリシーファイルの設置が可能であれば、特に問題はないのだが、
共有サーバーなどを使用しているケースでは、
基本的にはサーバーのルートにポリシーファイルを設置できないことが多い。
実際にこの問題に直面している記事があったので、以下参照。
RIAトピック: 【trick7】crossdomain.xml 格納場所を変更しても外部ドメインのルートからも呼び出そうとする問題
で、この問題の有効な対処法が以下。
FLASH-japan: サイトルートにポリシーファイルを置けない環境下でのクロスドメイン運用について
上記の記事はHTTPヘッダーを使って解決するという方法。
別ドメインからのアクセスを許可するファイルと同じ階層かそれ以上のディレクトリに、ポリシーファイルを設置。
Flash側では、loadPolicyFileメソッドで、設置したポリシーファイルを予め読み込んでおく。
Security.loadPolicyFile(&#8221;http://www.hoge.com/hoge/hoge/crossdomain.xml&#8221;);
さらに、ポリシーファイルと同じディレクトリにHTTPヘッダーを設定した.htaccessを設置。
こうすることでサーパーのルートにあるはずのポリシーファイルよりも、
.htaccessと同じディレクトリにあるポリシーファイルの読み込みが優先されるので、
サーパーのルートのポリシーファイルを読みにいかなくなり、セキュリティエラーが出なくなるということのようだ。
gaienboy様、ありがとうございます。
&#160;
上記のようにサーバーにポリシーファイルが置ける場合はいいとして、
ポリシーファイルを絶対に設置できない場合はどう対処したらいいだろうか？
例えば外部のWebAPIサービスを利用する際などは、ポリシーファイルを設置していないサービスも多い。
こういったケースでは、Flashからの（ActionScriptからの）外部APIへのアクセスができない。
このケースでの有効な対処法がこれ↓
YOPPA BLOG: Flash(AS3)でcrossdomain.xml無しにクロスドメインにアクセスする
要は、PHPでProxyを設定して、Proxy経由で外部APIから情報を引っ張ってくるという方法。
この方法を用いれば、ポリシーファイルを設置していないサービスでも情報を引っ張ってこれる。
YOPPA BLOG様、あざーす！
]]></description>
			<content:encoded><![CDATA[<p>久々にクロスドメインになりそうなFlash案件があったのだが、<br />
そういえばFlash Player 10になって、セキュリティの扱いに変更があったことを思い出したので調べてみた。<br />
いくつか有効な手段があった。ので備忘録的メモ。</p>
<p>Flash Player 10 におけるセキュリティ変更は<a href="http://blogs.adobe.com/akamijo/archives/2008/08/flash_player_10_6.html" target="_blank">akihiro kamijo: Flash Player 10 におけるセキュリティ変更</a>を参照。</p>
<p>要は、クロスドメイン間のデータのやりとりをしたければ、<br />
参照される側のサーバールートにポリシーファイル（crossdomain.xml）を設置し、<br />
ポリシーファイル内で、メタポリシーを設定してくれっていう内容。</p>
<p>サーバーのルートに、ポリシーファイルの設置が可能であれば、特に問題はないのだが、<br />
共有サーバーなどを使用しているケースでは、<br />
基本的にはサーバーのルートにポリシーファイルを設置できないことが多い。<br />
実際にこの問題に直面している記事があったので、以下参照。<br />
<a href="http://mfria.blog106.fc2.com/blog-entry-1444.html" target="_blank">RIAトピック: 【trick7】crossdomain.xml 格納場所を変更しても外部ドメインのルートからも呼び出そうとする問題</a></p>
<p>で、この問題の有効な対処法が以下。<br />
<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&#038;topic_id=8255&#038;forum=6" target="_blank">FLASH-japan: サイトルートにポリシーファイルを置けない環境下でのクロスドメイン運用について</a></p>
<p>上記の記事はHTTPヘッダーを使って解決するという方法。</p>
<p>別ドメインからのアクセスを許可するファイルと同じ階層かそれ以上のディレクトリに、ポリシーファイルを設置。<br />
Flash側では、loadPolicyFileメソッドで、設置したポリシーファイルを予め読み込んでおく。</p>
<div class="script_area">Security.loadPolicyFile(&#8221;http://www.hoge.com/hoge/hoge/crossdomain.xml&#8221;);</div>
<p>さらに、ポリシーファイルと同じディレクトリにHTTPヘッダーを設定した.htaccessを設置。<br />
こうすることでサーパーのルートにあるはずのポリシーファイルよりも、<br />
.htaccessと同じディレクトリにあるポリシーファイルの読み込みが優先されるので、<br />
サーパーのルートのポリシーファイルを読みにいかなくなり、セキュリティエラーが出なくなるということのようだ。<br />
gaienboy様、ありがとうございます。</p>
<p>&nbsp;</p>
<p>上記のようにサーバーにポリシーファイルが置ける場合はいいとして、<br />
ポリシーファイルを絶対に設置できない場合はどう対処したらいいだろうか？<br />
例えば外部のWebAPIサービスを利用する際などは、ポリシーファイルを設置していないサービスも多い。<br />
こういったケースでは、Flashからの（ActionScriptからの）外部APIへのアクセスができない。</p>
<p>このケースでの有効な対処法がこれ↓<br />
<a href="http://yoppa.org/rsd.php?itemid=691" target="_blank">YOPPA BLOG: Flash(AS3)でcrossdomain.xml無しにクロスドメインにアクセスする</a></p>
<p>要は、PHPでProxyを設定して、Proxy経由で外部APIから情報を引っ張ってくるという方法。<br />
この方法を用いれば、ポリシーファイルを設置していないサービスでも情報を引っ張ってこれる。<br />
YOPPA BLOG様、あざーす！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=247</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SanDisk &#124; カメラよ、私について来れるか。サンディスク エクストリーム&#174; プロ&#8482; コンパクトフラッシュ</title>
		<link>http://www.daijima.jp/blog/?p=203</link>
		<comments>http://www.daijima.jp/blog/?p=203#comments</comments>
		<pubDate>Fri, 18 Sep 2009 10:00:53 +0000</pubDate>
		<dc:creator>daijima</dc:creator>
				<category><![CDATA[Works]]></category>

		<guid isPermaLink="false">http://www.daijima.jp/blog/?p=203</guid>
		<description><![CDATA[


SanDisk &#124; カメラよ、私について来れるか。サンディスク エクストリーム&#174; プロ&#8482; コンパクトフラッシュ
SanDisk様の世界最速のコンパクトフラッシュ、
「サンディスク エクストリーム&#174; プロ&#8482;」 の訴求コンテンツの制作をさせていただきました。
個人的には、Flash開発とモーショングラフィックス制作を担当しました。
プロダクトの持つ4つの特徴（スピード、信頼性、耐久性、大容量）を、
ユーザーの方に直感的に感じていただけるように、
具体的、抽象的、どちらにもなりすぎないヴィジュアル表現に注力してみました。
関係者の皆様、お疲れ様でした。
]]></description>
			<content:encoded><![CDATA[<div class="image_area">
<a href="http://www.daijima.jp/blog/?p=203"><img src="http://www.daijima.jp/blog/images/image3.jpg" alt="" title="" /></a>
</div>
<p><a href="http://www.sandisk.co.jp/extremepro/" target="_blank">SanDisk | カメラよ、私について来れるか。サンディスク エクストリーム&reg; プロ&trade; コンパクトフラッシュ</a><br />
SanDisk様の世界最速のコンパクトフラッシュ、<br />
「サンディスク エクストリーム&reg; プロ&trade;」 の訴求コンテンツの制作をさせていただきました。<br />
個人的には、Flash開発とモーショングラフィックス制作を担当しました。</p>
<p>プロダクトの持つ4つの特徴（スピード、信頼性、耐久性、大容量）を、<br />
ユーザーの方に直感的に感じていただけるように、<br />
具体的、抽象的、どちらにもなりすぎないヴィジュアル表現に注力してみました。</p>
<p>関係者の皆様、お疲れ様でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daijima.jp/blog/?feed=rss2&amp;p=203</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
