<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Reinit_creative log</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/" />
    <link rel="self" type="application/atom+xml" href="http://reinit.info/blog/atom.xml" />
    <id>tag:reinit.info,2009-12-31:/blog//1</id>
    <updated>2010-09-02T17:22:59Z</updated>
    <subtitle>About ActionScript and Design memo. </subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Commercial 4.261</generator>

<entry>
    <title>この夏、映画館で見た映画</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/09/03/summer2010movie/" />
    <id>tag:reinit.info,2010:/blog//1.112</id>

    <published>2010-09-02T17:11:56Z</published>
    <updated>2010-09-02T17:22:59Z</updated>

    <summary>アリエッティ良かったよー。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="life log" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="アリエッティ" label="アリエッティ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ジブリ" label="ジブリ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="映画" label="映画" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>この夏、映画を３本見ました。<br />
・<a href="http://disney.go.com/toystory/">ToyStory3</a>(吹き替え+3D)<br />
・<a href="http://www.karigurashi.jp/index.html">借りぐらしのアリエッティ</a><br />
・<a href="http://www.odoru.com/">踊る大捜査線3</a></p>

<p>この３作品の中で一番面白くなかったのは、はっきりしていて、踊る大捜査線3です。<br />
テンポの悪さが際立ってます。やっぱり映像は、テンポだね。</p>

<p>おもろくない作品は置いておいて、３作品の中で面白かったのは、はアリエッティ。</p>

<p>スタジオジブリ前作「崖の上のポニョ」も好きでしたが、僕の「好きなジブリらしい作品」ではありませんでした。</p>

<p>僕の「好きなジブリらしい作品」は以下(年代順)ほぼ鉄板どころ(ほぼ宮崎駿監督作品)。<br />
・風の谷のナウシカ<br />
・天空の城ラピュタ<br />
・となりのトトロ<br />
・魔女の宅急便<br />
・紅の豚<br />
・耳をすませば<br />
※耳をすませばと同時上映だった「On Your Mark」もかなり好きです。</p>

<p>アリエッティは上記リストの作品に近いの香りがして、観終わった後、久々にジブリを見たって感じがしました。<br />
テンポもいいし、何より絵が綺麗。<br />
となりのトトロの自然感と、耳をすませばに出てくる井上直久さんのイバラードの世界観がうまく組み合わさっているように思えました。(イバラードは出てきませんが)<br />
ただ、途中で終わった感があるのと(ここから面白くなるぞ的なとこで終了)、</p>

<p><br />
アリエッティの声優：志田未来も良かった。往年の島本須美を思い出しました。<br />
※地味に志田未来と僕の誕生日が一緒。</p>

<p>今後の米村宏昌監督のジブリ作品には注目したいです。<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>DisplayObjectの配列参照とメモリ</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/03/22/array-memory/" />
    <id>tag:reinit.info,2010:/blog//1.111</id>

    <published>2010-03-22T09:45:51Z</published>
    <updated>2010-08-17T10:59:13Z</updated>

    <summary>配列は、とんでもないメモリを残していきました。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="array" label="array" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="as3" label="as3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>あるデバッグ中に、なんかメモリが残り続けました。<br />
結局、犯人が配列だったというお話です。</p>
<br />
<p>使用済みのインスタンスをガベージコレクションの対象にするために、僕は、以下の項目を実行します。<br />
・イベントを外す(removeEventListenerを実行)<br />
・変数の参照を外す(null代入)<br />
・Bitmapインスタンスの場合、bitmapDataプロパティが存在していたら、開放する(dispose実行)<br /><br />
インスタンスを生成し、使い終わったら上記の項目(イベントは登録していないので、「<strong>イベントを外す</strong>」は実行していません。)を実行したのが、以下のコード。</p>
<pre><code>package
{
	import flash.display.*;
	import flash.events.Event;
	
	public class Hoge extends Sprite
	{
		private var _arr:Array = [];
		public function Hoge() 
		{
			addEventListener(Event.ENTER_FRAME, _onEnterFrame);
		}

		private function _onEnterFrame(e:Event):void 
		{
			var bmp:Bitmap = new Bitmap(new BitmapData(100, 100));
			//配列_arrにBitmapインスタンスを追加する
			_arr.push(bmp);
			//BitmapDataを開放
			bmp.bitmapData.dispose();
		}
	}
}
</code></pre>
<p>このままでは、メモリが増え続けていきます。<br />
以下、メモリが残っていく結果です。</p>
<div style="text-align:center;width:465px;"><iframe title="forked from: Test_array - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/0449c8cd033e21d4c9bbe3da54b68bc397e1fc1b" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/code/0449c8cd033e21d4c9bbe3da54b68bc397e1fc1b" title="forked from: Test_array - wonderfl build flash online">forked from: Test_array - wonderfl build flash online</a></div>

<p>なぜなら、配列_arrの参照が切れていないので、Bitmapインスタンスがメモリに残っているから<br />以下のコードは、配列_arrに追加したBitmapインスタンスの参照を外しています。 
</p>
<pre><code>private function _onEnterFrame(e:Event):void 
{
	var bmp:Bitmap = new Bitmap(new BitmapData(100, 100));
	_arr.push(bmp);
	bmp.bitmapData.dispose();
	<span style="color:red;">_arr.splice(0, 1);</span>	//または_arr = [];
}
</code></pre>
配列の参照を外すことでガベージコレクションの対象になり、無事にメモリ開放されました。
<br /> 以下その結果。
<div style="text-align:center;width:465px;"><iframe title="Test_array - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/bef7581186e85e62555bbcc0fc802553691ab54e" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/code/bef7581186e85e62555bbcc0fc802553691ab54e" title="Test_array - wonderfl build flash online">Test_array - wonderfl build flash online</a></div>

<span style="color:red;">※上記2つのwonderflを走らせると、なぜか、メモリが溜まっていってしまいます。</span>
<br />
<p>結果、インスタンスを使い終わったら以下を実行します。(赤字が追加部分)<br />
・イベントを外す(removeEventListenerを実行)<br />
・変数の参照を外す(null代入)+<span style="color:red;">配列の参照がある場合は配列の参照を外す</span><br />
・Bitmapインスタンスの場合、bitmapDataプロパティが存在していたら、開放する(dispose実行)</p>]]>
        
    </content>
</entry>

<entry>
    <title>Tweenライブラリ模索</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/03/09/betweenas3/" />
    <id>tag:reinit.info,2010:/blog//1.109</id>

    <published>2010-03-08T16:36:00Z</published>
    <updated>2010-03-10T17:24:17Z</updated>

    <summary>BetweenAS3を導入したいメモ。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="as3" label="as3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="betweenas3" label="betweenas3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tween" label="tween" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tweener" label="tweener" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>現在、MITライセンスのTweenライブラリを探しています。<br />
僕がFlashを制作する際に使用するTween系ライブラリは、TweenMaxです。<br />
ただ、TweenMaxは、条件付きで有料ライセンスなので、頼りすぎては、今後作業に支障が出るため、できれば、MITライセンスの高機能Tweenライブラリを探していました。</p>
<br />
<p>調べて、ある程度検証した結果、BetweenAS3がとても良さそうという結論に至りました。<br />
BetweenAS3が優れている点を自分なりに挙げてみます。</p>
<h4>高速である</h4>
<p><a href="http://www.be-interactive.org/works/20090911/Particle/index.html">こちら</a>にBetweenAS3作者のyossyさんの各Tweenライブラリのパフォーマンスデモがアップされています。<br />
デモのソースは見ていませんが、大量のオブジェクトをTweenライブラリで動かす際のパフォーマンスチェックだという事は分かります。<br />見ると分かりますが、圧倒的にBetweenAS3のパフォーマンスが高いです。フレームレートが落ちません。　</p>
パフォーマンスの秘密は、以下の本に書かれています。<br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_top&bc1=FFFFFF&IS2=1&npa=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=reinit_creative_log-22&o=9&p=8&l=as1&m=amazon&f=ifr&md=1X69VDGQCMF7Z30FM082&asins=4862670717" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>


<h4>柔軟性が高い</h4>
まさに以下の記事の内容です。<br />
<p><a href="http://log.xingxx.com/2009/08/-betweenas3.html">xingxx - 直感的かつ再利用性の高いアニメーションライブラリ BetweenAS3</a><br />
BetweenAS3クラスのインスタンスを生成することができるので、x,yのプロパティは、そのままでfilterを追加したいとか、1行追加するだけで、そのインスタンスを再利用できる点が素晴らしい。コード数も減るので、嬉しいです。</p>
<br />

<p>以下は、BetweenAS3の使い方のメモ</p>
Wonderflに載ってるソースを眺めただけで、実際に走らせていないため、使い方が全然わからないため、メモします。

<h4>Tweener的な書き方</h4>
<b>[Tweener]</b>
<pre><code>Tweener.addTween(mc,{x:100 , time: 1.2 , transition:"easeOutQuart"});</code></pre>
↓<br />
<b>[BetweenAS3]</b>
<pre><code>BetweenAS3.to(mc,{x:100} , 1.2 , Quart.easeOut).play();</code></pre>
<br />
<h4>コールバック関数の使用</h4>
<b>[Tweener]</b>
<pre><code>Tweener.addTween(mc,{x:100 , time: 1.2 , transition:"easeOutQuart" , onComplete:func});</code></pre>
↓<br />
<b>[BetweenAS3]</b>
<pre><code>var t : ITween = BetweenAS3.to(mc,{x:100} , 1.2 , Quart.easeOut);
//インスタンスを生成せずに コールバック関数を設定できないか、未調査。
t.onComplete=func;
t.play();
</code></pre>
<h4>コールバック関数の種類</h4>
・onPlay<br />
・onStop<br />
・onUpdate<br />
・onComplete<br />
<br />
<br />
随時追記します。]]>
        
    </content>
</entry>

<entry>
    <title>3D勉強中1</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/03/02/study3d-1/" />
    <id>tag:reinit.info,2010:/blog//1.107</id>

    <published>2010-03-01T16:55:55Z</published>
    <updated>2010-03-04T17:02:07Z</updated>

    <summary>3Dを勉強し始めて、いきなりアフィン変換にぶつかりました。高校数学基礎の復習をします。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="3d" label="3d" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="Flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="math" label="math" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="study" label="study" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<a href="http://www.flickr.com/photos/shunsuke_ohba/4403682377/" title="Math by bao_bao, on Flickr"><img src="http://farm5.static.flickr.com/4044/4403682377_0fef2ec82c_o.png" width="500" height="208" alt="Math" /></a>
<p>3Dを基本から勉強中なのですが、
アフィン変換が分からなくていきなりつまづきました。</p>
<p>で、アフィン変換を調べていくと、完全に忘却している三角関数の定理がたくさん出てきて、
これは、本格的に復習しようと思いました。</p>
<h4>まず躓いたアフィン変換</h4>
以下の例は、角度rad回転させた時の座標を求めています。
<p>※x0,y0は、変換前の座標<br />
※x1,y1は、変換後の座標<br />
<pre><code>x1=x0*Math.cos(rad)-y0*Math.sin(rad)
y1=x0*Math.cos(rad)+y0*Math.sin(rad)</code></pre>
</p>
<p>まず、この公式が全く理解できず、ググりました。</p>
<h4>アフィン変換を解く</h4>
<a href="http://www.flickr.com/photos/shunsuke_ohba/4401688708/" title="cos by bao_bao, on Flickr"><img src="http://farm5.static.flickr.com/4043/4401688708_684ddc6fee_o.jpg" width="386" height="378" alt="アフィン変換" /></a>
<p>上図は、点Pから点Qへ回転したときの座標を求めます。<br />
まず点Qの座標を(x1,y1)とすると、座標Qは、以下の式で求まります。</p>
<pre><code>x1=Math.cos(a+b);
y1=Math.sin(a+b);</code></pre>
<a href="http://ja.wikipedia.org/wiki/%E5%8A%A0%E6%B3%95%E5%AE%9A%E7%90%86">加法定理</a>より
<pre><code>x1=Math.cos(a)*Math.cos(b)-Math.sin(a)*Math.sin(b);
y1=Math.sin(a)*Math.cos(b)+Math.sin(b)*Math.cos(a);
・・・式1</code></pre>

<p>開店前の座標Qを(x0,y0)とすると、座標Pは、以下の式で求まります。</p>
<pre><code>x0=Math.cos(b);
y0=Math.sin(b);
・・・式2</code></pre>
<p>式2を式1に当てはめます。</p>
すると以下の式になり、アフィン変換の公式になります。
<pre><code>x1=x0*Math.cos(a)-y0*Math.sin(a)
y1=x0*Math.sin(a)+y0*Math.cos(a)</code></pre>
次回は、実際のスクリプトに入っていきます。]]>
        
    </content>
</entry>

<entry>
    <title>Googleの拡張機能を入れた</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/03/01/google-extention/" />
    <id>tag:reinit.info,2010:/blog//1.105</id>

    <published>2010-03-01T13:00:00Z</published>
    <updated>2010-03-03T16:50:14Z</updated>

    <summary>GoogleChromeのちょっと使えそうな拡張機能をいくつかインストールしました。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="life log" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="extention" label="extention" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="google" label="google" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[僕が仕事に現を抜かしている間に、GoogleChromeもver4になり、
いつの間にか拡張機能をインストールできるようになってました(遅すぎ)。
とりあえず、気になったものをインストールしてみました。

<h4><a href="https://chrome.google.com/extensions/detail/igiofjhpmpihnifddepnpngfjhkfenbp">AutoPagerize for Chrome</a></h4>
FirefoxのAddonで言うところのAutoPagerize。これは便利。

<h4><a href="https://chrome.google.com/extensions/detail/pbadgdglepgngpoeijdgicjccomadekm">TwitterBar</a></h4>
投稿のみのできるTwitterツールバー。
<img src="https://chrome.google.com/extensions/img/pbadgdglepgngpoeijdgicjccomadekm/1263308490.99/screenshot/4001" alt="How to use TwitterBar" />

<h4><a href="https://chrome.google.com/extensions/detail/hehijbfgiekmjfkfjpbkbammjbdenadd">IE Tab</a></h4>
IEでレンダリングしてくれる。

<h4><a href="https://chrome.google.com/extensions/detail/bnbbfjbeaefgipfjpdabmpadaacmafkj">Firebug Lite</a></h4>
Firebugっぽい。
<h4><a href="https://chrome.google.com/extensions/detail/gclkcflnjahgejhappicbhcpllkpakej">Delicious Tools</a></h4>
Deliciousのブックマークレットを拡張した感じの機能。FirefoxのAddonには敵わない。
<h4><a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj">Proxy Switchy!</a></h4>
<p>プロキシ切り替え。結構便利。</p>

<img  src="https://chrome.google.com/extensions/img/caehdcpeofiiigpdhbabniblemipncjj/1267011306.38/screenshot/12001" alt="How to Proxy Switchy!" />

<h4><a href="https://chrome.google.com/extensions/detail/ckibcdccnfeookdmbahgiakhnjcddpki">webページショット - Webpage Screenshot</a></h4>
閲覧サイトのスクリーンショットを撮る。自動保存機能は無し。
<br /><br />
<p>個人的な雑感ですが、もう少し、Web開発関係の拡張機能が充実してきたら、メインのブラウザをFirefoxからChromeに乗り換えます。モッサリ感のないChromeでのネットサーフィンは、魅力的です。</p>
<br />
<p>いつごろから、サポートブラウザにChromeを加えないといけないのでしょうか。
Mac版も着々と開発が進んでいるようだし、、、、。</p>]]>
        
    </content>
</entry>

<entry>
    <title>子swf のparentプロパティについて</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/02/28/memoswfparent/" />
    <id>tag:reinit.info,2010:/blog//1.103</id>

    <published>2010-02-27T17:07:57Z</published>
    <updated>2010-03-03T17:50:26Z</updated>

    <summary>子swfから親swfを参照しようとしてハマりました。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="as3" label="as3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swf" label="swf" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>Flasherにとってかなり初歩的な内容だと思うけど、1時間半ほどはまったのでメモ。<br />各コンテンツ毎にswfを分割ようとして、してハマりました。<br /><br /> ユーザビリティ、ワークフローを考慮して、1つのFlashサイトを制作する際に<br /> swfファイルを分割することがあるけど、AS3で僕は、ほとんどやったことがありませんでした。(AS2の制作自体ほとんどないけど)<br /><br /> 短納期で中規模なサイトを制作することになったので、<br />swfを分けて作業分担しようとした矢先のハマり。</p>
<h4><strong> 1.子swfのparentプロパティは、親swfではない</strong></h4>
<p>結果から言うと、<strong> </strong></p>
<p><span style="background-color: #ffffff;"><span style="color: #000000;"><strong>子swfのparentプロパティ</strong> = 子swf をロードしている<strong>Loaderインスタンス</strong><br /></span></span></p>
<p><span style="background-color: #ffffff;"><strong>親swf = Loaderインスタンスのparentプロパティで参照</strong><br />※親swf のルートに 子swf をロードしている場合</span></p>
<p>子swf から親swf にアクセスする際は、以下のコードになります。</p>
<pre><code>parent.parent</code></pre>
<h4><strong>2.「loader.content」はキャストする</strong></h4>
<p>これも当たり前のことですが、loader.contentは、DisplayObjectなのでそのままでは、子ｓｗｆ に設定されてある、親から呼んで欲しいメソッドをコールできません。<br />(なぜなら、DisplayObjectのメソッドではないから、そんなメソッドはDisplayObjectにはないよって怒られます。)</p>
<p>以下ソースです。<br />親swf : Parent.as</p>

<pre><code>package  <br /> { <br />	import flash.display.*; <br />	import flash.events.Event; <br />	import flash.net.URLRequest; <br />	<br />	public class Parent extends Sprite <br />	{ <br />		public function Parent() { init(); } <br />		private function init():void <br />		{ <br />			var loader:Loader = new Loader; <br />			addChild(loader); <br />			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onComplete); <br />			loader.load(new URLRequest("child.swf")); <br />		} <br />		private function _onComplete(e:Event):void <br />		{<br />			var loaderInfo:LoaderInfo = e.target as LoaderInfo;<br />			loaderInfo.removeEventListener(Event.COMPLETE, _onComplete);<br />			MovieClip(loaderInfo.loader.content).init();<br />		}<br />	}<br />}<br /></code></pre>

<p>子swf : Child.as</p>
<pre><code>package  <br />{<br />  import flash.display.*;<br />   public class Child extends MovieClip<br />  {<br />     private static var _isRoot:Boolean;<br />       public function Child() {}<br />        public function init():void <br />      {<br />         _isRoot = parent is Stage?true:false;<br />         if (!_isRoot) {<br />               trace("parent call");&nbsp;<br />               trace( "parent : " + parent );<br />                trace( "parent.parent : " + parent.parent );<br />              trace( "parent.parent.parent : " + parent.parent.parent );<br />            }else {<br />               trace("スタンドアロンで実行");<br />            }<br />     }<br />     static public function get isRoot():Boolean { return _isRoot; }<br />   }<br />}<br /><br />[出力結果]<br /></code>parent call<br />parent : [object Loader]<br />parent.parent : [object Parent]<br />parent.parent.parent : [object Stage]</code></pre>
<p>やばく忙しかったけど、最近ちょっと落ち着いたので、ハマってきたネタを小出しにしていきます。</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">parent call<br />parent : [object Loader]<br />parent.parent : [object Parent]<br />parent.parent.parent : [object Stage]</div>]]>
        
    </content>
</entry>

<entry>
    <title>nenga2010</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2010/01/03/nenga2010/" />
    <id>tag:reinit.info,2010:/blog//1.102</id>

    <published>2010-01-03T02:07:24Z</published>
    <updated>2010-01-03T02:35:36Z</updated>

    <summary>あけまして、おめでとうございます。
2010年も何卒よろしくお願い致します。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="life log" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p><a title="nenga2010 by bao_bao, on Flickr" href="http://www.flickr.com/photos/shunsuke_ohba/4239381386/"><img src="http://farm3.static.flickr.com/2515/4239381386_53cc98f133.jpg" alt="nenga2010" width="385" height="500" /></a></p>
<p>あけまして、おめでとうございます。<br />今年も何卒よろしくお願い致します。</p>
<p>年齢的に、正念場な一年になりそうです。</p>
<p>ブログをWordPressからMovableTypeにひっそり引越ししました。（バグフィックス中）</p>]]>
        
    </content>
</entry>

<entry>
    <title>MT4メモ</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/11/08/mt4-memo/" />
    <id>tag:reinit.info,2009:/blog//1.99</id>

    <published>2009-11-08T12:00:14Z</published>
    <updated>2010-06-02T08:48:35Z</updated>

    <summary>久々にMT4を触ったメモ。</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="movabletype" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cms" label="cms" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mt" label="mt" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plugin" label="plugin" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[最近MTを触ることが多いです。 3.3は触ったことがあったけど、4.2になってから結構いろいろ変更されてて便利になってるぽい感じ。 忘れないようにいろいろメモっておきます。

<h4>■タグの書式変更</h4>
・ファンクションタグ、ブロックタグどちらもver4からは、区切り文字が使用可能見通しがとてもよくなった。大文字小文字の区別をしなくてよくなった。</h4>
・ver3までの書式
<pre><code>&lt;$MTBlogName$&gt;</code></pre>
・ver4からの書式
<pre><code>&lt;mt:blogName /&gt;</code></pre>
<a href="#hensuu">※しかし、$マークは、変数参照時には使用しなければならない<del>っぽい</del></a><br />
参考:<a title="強化された Movable Type 4 のテンプレートタグ : 技術情報提供ブログ - Six Apart" href="http://www.sixapart.jp/pronet/developers/movabletype/mt4-template-tag.html">強化された Movable Type 4 のテンプレートタグ : 技術情報提供ブログ - Six Apart</a>
<h4>■<del>インデックスページのURLって取得出来ない感じ？</del> <span>※取得できました。 MTLinkタグのtemplateモディファイアにテンプレート名を指定する。</span></h4>
・インデックステンプレートのURL取得方法
<pre><code>&lt;mt:link template="メインページ" /&gt;</code></pre>
<h4>■モディファイア__counter__は、繰り返し時にかなり使える</h4>
<pre><code><abbr>&lt;mt:entries&gt;<br />&lt;mt:if name="__counter__" eq="3"&gt;<br />&lt;!--記事が3番目だったら何かする--&gt;<br />&lt;/mt:if&gt;</abbr><br />&lt;/mt:entries&gt;</code></pre>
<h4>■モディファイア__counter__の落とし穴にはまった(書き途中)</h4>
入れ子にした場合にハマッた記憶。
<h4>■個別記事内でかるcategoryタグ</h4>
<pre><code>&lt;mt:entryCategories&gt;&lt;mt:categoryCount /&gt;&lt;/mt:entryCategories&gt;</code></pre>
<h4>■記事と同じカテゴリが所属する記事の総数(書き途中)</h4>
<h4>■MTは、WordPressと違って一つのMTで複数のブログを管理できるのが便利</h4>
複数のMT記事を表示をさせるには、ブログのIDを指定してインクルードする。  <br /> ブログID:32の記事タイトルを表示させる。
<pre><code>&lt;ul&gt;<br />&lt;mt:entries include_blogs="32"&gt;<br />&nbsp; &lt;li&gt;&lt;mt:entryTitle&gt;&lt;/li&gt;<br />&lt;/mt:entries&gt;<br /> &lt;/ul&gt;</code></pre>
<h4>■パンくずリストの作り方</h4>
・<a href="#">トップページ</a>&gt;<a href="#">親カテゴリ</a>&gt;<a href="#">子カテゴリ</a>
<pre><code>&lt;a href="&lt;mt:BlogURL /&gt;"&gt;トップページ&lt;/a&gt;&gt;<br /> &lt;MTParentCategories glue=" &gt; "&gt;<br /> &lt;a href="&lt;mt:categoryArchiveLink /&gt;"&gt;&lt;mt:categoryLabel /&gt;&lt;/a&gt;<br /> &lt;/mt:parentCategories&gt; &gt;<br /> &lt;mt:entryTitle /&gt;</code></pre>
<h4>■カテゴリの順番を変えたい場合</h4>
MTには、カテゴリの出力順番を任意に変更するAPIは実装されていないっぽい。プラグインなどを使用して対処。<br />・<a href="http://pmlabo.com/archives/2004/12/post_21.html">pmHeadChanger Ver.1.2</a>を使用する。<br />参考<a href="http://pmlabo.com/archives/2004/12/post_21.html">pmLabo.: MovableTypeのカテゴリーソートに使える数字置換プラグイン</a>
<p id="hensuu"><h4>■変数が利用できるのがかなり便利&gt;&gt;</h4>
・変数hogeに"foo"というString型の値をセット
<pre><code>&lt;mt:setVar name="hoge" value="foo" /&gt;</code></pre>
・変数hogeに記事のタイトルをセット
<pre><code>&lt;mt:entries&gt;<br />&lt;mt:setVarBlock name="hoge"&gt;&lt;mt:entryTitle /&gt;&lt;/mt:setVarBlock&gt; &lt;/mt:entries&gt;</code></pre>
下記の記述は、上記の内容と一緒(setVarモディファイアを使用する方法)
<pre><code>&lt;mt:entries setvar="hoge"&gt;&lt;mt:entryTitle /&gt; &lt;/mt:entries&gt;</code></pre>
・変数hogeの参照
<pre><code>&lt;mt:getVar name="hoge" /&gt;</code></pre>
・変数fooに、変数hogeを代入 変数名の頭に「$」をつけるのがポイント(案の定ハマりました)
<pre><code>&lt;mt:setVar name="foo" value="<span>$hoge</span>" /&gt;</code></pre>
<h4>■アイテム(画像)のプロパティ</h4>
width、height、scale(scaleの単位は%)のどれかを指定すると、当倍で変形してくれるっぽい。<br /> 参考<a href="http://www.movabletype.jp/blog/tamplatetag_asset.html">アイテム管理機能で追加された Movable Type テンプレートタグ | MovableType.jp</a>
<h4>■同じ変数チェックするときはMTElseIfブロックタグにnameプロパティで変数をセットする必要がない(<abbr><span>MTのver4.26以降</span></abbr>)</h4>
<pre><code>&lt;mt:setVarBlock name="pageName"&gt;<br />&lt;mt:folderBasename /&gt;&lt;/mt:setVarBlock&gt;&lt;mt:if name="pageName" eq="hoge1"&gt;<br />&lt;!--hoge1だった場合--&gt;<br />&lt;mt:setVar name="naviNum" value="1" /&gt;<br />&lt;mt:elseIf eq="hoge2"&gt;<br />&lt;!--hoge2だった場合--&gt;<br />&lt;mt:setVar name="naviNum" value="3" /&gt;<br />&lt;!--hoge3だった場合--&gt;<br />&lt;mt:elseIf eq="hoge3"&gt;<br />&lt;mt:setVar name="naviNum" value="5" /&gt;<br />&lt;!--hoge4だった場合--&gt;<br />&lt;mt:elseIf eq="hoge4"&gt;<br />&lt;!--hoge5だった場合--&gt;<br />&lt;mt:setVar name="naviNum" value="6" /&gt;<br />&lt;/mt:if&gt;</code></pre>
<abbr><span>MTのver4.24の場合、同じ変数をチェックするときは、"MTElseIfブロックタグ"内で"nameプロパティ"にチェックする変数をセットする必要がある!!めちゃハマった!!</span></abbr><abbr></abbr>
<!--カスタムフィールドについて-->
<h4>■カテゴリリストを出力したいときのコード</h4>
<pre><code>&lt;ul&gt;<br />&lt;mt:categories&gt;<br />&nbsp; &lt;li&gt;&lt;mt:categoryLabel /&gt;&lt;/li&gt;<br />&lt;/mt:categories&gt;<br />&lt;/ul&gt;</code></pre>
<h4>■特定のサブカテゴリのみ取得</h4>
<pre><code>&lt;mt:subCategories category="ニュース"&gt;<br />&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink&gt;" title="&lt;mt:categoryLabel /&gt;"&gt;&lt;/a&gt;&lt;/li&gt;<br />&lt;/mt:subCategories&gt;</code></pre>
<h4>■条件分岐について いろいろありますね。(書き途中)</h4>
・MTIfNonEmpty tag="entryTitle" MTifNonZero tag="entryTitle" アトリビュート gt,lt
<pre><code>&lt;ul&gt;&lt;mt:ifNonZero tag="mtCategoryCount"&gt;&lt;li&gt;&lt;a href="&lt;mt:categoryArchiveLink /&gt;" title="&lt;mt:categoryLabel='' /&gt;"&gt;&lt;mt:categoryLabel pmhc="" /&gt;&lt;/a&gt;&lt;/li&gt;<br />&lt;/mt:ifNonZero&gt;</code></pre>
<h4>■文字数制限する グローバルモディファイア trim_toを使用する</h4>
・エントリータイトルを30文字にする。
<pre><code>&lt;mt:entryTitle trim_to="30" /&gt;</code></pre>
<h4>■文字数でレイアウト変更する(書き途中)</h4>
<pre><code>&lt;mt:setVarBlock name="c"&gt;&lt;mt:pageTitle count_characters="1" /&gt;&lt;/mt:setVarBlock&gt;</code></pre>
<h4>■指定したID以外の記事を出力する(書き途中)/<h4>
<h4>■mtVar と mtSetVarの違い(書き途中)</h4>
<h4>■日付関連</h4>
・指定した日付
<pre><code>&lt;mt:entryModifiedDate format="%y.%m.%d" /&gt;</code></pre>
・更新日
<pre><code>
&lt;mt:entryDate format="%y.%m.%d" /&gt;
</code></pre>
<!--■"MTArchives"と"MTArchiveList"の違いとは-->
<h4>■便利そうなプラグイン(検証中)</h4>
・AssetRelativePath アイテムを相対パスで挿入してくれる<del>らしい</del>。
<span>(注意)リッチテキスト編集時に、アイテムの挿入をすると、アイテムまでのフルパスになってしまう。</span><br /> 参考<a href="http://www.skyarc.co.jp/engineerblog/entry/assetrelativepath.html">アイテムを相対パスで挿入するプラグイン:AssetRelativePath | Movable Typeプラグイン配布 | MTエンジニアブログ | スカイアークシステム</a>
<!--■アーカイブリストを取得したいコード-->
<br />

<h4>個別ページでよく使いそうなコードメモ1(next back top)</h4>
<pre><code>&lt;mt:entryPrevious&gt;&lt;mt:ifNonEmpty tag="EntryPermalink"&gt;
&lt;a href="&lt;mt:entryPermalink /&gt;"&gt;&lt; BACK&lt;/a&gt; |
&lt;/mt:ifNonEmpty&gt;&lt;/mt:entryPrevious&gt;
&lt;a href="archive.html"&gt; 一覧に戻る&lt;/a&gt;
&lt;mt:entryNext&gt;&lt;mt:ifNonEmpty tag="EntryPermalink"&gt;
| &lt;a href="&lt;mt:entryPermalink&gt;"&gt;NEXT &gt;&lt;/a&gt;
&lt;/mt:ifNonEmpty&gt;&lt;/mt:entryNext&gt;
</code></pre>
<p>随時更新予定</p>]]>
        
    </content>
</entry>

<entry>
    <title>[event]I attended Spark67 Part2 Edge ActionScript Libraries.</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/06/21/eventi-attended-spark67-part2-edge-actionscript-libraries/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.98</id>

    <published>2009-06-21T01:55:59Z</published>
    <updated>2009-12-31T00:18:20Z</updated>

    <summary>＞＞　Japanese...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="event" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flartoolkit" label="FLARToolKit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jsfl" label="jsfl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sparkproject" label="SparkProject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>＞＞　<a href="http://reinit.info/blog/?page_id=841">Japanese</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>[event]I attended Scaleform seminar.</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/06/19/i-attended-scaleform-seminar/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.92</id>

    <published>2009-06-19T02:12:07Z</published>
    <updated>2009-12-31T00:18:19Z</updated>

    <summary>＞＞Japanese...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="event" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="game" label="Game" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="scaleform" label="scaleform" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>＞＞<a href="http://reinit.info/blog/?page_id=812">Japanese</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>I wanted to interrupt Command</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/06/18/memoi-wanted-to-interrupt-command/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.93</id>

    <published>2009-06-18T03:24:33Z</published>
    <updated>2010-01-02T05:16:38Z</updated>

    <summary>I wanted to interrupt Command</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>Actually,I wanted to write that memo of the control dynamic command at Progression Frameworks.<br />
But I had error that I cannot resolve.</p>

<p>This code is....<br />
<pre><br />
package<br />
{<br />
	import flash.display.Sprite;<br />
	import flash.events.MouseEvent;<br />
	import jp.progression.commands.*;<br />
	import jp.progression.core.commands.Command;<br />
	import jp.progression.events.CommandEvent;<br />
	<br />
	/**<br />
	 * ...<br />
	 * @author Shunsuke Ohba<br />
	 */<br />
	public class CancelCommand extends Sprite<br />
	{<br />
		private var _list:SerialList;<br />
		public function CancelCommand() <br />
		{<br />
			_list = new SerialList(null,<br />
				new Trace("Command1", { id:"id_Trace1" } ),<br />
				new Wait(5000,{id:"wait1"}),<br />
				new Trace("Command2", { id:"id_Trace2" } ),<br />
				new Wait(2000,{id:"wait2"}),<br />
				new Trace("Command3", { id:"id_Trace3" } )<br />
			);<br />
			stage.addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void<br />
			{<br />
				if (_list.getCommandById("wait1").running) {<br />
					var command:Command = _list.getCommandById("wait1");<br />
					command.addEventListener(CommandEvent.COMMAND_COMPLETE, function(e:CommandEvent):void<br />
					{<br />
						_list.interrupt(true);<br />
						trace("interrupt Command");<br />
					});<br />
				}<br />
			});<br />
			_list.execute();<br />
		}<br />
	}<br />
}<br />
</pre><br />
I wanted to interrupt the command after the WaitCommand was completed when stage was clicked at runnning "WaitCommand(id:wait1)".Because I wanted to operate a command dynamically sometime soon.</p>

<p>I thought that command would interrupt when stage was clicked at runnning "WaitCommand(id:wait1)".</p>

<p>Output is...<br />
<pre><br />
Command1<br />
Command2<br />
interrupt Command<br />
</pre></p>

<p><br /><br />
Ummmm...<br />
I cannot resolve that why do "Command2" execute.</p>

<p><br />
<p class="ps">[postscript--June.19.2009]</p><br />
I posted Progression forum.<br />
＞＞<a href="http://forum.progression.jp/index.php?topic=124.0">post</a></p>

<p class="ps">[postscript--June.19.2009]</p>
This probrem is resolved by <a href="http://flabaka.com/blog/">flabaka</a>.
＞＞<a href="http://forum.progression.jp/index.php?topic=124.msg490#msg490">post</a>
It was resolved by using "InsertCommand" before "WaitCommand" was completed.]]>
        
    </content>
</entry>

<entry>
    <title>[memo]set up shadowbox</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/06/12/memoset-up-shadowbox/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.94</id>

    <published>2009-06-11T17:11:41Z</published>
    <updated>2009-12-31T00:18:20Z</updated>

    <summary>I want to write down so I have great time loss at set up shadowbox. I couldn&apos;t show swf. I use only Shadowbox but other ...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p>I want to write down so I have great time loss at set up shadowbox.<br />
I couldn't show swf.<br />
I use only Shadowbox but other library jquery , prototype.</p>

<pre class="prettyprint">
＜link rel='stylesheet' href='shadowbox.css' /＞
＜script type='text/javascript' src='shadowbox.js'＞＜/script＞
</pre>
It refer the pass of css and javascript.

<pre class="prettyprint">
＜script type="text/javascript"＞
Shadowbox.init
({  
    language:   "en",  
    players:    ["swf","img"]
});  
＜/script＞
</pre>
Initialize Shadowbox.
The point that I have mistake is no write that
<pre>players:    ["swf","img"]</pre>]]>
        
    </content>
</entry>

<entry>
    <title>Vertex Point move　arbitrarily at Papervision3D</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/06/12/vertex-point-movearbitrarily-at-papervision3d/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.95</id>

    <published>2009-06-11T16:33:26Z</published>
    <updated>2010-01-02T03:54:34Z</updated>

    <summary> This post is continuation of the post that僕が見ても似ていませんでした。 |   ReInit_creative Log.3D model that my face was dead , when...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="flartoolkit" label="FLARToolKit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lightwave3d" label="Lightwave3D" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="papervision3d" label="Papervision3D" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p><a title="Screenshot of My face 3D model" rel="shadowbox" href="http://farm4.static.flickr.com/3621/3616645570_dd1775e66d_o.jpg"><img src="http://farm4.static.flickr.com/3621/3616645570_5234c211c9.jpg" alt="My face that 3D model." width="500" height="317" /></a></p>
<p>This post is continuation of the post that<a href="http://reinit.info/blog/?p=602">僕が見ても似ていませんでした。 |   ReInit_creative Log</a>.<br />3D model that my face was dead , when I wrote that post. Becase it couldn't move.<br />Actually I wanted to blink eye , mumble.But I couldn't. I write the post it , so I could do that.<a title="My face 3D model animation." rel="shadowbox;width=640;height=480" href="http://flash.reinit.info/my_face/090611/index.swf">demo</a> <br /> <br />I couldn't move arbitrarily vertex point when previous post. Because "MophMixer" that Lightwave function has moving vertex point arbitrarily couldn't use at Papervision3D. <br />Now I used the function "Bone". But it haves problem. It only used 100% value of Weight map. Weight map is Bone's strong each vertex point.I couldn't move arbitrarily by 1~2 bone at first , because I couldn't do fine adjustment. So I used many bone. <br /> Eye and mouth is split polygon. They are not merge polygon. Because Collada format has only two function "play" and "stop".It need to that each move. 3D model splits each animation parts at Lightwave3D. It merge Split parts at Papervision3D.  <br /> In the concrete, eye and mouth of Collada instance do "addChild" to a DisplayObject3D instance. The difficult is fix of bone position and number of it. I can see fun of thing that 3D and Interactive, and I want to seek of funny expression more and more.</p>]]>
        
    </content>
</entry>

<entry>
    <title>ライオンキング+ライブパフォーマンスについて</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/05/31/post-9/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.96</id>

    <published>2009-05-31T08:39:34Z</published>
    <updated>2009-12-31T00:18:20Z</updated>

    <summary> 日記だったら、Mixiに書くわけで、日記ではない記事をここには書こうと思っています。 ライオンキングは、劇団四季のメインコンテンツといって良いほどメジャーな作品です。 今年で10年目らしく、すばらしいロングラン。 詳しくはココ なぜライオ...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="design" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="liveperformance" label="liveperformance" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<div class="wp-capotion">
<a href="http://www.flickr.com/photos/27754324@N02/3580958840/" title="Lion king by bao_bao, on Flickr"><img src="http://farm3.static.flickr.com/2468/3580958840_ace6b8e9f6.jpg" width="500" height="375" alt="Lion king" /></a>
</div>
日記だったら、<a href="http://mixi.jp/show_profile.pl?id=397970">Mixi</a>に書くわけで、日記ではない記事をここには書こうと思っています。

<p>ライオンキングは、劇団四季のメインコンテンツといって良いほどメジャーな作品です。<br />
今年で10年目らしく、すばらしいロングラン。<br />
詳しくは<a href="http://www.shiki.gr.jp/applause/lionking/">ココ</a></p>

<p class="pTitle">なぜライオンキングを見ようと思ったか</p>
以前、<a href="http://www.shiki.gr.jp/applause/aida/">劇団四季のアイーダ</a>という作品を見ました。
このときが、生まれて初めてのミュージカル経験で、とてつもない衝撃を受けました。]]>
        <![CDATA[<p><br />
それまでは、ミュージカルに対してあまり良いイメージがなく、楽しくなさそうな先入観がありましたが、強制的にアイーダを見なければならなくなったことがきっかけに、ミュージカルが好きになりました。それ以降、ディズニーランドでは、ショー見るのが好きなったりもしました。<br />
+自分の視野の狭さも実感しました。<br />
<br /><br />
で、今回はタイミングと、良い席(G席前から7番目の一回>>近くて顔もはっきり見える)が取れたため見ることになった次第です。<br />
<p class="pTitle">何が素晴らしかったか</p><br />
<ul><br />
<li>1人1人の演技レベルがものすごく高いので安心して見れる</li><br />
<li>舞台の演出を見てて飽きず、勉強になる</li><br />
</ul><br />
僕の結論は2つです。<br />
<p class="pSubTitle">・1人1人の演技レベルがものすごく高いので安心して見れるについて</p><br />
歌にせよ、踊り演技どれ一つとっても妥協がない感をミュージカル素人の僕でも分かります。<br />
僕の性格のせいかもしれないけど、「セリフを間違えるのではないか」とか、「失敗しないだろうか」という関係のないところで心配してしまう癖があって、作品自体をじっくり見ることが出来ないことが多々ありますが、劇団四季はそんな思いが全く起きず、じっくり堪能出来ました。</p>

<p class="pSubTitle">・舞台の演出を見てて飽きず、勉強になる</p>
見ないと分からないのですが、とにかく芸、演出が細かいです。
いきなり舞台セットが現れたり、一瞬で人が消えたりとか、そのような演出がとても勉強になります。
演出の構造が分かる部分は、なるほど、そういうアイデアがあるのかと感心し、理解不能な部分は、どうやってるんだ！！っと好奇心が沸いてきます。

<p class="pTitle">今まで見てきた浅い僕のミュージカル経験で、何が最も舞台演出で重要かという結論</p>
<ul>
<li>光(証明)</li>
<li>声</li>
</ul>
この2つだと思っています。
<p class="pSubTitle">・光(照明)</p>
照明による演出効果はかなり大きいと感じています。照明の色、強さによって、かなり印象が変わってしまうし、特に舞台はダイナミックに光を作っていく点において、重要なポストを担っていると感じます。
これは、デッサンと同じで僕が浪人時代に毎日描いていた鉛筆デッサンは光を意識しろとよく指摘された思い出があります。まさにその通りで、見る行為において物が存在していると認識させるためには光を描くしか方法がなく、その存在のあり方を表現すにも光を描くしかありません。
<p class="pSubTitle">・声</p>
デッサンという静的な行為ではなく、リアルタイム性の高い舞台において、声は重要な要素だと思います。
まず<span class="point">生の声を聞くこと</span>が最も重要で、ライオンキングの始めのシーンでの歌で背筋が震えた感を覚えています。声に限りませんが、後で修正が利きません。一瞬一瞬が作品であるため、一生懸命さ、生き様を感じることが出来ます。
これは、ライブと同じで、PCで音楽を聴くよりライブで聴いたほうがテンションが上がります。
<br />
リアルタイム性という意味では、映画も含まれそうなのですが、音響設備のフィルターを通すため、舞台とは全く楽しみ方が違います。舞台は後で修正できません。舞台を映像で見るというのは、映画を見ることと同じになってしまうと思います。
<p class="pTitle">ライブパフォーマンスに興味津々です</p>
舞台を見てから僕の心境はかなり変わりました。
基本、昔から引き篭もりな僕が、ライブパフォーマンスをやりたいと思っています。
先日行われた、<a href="http://reinit.info/blog/?p=667" title="Spark Project勉強会#9でジェフに誕生日ケーキを渡してきた">SparkProject勉強会#9でのFLARToolkit</a>ケーキはその一環です(かなり失敗失敗しましたがｗ)。
今は、ライブパフォーマンスのできる作品を作っていこうと思っています。
先の光と声、特に光の演出は作品を作るうえで、良い影響を与えてくれそうです。
Flashはライブパフォーマンスと相性が良いと思うので、ライブパフォーマンス作品を作る上でかなり可能性を広げてくれそうです。
ライオンキングを見た経験がうまく生きてくると思います。
<br />
ライオンキングを見てない人は、必見ですよ。]]>
    </content>
</entry>

<entry>
    <title>Spark Project勉強会#9でジェフに誕生日ケーキを渡してきた</title>
    <link rel="alternate" type="text/html" href="http://reinit.info/blog/archive/2009/05/29/spark-project9/" />
    <id>tag:reinit.info,2009:/mt4_staging//1.97</id>

    <published>2009-05-29T14:00:49Z</published>
    <updated>2009-12-31T00:18:20Z</updated>

    <summary> SWFObjectの作者であるジェフ氏が来日中で、ゲストとして参加されたSpark Project勉強会#9に参加してきました。 Spark Project勉強会とは&gt;&gt;コチラ 今回はなんと、Non - 技術系Semi-Flasherの僕...</summary>
    <author>
        <name>bao_bao</name>
        
    </author>
    
        <category term="FLARToolKit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="as3" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="artoolkit" label="ARToolkit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="event" label="event" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flartoolkit" label="FLARToolKit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lightwave3d" label="Lightwave3D" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="liveperformance" label="liveperformance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="papervision3d" label="Papervision3D" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sparkproject" label="SparkProject" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://reinit.info/blog/">
        <![CDATA[<p><a href="http://farm4.static.flickr.com/3557/3581249572_32558860f6.jpg" title="FLARTool Cake by bao_bao, on Flickr" rel="shadowbox"><img src="http://farm4.static.flickr.com/3557/3581249572_32558860f6.jpg" width="500" height="253" alt="FLARTool Cake" /></a><br />
SWFObjectの作者であるジェフ氏が来日中で、ゲストとして参加されたSpark Project勉強会#9に参加してきました。<br />
<a href="http://wiki.libspark.org/wiki/SparkStudy">Spark Project勉強会とは>>コチラ</a><br />
今回はなんと、Non - 技術系Semi-Flasherの僕が発表をさせて頂きました。<br />
この記事では、発表した作品の制作経緯を綴ろうと思います。</p>]]>
        <![CDATA[<p><br />
<p class="pTitle">勉強会当日はジェフの誕生日らしい</p><br />
当日はジェフの誕生日ということで(実は2日前の5.26と判明)、<br />
「スペシャルイベント誕生日コンテンツを発表しよう」というものが開催されました。<br />
1人1~2分程度に誕生日おめでとうを発表します。<br />
<br /><br />
が、前々から人前で話す重要性はヒシヒシと感じ、しかも現在ニートに属する者としては、人と会うこと自体が少なくなっています。このままニート時代が続いてしまうと、社会復帰できなくなるのでは(半分冗談)？<br />
1~2分なら僕でもパッと見でなんとか発表できるんではないかと思い、マウスを取りSparkのwikiを書き換えて、自分の名前を追加した次第です。<br />
<br /><br />
誕生日会で重要なのは、ウケとおいじりだろうと思い、パッと見と演出重視で、技術云々はどうにもならない為、最近実験中のFLARToolkitでバースデイケーキを作ってジェフにプレゼントしようと思いました。<br />
プラス、場を盛り上げるための一役を買えたらなお良いなと思いました。<br />
<p class="pTitle">以下のような計画で制作を進める</p><br />
<ol><br />
<li>ジェフにケーキの箱を開けてもらう</li><br />
<li>ケーキはそこには無く、マーカーがある</li><br />
<li>Webカムによってスクリーンにケーキが映る</li><br />
<li>ろうそくに火をつける</li><br />
<li>ハッピーバースデイの歌を歌ってもらう(ここ重要)</li><br />
<li>歌い終わったら火をジェフにマイクに息を吹いてもらい、消してもらう</li><br />
<li>盛り上がって欲しい</li><br />
</ol><br />
<pre><br />
ただ、マーカーの上にオブジェクトが出るだけというのはもう飽きました。飽きたんですよ！<br />
</pre><br />
<a href="http://gihyo.jp/design/feature/01/flartoolkit/0004?page=2">FLARToolKitを使ったAR系Flashの作り方：第4回　FLARToolKitを使ったコンテンツいろいろ｜gihyo.jp … 技術評論社</a>Saqoosha先生の言葉より<br />
そうなんです。僕も見飽きた感でいっぱいです。<br />
けれども今の僕は、ただ表示させるしかできないため、<br />
ケーキの箱を作ったり、歌をみんなで歌うなどの演出で場が盛り上がれば良いなという考えで進めました。<br />
<p class="pTitle">ケーキのモデリングをする</p><br />
FLARToolkitで3Dモデルを読み込むときの注意は、アニメーションを行うオブジェクトのポリゴン数と、アニメーション時のIKの有無だと思っています。ここをミスるとかなり読み込みに時間がかかったり、極端にFPSが下がってしまいます。<br />
<img src="http://farm4.static.flickr.com/3632/3616255563_1fd21d0db2_o.jpg" title="ケーキのモデリング" alt="ケーキのモデリング" /></p>

<p>まだ、マッピングしていない状態です。実際は、イチゴ、ブルーベリーは、コピーペーストするため、UVマッピングを施した後に配置していきます。<br />
原点(0,0,0)の部分を上面図を中心に合わせて、正面図、側面図で面位置に合わせておきます。後で座標を変更するときに回転させるからです。<br />
<img src="http://farm3.static.flickr.com/2460/3616255419_53c9f0799f_o.jpg" title="ポリゴン数" alt="ポリゴン数" /><br />
三角ポリゴンにした状態で、3445ポリゴンです。<br />
実際サクサク動きました。</p>

<p><img src="http://farm4.static.flickr.com/3646/3616255243_a5c4206248_o.jpg" title="マッピングしたケーキ" alt="マッピングしたケーキ" /><br />
UVマップを貼るとこうなります。イチゴとかの素材は、Fliｃｋｒとかで探して、適当にマッピングしました。<br />
ここで重要なのは、中央にFlashのロゴがあること。誰も気づいてくれませんでした！！ｗｗ<br />
実際に貼ったマップは以下。<br />
<img src="http://farm4.static.flickr.com/3381/3617087702_cb6a9ec536_o.jpg" title="ケーキのUVマップ" alt="ケーキのUVマップ" /></p>

<p><img src="http://farm4.static.flickr.com/3320/3616255125_d154184c0e_o.jpg" title="いちごのUVマップ" alt="いちごのUVマップ" /></p>

<p><img src="http://farm3.static.flickr.com/2465/3617073204_a4785e1780_o.jpg" title="ブルーベリーのUVマップ" alt="ブルーベリーのUVマップ" /></p>

<p><img src="http://farm3.static.flickr.com/2482/3616254861_5337179b97_o.jpg" title="チョコレートのUVマップ" alt="チョコレートのUVマップ" /></p>

<p><img src="http://farm4.static.flickr.com/3309/3617072914_6b70e962f7_o.jpg" title="見えない部分のポリゴン処理" alt="見えない部分のポリゴン処理" /><br />
ケーキ、イチゴ、ブルーベリーの底面は見えないため、ポリゴンを貼っていません。</p>

<p><img src="http://farm4.static.flickr.com/3338/3617072782_fac5de91e4_o.jpg" title="ろうそくのモデリング" alt="ろうそくのモデリング"><br />
ろうそくは、ケーキに対するマッスが小さく、細いので蝋部分の縦の分割線はもっと減らしたほうがよかったかもしれません。<br />
これではポリゴンの無駄遣い。<br />
<p class="pTitle">火と煙のモデリング</p><br />
一番ネックになると思われる火と煙。<br />
アニメーションをさせるため、ボーンとウェイトを仕込みます。<br />
<span class="point">ウェイトとは、1つ1つのボーンの動作範囲をポイント単位で0~100%で設定していきます。</span></p>

<p><img src="http://farm4.static.flickr.com/3598/3617072630_a2417692c0_o.jpg" title="火のモデリング" title="火のモデリング" /></p>

<p><img src="http://farm3.static.flickr.com/2469/3617072560_3fb499c05a_o.jpg" title="火のウェイト" alt="火のウェイト" /></p>

<p><img src="http://farm4.static.flickr.com/3377/3616253921_3206acfd79_o.jpg" title="UVマップ後の火のウェイト" alt="UVマップ後の火のウェイト" /></p>

<p><img src="http://farm3.static.flickr.com/2430/3616254037_9421583a28_o.jpg" title="煙のモデリング" alt="煙のモデリング" /><br />
<p class="pTitle">火と煙にモーションを付ける</p><br />
<img src="http://farm3.static.flickr.com/2475/3616254243_db17d81b68_o.jpg" title="火のアニメーション" alt="火のアニメーション" /><br />
ここでは、IKを利用せず、1つ1つのボーンに対してキーフレームを打っています。<br />
理由は、IKを利用すると、Colladaデータを読み込むときに時間がすごくかかってしまうからです。しかも、火も煙もボーンが少ないため、IK不要であることと、下手にIKしても帰って思い通りのモーションになり辛いというのも1つの理由です。<br />
<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=71377" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="flashvars" value="intl_lang=en-us&photo_secret=a168cd4318&photo_id=3575005571&flickr_show_info_box=true"></param> <param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=71377"></param> <param name="bgcolor" value="#000000"></param> <param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&photo_secret=a168cd4318&photo_id=3575005571&flickr_show_info_box=true" height="300" width="400"></embed></object><br />
煙にモーションをつけているところ。ダンスっぽくしてみました。(してみた、というより、そうなった）<br />
<p class="pTitle">モデリングしたオブジェクトを配置する</p><br />
DAEクラスを拡張したCakeクラス<br />
<pre class="prettyprint"><br />
package birthdayCake.assets <br />
{<br />
	import org.papervision3d.objects.parsers.DAE;<br />
	<br />
	/**<br />
	 * ...<br />
	 * @author Shunsuke Ohba<br />
	 */<br />
	public class Cake extends DAE<br />
	{<br />
		private static const CAKE_URL:String = "model/cake.dae";<br />
		public function Cake() <br />
		{<br />
			load(CAKE_URL);<br />
			scale = 1000;<br />
			rotationX = 90;<br />
			rotationZ = -90;<br />
		}<br />
	}<br />
}<br />
</pre><br />
ポイントになるのは、マーカーの面を地として、ケーキを置きたい為、座標を変更します。<br />
<pre class="prettyprint"><br />
rotationX = 90;<br />
rotationZ = -90;<br />
</pre><br />
Lightwave上で原寸モデリングした場合、Papervision3Dにインポートすると、約1/1000サイズになるため、大きさを1000倍にします。<br />
<pre class="prettyprint"><br />
scale = 1000;<br />
</pre><br />
<br /><br />
ろうそくの3DモデルDisplayObject3Dを継承したCandleクラス<br />
<pre class="prettyprint"><br />
public function Candle() <br />
{<br />
	//蝋部分の3Dモデル<br />
	_candleBase = new DAE();<br />
	_candleBase.load(CANDLE_URL);<br />
	_candleBase.scale = 1000;<br />
	rotationX = 90;<br />
	rotationZ = -90;<br />
	addChild(_candleBase);<br />
	//火のモデルをCandleの入れ子にする<br />
	_fire = new Fire;<br />
	//ろうそくの高さが80mmであるため火の位置を修正<br />
	_fire.y = 80;<br />
	//火のアニメーションを読み込んだらaddChildする<br />
	_fire.addEventListener("modelLoaded", function(e:Event):void<br />
	{<br />
		addChild(_fire);<br />
	});<br />
}<br />
</pre><br />
ここで気をつけたいのは、火の3Dモデルの位置調整で<br />
<pre class="prettyprint"><br />
_fire.y = 80;<br />
</pre><br />
としていますが、FLARToolkitだと、マーカーに対して垂直方向は、Z軸です。<br />
が、ここではPapervision3D上であるため、天地方向はY軸で調整します。<br />
<br /><br />
煙の3Dモデルは、DisplayObject3Dを継承したFireクラスに入れ子状態にして、マイクの反応でaddChild、removeChildするようにしています。<br />
<br /><br />
そのマイクの部分であるWindクラス。<br />
<pre class="prettyprint"><br />
public function Wind() <br />
{<br />
	_mic=Microphone.getMicrophone();<br />
	_mic.gain = 20;<br />
	_mic.setLoopBack(true);<br />
	//ハウリングがひどかったため、以下のような処理<br />
	var soundTransform:SoundTransform = SoundMixer.soundTransform;<br />
	soundTransform.volume=0;<br />
	SoundMixer.soundTransform = soundTransform;<br />
}<br />
</pre><br />
マイクのハウリングをどうしても解消できなくて、小さな音でもハウリングして、ろうそくの火がきえてしまうため、<a href="http://www.trick7.com/blog/2007/12/03-104946.php">trick7 - CBCNET掲載サンプルのソースとMicrophoneクラス雑感</a>のコメントに記載されているコードを使わせていただきました。<br />
マイクから音を出す必要はなかったため、マイクから音を出さないようにして対応しました。<br />
<br /><br />
完成したものが以下の動画です。<br />
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4928195&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4928195&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/4928195">FLARToolkit cake</a> from <a href="http://vimeo.com/reinit">bao_bao</a> on <a href="http://vimeo.com">Vimeo</a>.</p><br />
結果、ジェフに喜んでもらえたようで、懇親会のときにありがとうって言ってくれました。<br />
それは本当にうれしかったのですが、久々の人前での発表後は、極度の緊張が続いていて手が震え続けてました。人前で話せる機会がせっかくあるため、ネタをしこんで、積極的にいかにゃあならんなーっと思いました。<br />
<br /><br />
それと、言語の壁をおもいっきし感じたので、英語がんばります。<br />
<br /><br />
発表を聞いてくれた方々ありがとうございました。<br />
mariroom先生、演出に協力してくれてありがとうございました。<br />
<hr /><br />
<h4 class="relatedPost">参考記事</h4><br />
<ul><br />
<li><a href="http://blog.jactionscripters.com/2009/05/29/monthly-spark-meeting-09/">JActionScripters » Blog Archive » Monthly Spark Meeting #09</a></li><br />
<li><a href="http://log.xingxx.com/2009/05/sparkproject9geoff.html">xingxx - SparkProject勉強会#9でGeoffを全力で祝ってきた</a></li><br />
</ul></p>]]>
    </content>
</entry>

</feed>
