<?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>Web活メモ帳 &#187; Flash Player 10</title>
	<atom:link href="http://blog.verygoodtown.com/tag/flash-player-10/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.verygoodtown.com</link>
	<description>WEB開発者が使える世界の情報を発信します。</description>
	<lastBuildDate>Thu, 09 Feb 2012 02:01:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flashで使える3Dゲームエンジン「yogurt3d」</title>
		<link>http://blog.verygoodtown.com/2010/03/flash-3d-game-engine-yogurt3d/</link>
		<comments>http://blog.verygoodtown.com/2010/03/flash-3d-game-engine-yogurt3d/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 01:23:14 +0000</pubDate>
		<dc:creator>linja</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash Player 10]]></category>

		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=3723</guid>
		<description><![CDATA[
「yogurt3d」は3Dゲームの開発に使えるActionscript3.0ライブラリです。
Maya、 XSI Softimage、 3D Studio Maxなどの3D作成ソフトと連携が取れるようです。
詳しくは以下

デモ
サイト内にはタワーディフェンスや、キャラクターをキーボードで操作できるデモがあります。
以下はタワーディフェンスの様子。普通に遊べます。

単純な3Dの描画は以下のようなコードで実装できるようです。

package
{
    import com.yogurt3d.Yogurt3D;
    import com.yogurt3d.core.materials.MaterialBitmap;
    import com.yogurt3d.core.sceneobjects.SceneObjectRenderable;
    import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
    import com.yogurt3d.presets.renderers.trianglesort.RendererTriangleSort;  

    import flash.display.GraphicsSolidFill;
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent;
   [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100329-01.png" alt="20100329-01" title="20100329-01" width="600" height="140" class="alignnone size-full wp-image-3725" /><br />
「<a href="http://www.yogurt3d.com/" target="_blank">yogurt3d</a>」は3Dゲームの開発に使えるActionscript3.0ライブラリです。</p>
<p>Maya、 XSI Softimage、 3D Studio Maxなどの3D作成ソフトと連携が取れるようです。</p>
<p>詳しくは以下<br />
<span id="more-3723"></span></p>
<h3>デモ</h3>
<p>サイト内にはタワーディフェンスや、キャラクターをキーボードで操作できるデモがあります。<br />
以下は<a href="http://www.yogurt3d.com/demos/tower_defense/bin-debug/demo-02.php" target="_blank">タワーディフェンス</a>の様子。普通に遊べます。</p>
<p><a href="http://www.yogurt3d.com/demos/tower_defense/bin-debug/demo-02.php" target="_blank"><img src="http://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100329-02.png" alt="20100329-02" title="20100329-02" width="500" height="320" class="alignnone size-full wp-image-3726" /></a></p>
<p>単純な3Dの描画は以下のようなコードで実装できるようです。</p>
<pre class="brush:as3;">
package
{
    import com.yogurt3d.Yogurt3D;
    import com.yogurt3d.core.materials.MaterialBitmap;
    import com.yogurt3d.core.sceneobjects.SceneObjectRenderable;
    import com.yogurt3d.presets.primitives.sceneobjects.BoxSceneObject;
    import com.yogurt3d.presets.renderers.trianglesort.RendererTriangleSort;  

    import flash.display.GraphicsSolidFill;
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent;
    import flash.geom.Vector3D;  

    import mx.core.BitmapAsset;  

    import utils.*;  

    [SWF(width='800',height='600',frameRate='60',backgroundColor='0x000000')]
    public class Tutorial1 extends Sprite
    {
        [Embed(source="../resources/yogurt.png")]
        private var m_embeddedTexture:Class;
        private var m_texture:BitmapAsset = new m_embeddedTexture() as BitmapAsset;  

        public var ko:KeyObject;  

        private var m_mouseDown:Boolean = false;
        private var mousePosX:Number=0,mousePosY:Number=0,mousePosX_prev:Number=0,mousePosY_prev:Number=0;  

        private var renderableObject:SceneObjectRenderable;  

        private var angleX:Number       = 0;
        private var angleY:Number       = 0;
        private var rot_speed:Number    = 0.5;  

        public function Tutorial1()
        {
            KeyObject.stage = this.stage;
            ko = new KeyObject(this);  

            Yogurt3D.defaultSetup();
            Yogurt3D.fps = stage.frameRate;  

            stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseUpDownEventListener);
            stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveEventListener);
            stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpDownEventListener);
            stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelEventListener);  

            Yogurt3D.defaultContext.renderer = new RendererTriangleSort();
            Yogurt3D.defaultCamera.setProjectionPerspective(50.0, 800.0/600.0, 1, 400 );
            Yogurt3D.defaultViewport.setViewport( 0.0, 0.0, 800.0, 600.0 );
            Yogurt3D.defaultCamera.transformation.positionWrtParent = new Vector3D(0, 0, 20);  

            addChild(Yogurt3D.defaultViewport);  

            Yogurt3D.enginePreUpdateCallback = run;  

            renderableObject = new BoxSceneObject(5,5,8,2,3,4);  

            renderableObject.material = new MaterialBitmap(m_texture.bitmapData);  

            renderableObject.material.graphicsStroke.thickness = 1;
            renderableObject.material.graphicsStroke.fill = new GraphicsSolidFill(0xFFFFFF);  

            Yogurt3D.defaultScene.addChild(renderableObject);  

            Yogurt3D.startAutoUpdate();
        }  

        public function run():void
        {
            if(ko.keysDown[87])//W
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.zAxisWrtParent, -1);
            }  

            if(ko.keysDown[65])//A
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.xAxisWrtParent, -1);
            }  

            if(ko.keysDown[83])//S
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.zAxisWrtParent, 1);
            }  

            if(ko.keysDown[68])//D
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.xAxisWrtParent, 1);
            }  

            if(ko.keysDown[32])//SPACE
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.yAxisWrtParent, 1);
            }  

            if(ko.keysDown[16])//SHIFT
            {
                Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.yAxisWrtParent, -1);
            }
        }  

        private function mouseUpDownEventListener(_e:MouseEvent):void
        {
            m_mouseDown = _e.buttonDown;
        }  

        private function mouseMoveEventListener(_e:MouseEvent):void
        {
            mousePosX_prev = mousePosX;
            mousePosY_prev = mousePosY;
            mousePosX = Yogurt3D.defaultViewport.mouseX;
            mousePosY = Yogurt3D.defaultViewport.mouseY;  

            if (m_mouseDown)
            {
                angleX += rot_speed*(mousePosY_prev-mousePosY);
                angleY += rot_speed*(mousePosX_prev-mousePosX);
                if(angleX > 90)
                    angleX = 90;
                if(angleX < -90)
                    angleX = -90;  

                Yogurt3D.defaultCamera.transformation.resetRotation();  

                Yogurt3D.defaultCamera.transformation.rotateYWrtWorld(angleY);
                Yogurt3D.defaultCamera.transformation.rotateXWrtObject(angleX);
            }
        }  

        private function mouseWheelEventListener(_e:MouseEvent):void
        {
            Yogurt3D.defaultCamera.transformation.translateInDirectionWrtParent(Yogurt3D.defaultCamera.transformation.zAxisWrtParent, -_e.delta/5);
        }  

        public function keyPressed(evt:KeyboardEvent):void
        {
            ko.keysDown[evt.keyCode] = true;
        }  

        public function keyReleased(evt:KeyboardEvent):void
        {
            delete ko.keysDown[evt.keyCode];
        }
    }
}
</pre>
<p>3Dゲームにチャレンジしてみたい方はいかがでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.verygoodtown.com/2010/03/flash-3d-game-engine-yogurt3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash上で動画を編集できるオープンソースなwebアプリMovie Masher</title>
		<link>http://blog.verygoodtown.com/2009/12/flash%e4%b8%8a%e3%81%a7%e5%8b%95%e7%94%bb%e3%82%92%e7%b7%a8%e9%9b%86%e3%81%a7%e3%81%8d%e3%82%8bmovie-masher/</link>
		<comments>http://blog.verygoodtown.com/2009/12/flash%e4%b8%8a%e3%81%a7%e5%8b%95%e7%94%bb%e3%82%92%e7%b7%a8%e9%9b%86%e3%81%a7%e3%81%8d%e3%82%8bmovie-masher/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 18:33:21 +0000</pubDate>
		<dc:creator>linja</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[Movie]]></category>
		<category><![CDATA[MPL License]]></category>
		<category><![CDATA[動画編集]]></category>

		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=155</guid>
		<description><![CDATA[
Movie MasherはFlash上で動画の編集ができるオープンソースなFlashアプリケーションです。
ビデオ、オーディオ、画像やテキストをミックスすることで簡単に動画が作れるようになります。
詳しくは以下

オン [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-162 alignnone" title="Example -- Static -- Movie Masher" src="http://blog.verygoodtown.com/wordpress/wp-content/uploads/Example-Static-Movie-Masher-300x173.png" alt="Example -- Static -- Movie Masher" width="300" height="173" /><br />
<a href="http://www.moviemasher.com/">Movie Masher</a>はFlash上で動画の編集ができるオープンソースなFlashアプリケーションです。<br />
ビデオ、オーディオ、画像やテキストをミックスすることで簡単に動画が作れるようになります。</p>
<p>詳しくは以下</p>
<p><span id="more-155"></span></p>
<p>オンラインデモで機能を確認してみました。<br />
動作には Flash Player 10以上が必要です。</p>
<ul>
<li><a href="http://www.moviemasher.com/demo/">Online Demos: Movie Masher: Free Open Source Online Video Editor</a></li>
</ul>
<p>マシンスペックがかなり必要なようで筆者の環境では少しもっさりしているが、フェードインや動画の位置などは手軽に設定することができました。<br />
操作性はWindows Movie Makerにかなり近くなるように作られている印象です。<br />
動画編集をしたことがあれば特に違和感なく操作できると思います。</p>
<p>以下の機能があるようです。</p>
<ul>
<li>ブラウザ上での動画編集</li>
<li>ビデオ、オーディオ、画像、テキストの合成</li>
<li>各種エフェクト</li>
</ul>
<p>Flaファイル一式がダウンロードできるので、動画編集をオンラインで実現されたい方は一度のぞいて見てはいかがでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.verygoodtown.com/2009/12/flash%e4%b8%8a%e3%81%a7%e5%8b%95%e7%94%bb%e3%82%92%e7%b7%a8%e9%9b%86%e3%81%a7%e3%81%8d%e3%82%8bmovie-masher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

