<?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>ActionscriptとかFlashとか&#124; futurefish &#187; papervision3d</title>
	<atom:link href="http://miraigyo.com/blog/archives/category/papervision3d/feed" rel="self" type="application/rss+xml" />
	<link>http://miraigyo.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 15 Feb 2011 07:00:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>いまさらLine3Dをさわってみました</title>
		<link>http://miraigyo.com/blog/archives/174.html</link>
		<comments>http://miraigyo.com/blog/archives/174.html#comments</comments>
		<pubDate>Sun, 28 Feb 2010 02:52:07 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=174</guid>
		<description><![CDATA[最近papervision3dをさわっていなかったのでリハビリに 使ったことがなかったline3dをちょっとさわってみました。 習作はこんな感じです。 やっぱり線とか点とかが好きですｗ。 http://miraigyo.com/blog/contents/swf/line3d/ フィルタを掛けなければ150本くらいまで軽快に動くのですが、blurfillterなどを使うと60～80本でかなり重くなってきました。 ちなみに上のサンプルは60本です。 PCでの閲覧を考えるとき、色々な解像度に対応しないといけない。フルスクリーンでも耐えれるものを作るのは難しいですね。 //線の色を設定 var lineMt:LineMaterial = new LineMaterial(0xff6633, 1); //線を描くコンテナを作成 var _line3d:Lines3D = new Lines3D(lineMt); //線の太さ,始点x, 始点y, 始点z, 終点x, 終点y, 終点z _line3d.addNewLine(0, 0, 0, 0, 0, 2500,0 ); //シーンに追加 scene.addChild(_line3d); ラインが伸びるアニメーションはTweenerでスケールを変更しています。 Tweener.addTween(_line3d, { scaleX:1, scaleY:1, scaleZ:1, time:8 }); 今回数本の線を引くのに1つのLines3Dに1本の線を引いています。 1つのLines3Dに複数のラインを引くよりも軽かったからです。 描画面積が大きくなるからだろうか。 もうすこし詳しく調べないとダメですね。 もっと軽くなれば1920×1200のフルスクリーンで300本くらいぐわっと動かしたいものです。。。 参考記事 http://flash.polig.daa.jp/?eid=869558]]></description>
			<content:encoded><![CDATA[<p>最近papervision3dをさわっていなかったのでリハビリに<br />
使ったことがなかったline3dをちょっとさわってみました。<br />
習作はこんな感じです。<br />
やっぱり線とか点とかが好きですｗ。<br />
<a href="http://miraigyo.com/blog/contents/swf/line3d/" target="_blank">http://miraigyo.com/blog/contents/swf/line3d/</a><br />
<span id="more-174"></span><br />
フィルタを掛けなければ150本くらいまで軽快に動くのですが、blurfillterなどを使うと60～80本でかなり重くなってきました。<br />
ちなみに上のサンプルは60本です。<br />
PCでの閲覧を考えるとき、色々な解像度に対応しないといけない。フルスクリーンでも耐えれるものを作るのは難しいですね。</p>
<pre name="code" class="ActionScript3">
//線の色を設定
var lineMt:LineMaterial = new LineMaterial(0xff6633, 1);
//線を描くコンテナを作成
var _line3d:Lines3D = new Lines3D(lineMt);
//線の太さ,始点x, 始点y, 始点z, 終点x, 終点y, 終点z
_line3d.addNewLine(0, 0, 0, 0, 0, 2500,0 );
//シーンに追加
scene.addChild(_line3d);
</pre>
<p>ラインが伸びるアニメーションはTweenerでスケールを変更しています。</p>
<pre name="code" class="ActionScript3">
Tweener.addTween(_line3d, {
	scaleX:1,
	scaleY:1,
	scaleZ:1,
	time:8
});
</pre>
<p>今回数本の線を引くのに1つのLines3Dに1本の線を引いています。<br />
1つのLines3Dに複数のラインを引くよりも軽かったからです。<br />
描画面積が大きくなるからだろうか。<br />
もうすこし詳しく調べないとダメですね。</p>
<p>もっと軽くなれば1920×1200のフルスクリーンで300本くらいぐわっと動かしたいものです。。。</p>
<p>参考記事<br />
<a href="http://flash.polig.daa.jp/?eid=869558" target="_blank">http://flash.polig.daa.jp/?eid=869558</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/174.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Papervision3d ShadedMaterialをつかってみる</title>
		<link>http://miraigyo.com/blog/archives/145.html</link>
		<comments>http://miraigyo.com/blog/archives/145.html#comments</comments>
		<pubDate>Mon, 26 Oct 2009 14:13:15 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=145</guid>
		<description><![CDATA[ShadedMaterialを使用して、テクスチャを張った面にシェードを付ける練習です。 影をつけることに興味がでたので調べてみた。結構きれいにできることがわかった。 ・FlatShader ・CellShader ・GouraudShader ・PhongShader PointLight3Dで光源を創り、ShadedMaterialにGouraudShaderとBitmapDataを渡す感じ。 var light:PointLight3D = new PointLight3D(); var shader = new GouraudShader(light); var mat = new ShadedMaterial( bitmapData, shader);//BitmapMaterial var sphere = new Sphere(mat,300, 20,20); _world.addChild( sphere ); GouraudShaderサンプル PhongShaderをつかうとボコボコを表現できる。 こちらも光源を創りPhongShaderに凸凹用のBitmapDataを渡し、ShaderMaterialにPhongShaderと表示用BitmapDataを渡す。 var light:PointLight3D = new PointLight3D(); var phongShader = new PhongShader(light, 0xffffff, 0x333333, 0, bumpMapData);//bumpMapData　凸凹をつけるための白黒画像 var mat = new ShadedMaterial( [...]]]></description>
			<content:encoded><![CDATA[<p>ShadedMaterialを使用して、テクスチャを張った面にシェードを付ける練習です。<br />
影をつけることに興味がでたので調べてみた。結構きれいにできることがわかった。<br />
<span id="more-145"></span></p>
<p>・FlatShader<br />
・CellShader<br />
・GouraudShader<br />
・PhongShader</p>
<p>PointLight3Dで光源を創り、ShadedMaterialにGouraudShaderとBitmapDataを渡す感じ。</p>
<pre name="code" class="ActionScript3">
var light:PointLight3D = new PointLight3D();
var shader = new GouraudShader(light);
var mat = new ShadedMaterial( bitmapData, shader);//BitmapMaterial
var sphere = new Sphere(mat,300, 20,20);
_world.addChild( sphere );
</pre>
<p><a href="http://miraigyo.com/blog/contents/swf/shader/gouraudShader.swf" target="_blank">GouraudShaderサンプル</a></p>
<p>PhongShaderをつかうとボコボコを表現できる。<br />
こちらも光源を創りPhongShaderに凸凹用のBitmapDataを渡し、ShaderMaterialにPhongShaderと表示用BitmapDataを渡す。</p>
<pre name="code" class="ActionScript3">
var light:PointLight3D = new PointLight3D();
var phongShader = new PhongShader(light, 0xffffff, 0x333333, 0,  bumpMapData);//bumpMapData　凸凹をつけるための白黒画像
var mat = new ShadedMaterial( bitmapData, phongShader);//bitmapData 基の画像
var sphere = new Sphere(mat,300, 20,20);
_world.addChild( sphere );
</pre>
<p><a href="http://miraigyo.com/blog/contents/swf/shader/phongShader.swf" target="_blank">PhongShaderサンプル</a><br />
ぼこぼこ楽しい。</p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/145.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Papervision3dで使えるBitmap FontをPlaneでつくってみたよ</title>
		<link>http://miraigyo.com/blog/archives/142.html</link>
		<comments>http://miraigyo.com/blog/archives/142.html#comments</comments>
		<pubDate>Sat, 17 Oct 2009 04:28:05 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=142</guid>
		<description><![CDATA[Papervision3dで使えるBitmap FontをPlaneでつくってみたよ 最近Pixcel3Dがなんだか流行っているので、 なんとなくPlaneを使ったBitmap Fontをつくってみる。 とりあえず今回は英数と記号少しで断念。 ちと飽きました。 時間みて違うフォントもつくってみたいと思う。 Fontサンプル 使い方はとっても簡単です。 var fontMate:ColorMaterial = new ColorMaterial(0xffffff); fontTest = new BitmapFont3D("oreore", fontMate); _world.addChild(DisplayObject3D(fontTest)); 通常は左寄せになります。 centerにしたい場合は第3引数に&#8221;center&#8221;を指定すれば変更できます。 右寄せはなんとなくつくってません。 fontTest = new BitmapFont3D("oreore", fontMate,"center"); 各ブロックへのアクセスは BitmapFont3Dにletterにブロック1つづつが入っています。 こんな感じでアクセス var fontMate:ColorMaterial = new ColorMaterial(0xffffff); fontTest = new BitmapFont3D("oreore", fontMate); fontTest.letter[0].x = 1000; 文字単位でアクセス移動できるのが良いのだろうか。。。 汚いですが、ソースコード一式を上げておきます。 誰か使ってくれると嬉しいです。 カタカナも作りたいな。]]></description>
			<content:encoded><![CDATA[<p>Papervision3dで使えるBitmap FontをPlaneでつくってみたよ</p>
<p>最近Pixcel3Dがなんだか流行っているので、<br />
なんとなくPlaneを使ったBitmap Fontをつくってみる。</p>
<p>とりあえず今回は英数と記号少しで断念。<br />
ちと飽きました。<br />
時間みて違うフォントもつくってみたいと思う。</p>
<p><a href="http://miraigyo.com/blog/contents/swf/blockfont/index.swf" target="_blank">Fontサンプル</a></p>
<p>使い方はとっても簡単です。<br />
<span id="more-142"></span></p>
<pre name="code" class="ActionScript3">
var fontMate:ColorMaterial = new ColorMaterial(0xffffff);
fontTest = new BitmapFont3D("oreore", fontMate);

_world.addChild(DisplayObject3D(fontTest));
</pre>
<p>通常は左寄せになります。<br />
centerにしたい場合は第3引数に&#8221;center&#8221;を指定すれば変更できます。<br />
右寄せはなんとなくつくってません。</p>
<pre name="code" class="ActionScript3">
fontTest = new BitmapFont3D("oreore", fontMate,"center");
</pre>
<p>各ブロックへのアクセスは</p>
<p>BitmapFont3Dにletterにブロック1つづつが入っています。<br />
こんな感じでアクセス</p>
<pre name="code" class="ActionScript3">
var fontMate:ColorMaterial = new ColorMaterial(0xffffff);
fontTest = new BitmapFont3D("oreore", fontMate);
fontTest.letter[0].x = 1000;
</pre>
<p>文字単位でアクセス移動できるのが良いのだろうか。。。</p>
<p>汚いですが、<a href="http://miraigyo.com/blog/contents/swf/blockfont/blockFont.zip">ソースコード一式</a>を上げておきます。<br />
誰か使ってくれると嬉しいです。</p>
<p>カタカナも作りたいな。</p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/142.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ParticleMaterialの回転でサイクロン</title>
		<link>http://miraigyo.com/blog/archives/139.html</link>
		<comments>http://miraigyo.com/blog/archives/139.html#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:03:11 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=139</guid>
		<description><![CDATA[ParticleMaterialの回転でサイクロン Papervision3dにParticleMaterialなるものがあったので つかってみた。 ただどうしてもBlurを使うとフルスクリーンまでいかなくても、 大きな画面でみたときにもっさりしてしまう。オイラの環境ではFPS17くらいまでおちる。 なのでカラーマトリクスをつかってやってみたら、こんどは描画された線が消えなくなりました。 むー、これはこれで綺麗だからよいのか。 でもうまく使いこなせてない。 ParticleMaterialの回転でサイクロン &#8211; wonderfl build flash online ちょっと２Dでも同様にBlurフィルターて大きくなるともっさりするので 以前みたコチラを無理やりすぎるほどなコードで実装してみた。 光る玉　BLurを使わずに &#8211; wonderfl build flash online 最近flash業界ではBitmapが流行ってきてるけど、 実際大きく描画するとどうしも重くなので、1/2～1/4のサイズで作成したものを ブラウザサイズまで引き伸ばして使うことになるのか？ そう考えるとしばらくはドットを使ったデザインが増えそうな気がする。 今FlashPlayerはようやくファミコンの描画に追いついたイメージなのかな Bitmap処理が格段にあがっていけば、メガドライブやプレステの様な描画を フルHDでしても快適に動くようになっていくのだろう。 なんだか怖い。 でも楽しそうな未来なのだ。 私みたいなデタラメなコードを書いても軽快にうごくFlashPlayerが早く 登場するといいな。]]></description>
			<content:encoded><![CDATA[<p>ParticleMaterialの回転でサイクロン</p>
<p>Papervision3dにParticleMaterialなるものがあったので<br />
つかってみた。</p>
<p>ただどうしてもBlurを使うとフルスクリーンまでいかなくても、<br />
大きな画面でみたときにもっさりしてしまう。オイラの環境ではFPS17くらいまでおちる。</p>
<p>なのでカラーマトリクスをつかってやってみたら、こんどは描画された線が消えなくなりました。<br />
むー、これはこれで綺麗だからよいのか。<br />
でもうまく使いこなせてない。</p>
<div style="text-align:center;width:465px;"><iframe title="ParticleMaterialの回転でサイクロン - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/9e6ae97970ad46dd84405123222180885d66a96a" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/code/9e6ae97970ad46dd84405123222180885d66a96a" title="ParticleMaterialの回転でサイクロン - wonderfl build flash online">ParticleMaterialの回転でサイクロン &#8211; wonderfl build flash online</a></div>
<p>ちょっと２Dでも同様にBlurフィルターて大きくなるともっさりするので<br />
以前みた<a href="" target="_blank">コチラ</a>を無理やりすぎるほどなコードで実装してみた。<br />
<span id="more-139"></span></p>
<div style="text-align:center;width:465px;"><iframe title="光る玉　BLurを使わずに - wonderfl build flash online" scrolling="no" src="http://wonderfl.net/blogparts/a47b075676233621cafe8d3aa0f21a2d2b64c8d9" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.net/code/a47b075676233621cafe8d3aa0f21a2d2b64c8d9" title="光る玉　BLurを使わずに - wonderfl build flash online">光る玉　BLurを使わずに &#8211; wonderfl build flash online</a></div>
<p>最近flash業界ではBitmapが流行ってきてるけど、<br />
実際大きく描画するとどうしも重くなので、1/2～1/4のサイズで作成したものを<br />
ブラウザサイズまで引き伸ばして使うことになるのか？</p>
<p>そう考えるとしばらくはドットを使ったデザインが増えそうな気がする。<br />
今FlashPlayerはようやくファミコンの描画に追いついたイメージなのかな<br />
Bitmap処理が格段にあがっていけば、メガドライブやプレステの様な描画を<br />
フルHDでしても快適に動くようになっていくのだろう。</p>
<p>なんだか怖い。<br />
でも楽しそうな未来なのだ。<br />
私みたいなデタラメなコードを書いても軽快にうごくFlashPlayerが早く<br />
登場するといいな。</p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/139.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>progressionとpapervision3dの連携について考えてみる</title>
		<link>http://miraigyo.com/blog/archives/127.html</link>
		<comments>http://miraigyo.com/blog/archives/127.html#comments</comments>
		<pubDate>Sat, 19 Sep 2009 18:13:15 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>
		<category><![CDATA[Progression]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=127</guid>
		<description><![CDATA[秋だ！シルバーウィークだ！お勉強だ！ シングルトンを使ってprogressionとpapervision3dを連携させると 結構管理が楽そうなのでSingletonPv3d.asクラスをつくってみた。 3D空間を扱うときはあまり（？）3D空間に急に物体が現れることはないと思ったので 今回はシングルトンクラス内でオブジェクトを生成してみた。 なぜかクリック処理までシングルトン内にあるのでやっぱりオブジェクトの生成は progressionでやるほうがよいのかな。 なにわともあれもう少し小奇麗にしたい。 使い方は progressionのIndexScenシーンなりで SingletonPv3d.getInstance(); _onLoad　や　_onInit内でaddChildしてあげればよいだけ。 あとレンダリングはコンストラクタで行うと マウスカーソルがチカチカする； どうしてかな。。。。？ サンプル ソースコードはこんな感じ。 今きづいたけど、シーン移動中にPlaneをクリックすると クリックしたシーンに移動してないな。 やっぱりprogression側でカメラの移動したほうが綺麗かも。。 うーん、でもねむいのでまたにする。 SingletonPv3d.as public class SingletonPv3d extends Sprite { static private var _instance:SingletonPv3d; private var plane:Plane; private var basicBiew:BasicView; private var world:DisplayObject3D; private var planeCollection:/*DisplayObject3D*/Array; private var progression:Progression; public function SingletonPv3d(singletonEnforcer:SingletonEnforcer) { if (singletonEnforcer == null) [...]]]></description>
			<content:encoded><![CDATA[<p>秋だ！シルバーウィークだ！お勉強だ！<br />
シングルトンを使ってprogressionとpapervision3dを連携させると<br />
結構管理が楽そうなのでSingletonPv3d.asクラスをつくってみた。</p>
<p>3D空間を扱うときはあまり（？）3D空間に急に物体が現れることはないと思ったので<br />
今回はシングルトンクラス内でオブジェクトを生成してみた。<br />
なぜかクリック処理までシングルトン内にあるのでやっぱりオブジェクトの生成は<br />
progressionでやるほうがよいのかな。<br />
なにわともあれもう少し小奇麗にしたい。</p>
<p>使い方は<br />
progressionのIndexScenシーンなりで<br />
SingletonPv3d.getInstance();<br />
_onLoad　や　_onInit内でaddChildしてあげればよいだけ。</p>
<p>あとレンダリングはコンストラクタで行うと<br />
マウスカーソルがチカチカする；<br />
どうしてかな。。。。？</p>
<p><a href="http://miraigyo.com/blog/contents/swf/singletonpv3d/" target="_blank" >サンプル</a></p>
<p>ソースコードはこんな感じ。<br />
<span id="more-127"></span></p>
<p>今きづいたけど、シーン移動中にPlaneをクリックすると<br />
クリックしたシーンに移動してないな。<br />
やっぱりprogression側でカメラの移動したほうが綺麗かも。。<br />
うーん、でもねむいのでまたにする。</p>
<p>SingletonPv3d.as</p>
<pre name="code" class="ActionScript3">
	public class SingletonPv3d extends Sprite
	{
		static private var _instance:SingletonPv3d;
		private var plane:Plane;
		private var basicBiew:BasicView;
		private var world:DisplayObject3D;
		private var planeCollection:/*DisplayObject3D*/Array;
		private var progression:Progression;

		public function SingletonPv3d(singletonEnforcer:SingletonEnforcer)
		{
			if (singletonEnforcer == null) {
				throw Error("++++SingletonPv3d ERROR!!++++");
			}
		}

		public static function getInstance():SingletonPv3d
		{
			if (!SingletonPv3d._instance)
			{
				SingletonPv3d._instance = new SingletonPv3d(new SingletonEnforcer());
				_instance.drawWorld();

			}
			return SingletonPv3d._instance;
		}

		public function aaaa():void {
			drawWorld();
		}

		private function drawWorld():void
		{
			～～～省略～～～
			//--------------------------------------------------------------------------
			//  basic biewの作成
			//--------------------------------------------------------------------------
			basicBiew = new BasicView(500,500,true,true,"Target");
			addChild(basicBiew);

			//  カメラの設定
			//  オブジェクトの作成などを行う
			～～～省略～～～

			/// イベント処理
			basicBiew.addEventListener(Event.ADDED_TO_STAGE, onStage);

		}

		/// 配置待ち
		private function onStage(e:Event):void
		{
			progression = getProgressionById("index");
			basicBiew.removeEventListener(Event.ADDED_TO_STAGE, onStage);
		}

		/// basicBiew
		public function getBasicBiew():BasicView{return basicBiew;}

		/// world
		public function getWorld():DisplayObject3D{return world;}

		/// camera
		public function getCamera():CameraObject3D{return basicBiew.camera;}

		/// objectの取得
		public function getCollection():Array{return planeCollection;}

		public function startRendering():void{basicBiew.startRendering();}

	}
}

class SingletonEnforcer { }
</pre>
<p>IndexScene.as</p>
<pre name="code" class="ActionScript3">
/**
 * コンストラクタ
 */
public function IndexScene() {
	// ブラウザ同期時に出力したいタイトルを設定します。
	//title = "MyProject_2";

	/// シーンを作成
	var n:int = 40;
	for (var i:int = 1; i < n; i++)
	{
		var scene:MyScene = new MyScene(String(i));
		addScene(scene);
	}

	/// シングルトンクラスでPV3Dの3Dシーンを作成
	singletonPv3d = SingletonPv3d.getInstance();

}

/**
 * シーン移動時に目的地がシーンオブジェクト自身もしくは子階層だった場合に、階層が変更された瞬間に送出されます。
 * このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
 */
protected override function _onLoad():void {
	// 実行したいコマンドを登録します。

	/// PV3DをprogressionにAddChildする
	progression.container.addChild(singletonPv3d);

	/// PV3Dのレンダリングを開始
	singletonPv3d.startRendering();

	addCommand(

	);
}
</pre>
<p>最後になりますが、ソースコード一式あげておきます。<br />
MySceneクラスにBallとか変なクラスあるので削除してお使いください。<br />
<a href="http://miraigyo.com/blog/contents/swf/singletonpv3d/myproject.zip" target="_blank" >サンプル　sauce一式</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/127.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>papervision3dでas3dmodをつかってみる</title>
		<link>http://miraigyo.com/blog/archives/118.html</link>
		<comments>http://miraigyo.com/blog/archives/118.html#comments</comments>
		<pubDate>Sat, 19 Sep 2009 03:29:44 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/archives/118.html</guid>
		<description><![CDATA[papervision3dでas3dmodをつかってみる papervision3dを使用してて曲面とか表現したいと思って調べたらやっぱりあった。 planeなどの座標を移動してうねうねさせることができる。 ダウンロード：http://code.google.com/p/as3dmod/ Bloot　サンプル Bend　サンプル 使用方法はModifierStackにうねうねさせたい物体を渡すだけ oreMate = new CompositeMaterial(); oreMate.addMaterial(wfm); oreMate.addMaterial(vsm); oreMate.doubleSided = true; plane = new Plane(oreMate, 300, 200, 18, 18); plane.y = 100; plane.x = 0; viewPort.scene.addChild(plane); shase = new Phase(); modifierStack = new ModifierStack(new LibraryPv3d(), plane); bloat = new Bloat(); modifierStack.addModifier(bloat); modifierStack.apply(); サンプル2 ・Bloat-ポイントを設定し、ポイント周囲のオブジェクトを膨張？させる 　r:球の半径　x:球のx座標　y:球のy座標　z:球のz座標　a:??? ・Bend -オブジェクトを曲げる 　force：曲げる値　offset:　オフセット(0～1)　constraint:曲げる位置(-1～1) 　bendAxis:???　pointAxis:??? ・Noise-ランダムな動き [...]]]></description>
			<content:encoded><![CDATA[<p>papervision3dでas3dmodをつかってみる</p>
<p>papervision3dを使用してて曲面とか表現したいと思って調べたらやっぱりあった。<br />
planeなどの座標を移動してうねうねさせることができる。</p>
<p>ダウンロード：<a hrfef="http://code.google.com/p/as3dmod/">http://code.google.com/p/as3dmod/</a></p>
<p><a href="http://miraigyo.com/blog/contents/swf/as3dmod/bloot.swf" target="_blank" >Bloot　サンプル</a><br />
<a href="http://miraigyo.com/blog/contents/swf/as3dmod/bend.swf" target="_blank" >Bend　サンプル</a><br />
<span id="more-118"></span><br />
使用方法はModifierStackにうねうねさせたい物体を渡すだけ</p>
<pre name="code" class="ActionScript3">
oreMate = new CompositeMaterial();
oreMate.addMaterial(wfm);
oreMate.addMaterial(vsm);
oreMate.doubleSided = true;

plane = new Plane(oreMate, 300, 200, 18, 18);
plane.y = 100;
plane.x = 0;
viewPort.scene.addChild(plane);

shase = new Phase();
modifierStack = new ModifierStack(new LibraryPv3d(), plane);
bloat = new Bloat();
modifierStack.addModifier(bloat);
modifierStack.apply();
</pre>
<p><a href="http://miraigyo.com/blog/contents/swf/as3dmod/etc.swf" target="_blank" >サンプル2</a></p>
<p>・Bloat-ポイントを設定し、ポイント周囲のオブジェクトを膨張？させる<br />
　r:球の半径　x:球のx座標　y:球のy座標　z:球のz座標　a:???</p>
<p>・Bend -オブジェクトを曲げる<br />
　force：曲げる値　offset:　オフセット(0～1)　constraint:曲げる位置(-1～1)<br />
　bendAxis:???　pointAxis:???</p>
<p>・Noise-ランダムな動き<br />
　force:大きさ</p>
<p>・Twis-オブジェクトをねじる<br />
　angle：ねじる角度　vector:曲げる位置(0, 1, 0)　center:曲げの中心? Vector3D(0, 0, 0)</p>
<p>・Perlin-波うつような動作<br />
　setFalloffで波打つ</p>
<p>・Taper-オブジェクトを先細（先広）に変形<br />
　<br />
・Skew-オブジェクトを傾斜させる</p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/118.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>papervision3d カメラの移動をしてみる</title>
		<link>http://miraigyo.com/blog/archives/51.html</link>
		<comments>http://miraigyo.com/blog/archives/51.html#comments</comments>
		<pubDate>Mon, 25 May 2009 13:16:48 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=51</guid>
		<description><![CDATA[papervision3d カメラの移動をしてみる &#8211; wonderfl build flash online]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;width:465px;"><iframe title="papervision3d カメラの移動をしてみる - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/2a5bb55c8b981f0caafc3ded2565b92a0da74913" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.kayac.com/code/2a5bb55c8b981f0caafc3ded2565b92a0da74913" title="papervision3d カメラの移動をしてみる - wonderfl build flash online">papervision3d カメラの移動をしてみる &#8211; wonderfl build flash online</a></div>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/51.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>papervision3dのお勉強 step-3　BasicViewとReflectionViewを使ってみる</title>
		<link>http://miraigyo.com/blog/archives/41.html</link>
		<comments>http://miraigyo.com/blog/archives/41.html#comments</comments>
		<pubDate>Wed, 20 May 2009 22:04:03 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=41</guid>
		<description><![CDATA[前回作成した物をBasicViewとReflectionViewを使ってやってみる。 お馬鹿な私はとりあえずやってみないとわからないので、前回と同じ順序で作成してみることにしました。 BasicViewをつかってみる flash on 2009-5-21 &#8211; wonderfl build flash online 前回から変更した点は、 BasicViewを使うのでカメラやシーンがBasicViewをnewしたときにカメラやシーン作成される為に、個別に作成する手間はなくなります。 以前、一番簡単な方法で3Ｄを作成した時はBasicViewクラスを継承して作成しました。この場合もカメラやシーンを生成することなく、 オブジェクトのみを作成すれば良かったわけですが、ようやく意味が分かった気がします。 ReflectionViewをつかってみる forked from: flash on 2009-5-21 &#8211; wonderfl build flash online ReflectionViewを使用する際の注意点は、singleRender()を使うということではないでしょうか。 ただ、どうしてsingleRenderを使わなければならないのか、理解が追いついておりません。どなたか簡単にご解説いただけないでしょうか。 よろしくお願いします。]]></description>
			<content:encoded><![CDATA[<p style="margin: 0 0 8px 0;">
<a href="http://miraigyo.com/blog/papervision3d/papervision3d%E3%81%AE%E3%81%8A%E5%8B%89%E5%BC%B7-step-2%E3%80%80%E3%82%82%E3%81%86%E5%B0%91%E3%81%97%E7%90%86%E8%A7%A3%E3%82%92%E6%B7%B1%E3%82%81%E3%82%8B.html">前回作成した物</a>をBasicViewとReflectionViewを使ってやってみる。<br />
お馬鹿な私はとりあえずやってみないとわからないので、前回と同じ順序で作成してみることにしました。
</p>
<h3>BasicViewをつかってみる</h3>
<div style="text-align:center;width:465px;"><iframe title="flash on 2009-5-21 - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/9f7b090595cdd637072b41dcf3922f2d9cfa1a7c" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.kayac.com/code/9f7b090595cdd637072b41dcf3922f2d9cfa1a7c" title="flash on 2009-5-21 - wonderfl build flash online">flash on 2009-5-21 &#8211; wonderfl build flash online</a></div>
<p><span id="more-41"></span><br />
<a href="http://miraigyo.com/blog/papervision3d/papervision3d%E3%81%AE%E3%81%8A%E5%8B%89%E5%BC%B7-step-2%E3%80%80%E3%82%82%E3%81%86%E5%B0%91%E3%81%97%E7%90%86%E8%A7%A3%E3%82%92%E6%B7%B1%E3%82%81%E3%82%8B.html">前回</a>から変更した点は、<br />
BasicViewを使うのでカメラやシーンがBasicViewをnewしたときにカメラやシーン作成される為に、個別に作成する手間はなくなります。<br />
<a href="http://miraigyo.com/blog/papervision3d/papervision3d%E3%81%AE%E3%81%8A%E5%8B%89%E5%BC%B7-step-1.html">以前、一番簡単な方法で3Ｄを作成した時</a>はBasicViewクラスを継承して作成しました。この場合もカメラやシーンを生成することなく、<br />
オブジェクトのみを作成すれば良かったわけですが、ようやく意味が分かった気がします。</p>
<div style="margin: 8px 0 8px 0;">
<h3>ReflectionViewをつかってみる</h3>
<div style="text-align:center;width:465px;"><iframe title="forked from: flash on 2009-5-21 - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/f7f39ba4fb804dbd20c654ad7406f20add978252" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.kayac.com/code/f7f39ba4fb804dbd20c654ad7406f20add978252" title="forked from: flash on 2009-5-21 - wonderfl build flash online">forked from: flash on 2009-5-21 &#8211; wonderfl build flash online</a></div>
<p>ReflectionViewを使用する際の注意点は、<strong>singleRender()</strong>を使うということではないでしょうか。<br />
ただ、どうしてsingleRenderを使わなければならないのか、理解が追いついておりません。どなたか簡単にご解説いただけないでしょうか。<br />
よろしくお願いします。
</div>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/41.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>papervision3dのお勉強 step-2　もう少し理解を深める</title>
		<link>http://miraigyo.com/blog/archives/26.html</link>
		<comments>http://miraigyo.com/blog/archives/26.html#comments</comments>
		<pubDate>Tue, 19 May 2009 23:17:19 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=26</guid>
		<description><![CDATA[今回はpapervision3dが、どういった構造になっているかを理解しながらコードを書いてみることにしました。 papervision3dでは以下の様なステップで3D表現を創りだすことができているようです。 1.ビューポートの作成 3Ｄ空間を表示する画面のようなものを作成します。この範囲にあるものだけが描画されることになります。実際にはカメラで撮影された表示がレンダリングによってビューポートに表示されることになります。 2.カメラの作成 3Ｄ空間を撮影する為のカメラを定義します。 3.3Ｄシーンの作成 papervision3dではシーンにaddChildすることでオブジェクトが表示されます。 4.レンダリングエンジンの作成 レンダリングを行うためのレンダーを定義します。 5.オブジェクトを作成 3Ｄ空間に投影したい形状を定義します。形状を定義する場合は、マテリアル（テクスチャ）を定義してから、形状を定義するイメージです。 最後にシーンにaddChildすることを忘れずに。。 6.レンダリングを行う 1～5まで行ってきた作業を3Ｄで表示してくれるものです。 以前作成したものよりも、コードは長いですが、実際にやっていることは同じです。それはBasicViewクラスの中身を見れば明確でした。以下BasicViewクラスの一部です。以前は見ても何がなんだかでしたが、こうやって１つずつ見ていくと理解できるものですね。 public function BasicView(viewportWidth:Number = 640, viewportHeight:Number = 480, scaleToStage:Boolean = true, interactive:Boolean = false, cameraType:String = "Target") { super(); //シーンの作成 scene = new Scene3D(); //ビューポートの作成 viewport = new Viewport3D(viewportWidth, viewportHeight, scaleToStage, interactive); addChild(viewport); //レンダリングエンジンの作成 renderer = new BasicRenderEngine(); //カメラの設定 [...]]]></description>
			<content:encoded><![CDATA[<p>今回はpapervision3dが、どういった構造になっているかを理解しながらコードを書いてみることにしました。</p>
<p>papervision3dでは以下の様なステップで3D表現を創りだすことができているようです。</p>
<p style="margin: 0 0 8px 0;">
<strong>1.ビューポートの作成</strong><br />
3Ｄ空間を表示する画面のようなものを作成します。この範囲にあるものだけが描画されることになります。実際にはカメラで撮影された表示がレンダリングによってビューポートに表示されることになります。
</p>
<p style="margin: 0 0 8px 0;">
<strong>2.カメラの作成</strong><br />
3Ｄ空間を撮影する為のカメラを定義します。
</p>
<p style="margin: 0 0 8px 0;">
<strong>3.3Ｄシーンの作成</strong><br />
papervision3dではシーンにaddChildすることでオブジェクトが表示されます。
</p>
<p style="margin: 0 0 8px 0;">
<strong>4.レンダリングエンジンの作成</strong><br />
レンダリングを行うためのレンダーを定義します。
</p>
<p style="margin: 0 0 8px 0;">
<strong>5.オブジェクトを作成</strong><br />
3Ｄ空間に投影したい形状を定義します。形状を定義する場合は、マテリアル（テクスチャ）を定義してから、形状を定義するイメージです。<br />
最後にシーンにaddChildすることを忘れずに。。
</p>
<p style="margin: 0 0 8px 0;">
<strong>6.レンダリングを行う</strong><br />
1～5まで行ってきた作業を3Ｄで表示してくれるものです。
</p>
<p>以前作成したものよりも、<br /><span id="more-26"></span>コードは長いですが、実際にやっていることは同じです。それはBasicViewクラスの中身を見れば明確でした。以下BasicViewクラスの一部です。以前は見ても何がなんだかでしたが、こうやって１つずつ見ていくと理解できるものですね。</p>
<pre name="code" class="ActionScript3">
public function BasicView(viewportWidth:Number = 640, viewportHeight:Number = 480, scaleToStage:Boolean = true, interactive:Boolean = false, cameraType:String = "Target")
{

	super();

	//シーンの作成

	scene = new Scene3D();

	//ビューポートの作成

	viewport = new Viewport3D(viewportWidth, viewportHeight, scaleToStage, interactive);

	addChild(viewport);

	//レンダリングエンジンの作成

	renderer = new BasicRenderEngine();

	//カメラの設定

	switch(cameraType)

	{

		case CameraType.DEBUG:

			_camera = new DebugCamera3D(viewport);

			break;

		case CameraType.TARGET:

			_camera = new Camera3D(60);

			_camera.target = DisplayObject3D.ZERO;

			break;

		case CameraType.SPRING:

			_camera = new SpringCamera3D();

			_camera.target = DisplayObject3D.ZERO;

			break;

		case CameraType.FREE:

		default:

			_camera = new Camera3D(60);

			break;

	}

	cameraAsCamera3D.update(viewport.sizeRectangle);
</pre>
<p>今回作成したものはコチラです。</p>
<div style="text-align:center;width:465px;"><iframe title="flash on 2009-5-20 - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/dd046677f0e4e0bfdfe4a1028a71d89fa4b3e08c" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.kayac.com/code/dd046677f0e4e0bfdfe4a1028a71d89fa4b3e08c" title="flash on 2009-5-20 - wonderfl build flash online">flash on 2009-5-20 &#8211; wonderfl build flash online</a></div>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/26.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>papervision3dのお勉強 step-1　とりあえず3Dをやってみる</title>
		<link>http://miraigyo.com/blog/archives/15.html</link>
		<comments>http://miraigyo.com/blog/archives/15.html#comments</comments>
		<pubDate>Mon, 18 May 2009 22:30:28 +0000</pubDate>
		<dc:creator>oreore</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://miraigyo.com/blog/?p=15</guid>
		<description><![CDATA[そろそろ3Dのお勉強をしてみようとpapervision3dに手をだしてみましたが、なにやら結構大変だったのでやって行ったことを忘れないように残しておく。。。。 ひとまず何か形にできないと勉強できない人間なので、訳も分からず一番簡単な方法で3Dオブジェクトを表示することから始めます。 forked from: [PV3D] Simple Sphere &#8211; wonderfl build flash online papervision3dでは、BasicViewやReflectionViewを継承することでオブジェクトの追加のみで簡単に3D空間にオブジェクトを配置できるようになっています。 まずは必要なクラスをimportします。 // 必要なライブラリをインポートします import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.special.CompositeMaterial; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.shadematerials.FlatShadeMaterial; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; import org.papervision3d.core.effects.view.ReflectionView; 次にカメラの位置設定を行う今回はｙの位置を200に設定して少し上から見た状態にしました。ｙを0にするとあとで作成する床がみえません。 //カメラ位置//////////////////////////////////////////////// camera.y = 200; オブジェクトの作成 //床の作成////////////////////////////////////////////////// /*テクスチャを作成*/ var wm:WireframeMaterial = new WireframeMaterial(); var col:ColorMaterial = new ColorMaterial(0xffffff, 0.5); var co:CompositeMaterial [...]]]></description>
			<content:encoded><![CDATA[<p>そろそろ3Dのお勉強をしてみようとpapervision3dに手をだしてみましたが、なにやら結構大変だったのでやって行ったことを忘れないように残しておく。。。。</p>
<p>ひとまず何か形にできないと勉強できない人間なので、訳も分からず一番簡単な方法で3Dオブジェクトを表示することから始めます。<br /><span id="more-15"></span></p>
<div style="text-align:center;width:465px;"><iframe title="forked from: [PV3D] Simple Sphere - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/b624aa016a29059ab3e0983d46a564aa5bce560e" width="465" height="490" style="border:1px black solid;"></iframe><a href="http://wonderfl.kayac.com/code/b624aa016a29059ab3e0983d46a564aa5bce560e" title="forked from: [PV3D] Simple Sphere - wonderfl build flash online">forked from: [PV3D] Simple Sphere &#8211; wonderfl build flash online</a></div>
<p>papervision3dでは、BasicViewやReflectionViewを継承することでオブジェクトの追加のみで簡単に3D空間にオブジェクトを配置できるようになっています。<br />
まずは必要なクラスをimportします。</p>
<pre name="code" class="ActionScript3">
// 必要なライブラリをインポートします
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.special.CompositeMaterial;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.core.effects.view.ReflectionView;
</pre>
<p>次にカメラの位置設定を行う今回はｙの位置を200に設定して少し上から見た状態にしました。ｙを0にするとあとで作成する床がみえません。</p>
<pre name="code" class="ActionScript3">
	//カメラ位置////////////////////////////////////////////////
			camera.y = 200;
</pre>
<p>オブジェクトの作成</p>
<pre name="code" class="ActionScript3">
//床の作成//////////////////////////////////////////////////

/*テクスチャを作成*/
var wm:WireframeMaterial = new WireframeMaterial();
var col:ColorMaterial = new ColorMaterial(0xffffff, 0.5);
var co:CompositeMaterial = new CompositeMaterial();
co.addMaterial(wm);
co.addMaterial(col);

板状のオブジェクトを作成　引数は（テクスチャ,横方向のポリゴン分割数、縦方向のポリゴン分割数）
var floor:Plane = new Plane(co, 1000, 1000, 6, 6);
floor.pitch( -90);//90度回転（rotationXでもまわる）

//床を3Dシーンに表示(PV3DではsceneにaddChildすることで表示されます)
scene.addChild(floor);

// 球面を作成///////////////////////////////////////////////
var material: CompositeMaterial = new CompositeMaterial();
material.addMaterial(new WireframeMaterial(0xff6633));
material.addMaterial(new ColorMaterial(0xdcdcdc));

ball = new Sphere(material, 100, 8, 8);
ball.y = 100;

// 球面を3Dシーンに表示//////////////////////////////////////
scene.addChild(ball);
</pre>
<p>最後にenterFrameでレンダリングを行うことで描画される？のですが、<br />
今回はReflectionViewを継承して作成しているので　singleRender();を使用しないと描画されませんでした。<br />
BasicViewの場合はstartRendering();で描画できるのですが、この辺の理解にはまだ届いていません。</p>
<p>今回の作成方法はほぼオブジェクトを作成するだけで簡単に3D表示が行えますが、皆様が仰るようになにをやってるの理解しづらいと思いました。<br />
つぎはもう少し面倒くさい方法で作成し、理解を深める。</p>
<p>それにしてもwonderflは便利ですね。そして文章書くのてかなり面倒だ。でも誰かに理解してもらえるように書くことは自分の理解にもつながるので頑張って<a href="http://miraigyo.com/labs/#/papervision3D_3Dtext">こいつ</a>の軌跡を残してみる。</p>
]]></content:encoded>
			<wfw:commentRss>http://miraigyo.com/blog/archives/15.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

