<?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>BoxHeadRoom &#187; flash</title>
	<atom:link href="http://boxheadroom.com/tag/flash/feed" rel="self" type="application/rss+xml" />
	<link>http://boxheadroom.com</link>
	<description>蝸牛の一歩</description>
	<lastBuildDate>Tue, 07 Feb 2012 13:41:06 +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>「プログラミン」で遊んでみた</title>
		<link>http://boxheadroom.com/2010/08/21/programin_signal_slot</link>
		<comments>http://boxheadroom.com/2010/08/21/programin_signal_slot#comments</comments>
		<pubDate>Sat, 21 Aug 2010 09:31:49 +0000</pubDate>
		<dc:creator>boxheadroom</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[game]]></category>

		<guid isPermaLink="false">http://boxheadroom.com/?p=4230</guid>
		<description><![CDATA[話題なので遊んでみました。
無料でFlashアニメが作れるツールとしても便利ですねー

	programin.showParts("3ce754b65f64af7d9225d7414b4f355c");

ジャングルでジャンプ
素人プログラム歴だけは　結構長い私ですけれども、遊んでみて　いろいろ勉強になりました～
以下　少し触ってみての感想です。

BASIC時代の脳みそを引きずって生きている身としては、サブルーチンが無く、ヨブーン＆ハターン(シグナル＆スロット)使うってのが面白かったです。普段、あまり使わないので。
（メガホンで　旗の番号を叫ぶと、　その旗でマークされたプログラムが全部動くイメージです）
というわけで、今回はヨブーンとハターンがどんな感じなのか使ってみました。
あと、ちょっと違和感を覚えた部分。
普通は、横書きの文章だと上から下へ読むのですけれども、プログラミンのプログラムは、下から上へと順番に実行されていきます。
ひょっとしたら、プログラミンの処理系って、スタックマシンとして実装されてるから、　グラフィックデザインもそれにあわせたのかしらん？などと想像してみたり。
（スタックマシンっていうのは、、、命令の「積み木」を順番に積みあげて行くようなイメージを想像してみてください）
関連
PythonによるSignal ／Slotのサンプルコード
ちょっと判りにくいですけど
プログラミン（文科省）
プログラミンを紹介した記事
週間アスキー
ガジェット通信

	Tags: flash, game

	Related posts
	
	おとぎ話と、ゲームと、『小さな欲望』 (0)
	全ての英語が苦手な人が見るべきたったひとつの動画 (0)
	フィジオス、「PHYZIOS Studio Pro for Windows」ベータ版を無料公開 (0)
	【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編 (0)
	【Flash】凸凹写真（仮）　トラ猫編 (0)


]]></description>
			<content:encoded><![CDATA[<p>話題なので遊んでみました。<br />
無料でFlashアニメが作れるツールとしても便利ですねー<br />
<script type="text/javascript" language="javascript" charaset="UTF-8" src="http://www.mext.go.jp/programin/blogwidget/blogparts.js"></script><br />
<script type="text/javascript">	programin.showParts("3ce754b65f64af7d9225d7414b4f355c");
</script><br />
<a href="http://www.mext.go.jp/programin/share/?share_id=3ce754b65f64af7d9225d7414b4f355c">ジャングルでジャンプ</a></p>
<p>素人プログラム歴だけは　結構長い私ですけれども、遊んでみて　いろいろ勉強になりました～<br />
以下　少し触ってみての感想です。<br />
<span id="more-4230"></span><br />
BASIC時代の脳みそを引きずって生きている身としては、サブルーチンが無く、ヨブーン＆ハターン(シグナル＆スロット)使うってのが面白かったです。普段、あまり使わないので。</p>
<p>（メガホンで　旗の番号を叫ぶと、　その旗でマークされたプログラムが全部動くイメージです）</p>
<p>というわけで、今回はヨブーンとハターンがどんな感じなのか使ってみました。</p>
<p>あと、ちょっと違和感を覚えた部分。<br />
普通は、横書きの文章だと上から下へ読むのですけれども、プログラミンのプログラムは、下から上へと順番に実行されていきます。</p>
<p>ひょっとしたら、プログラミンの処理系って、スタックマシンとして実装されてるから、　グラフィックデザインもそれにあわせたのかしらん？などと想像してみたり。<br />
（スタックマシンっていうのは、、、命令の「積み木」を順番に積みあげて行くようなイメージを想像してみてください）</p>
<p>関連<br />
<a href="http://www.pygame.org/wiki/SignalSlot?parent=CookBook">PythonによるSignal ／Slotのサンプルコード</a><br />
ちょっと判りにくいですけど</p>
<p><a href="http://www.mext.go.jp/programin/">プログラミン（文科省）</a></p>
<p>プログラミンを紹介した記事<br />
<a href="http://weekly.ascii.jp/elem/000/000/023/23778/">週間アスキー</a><br />
<a href="http://getnews.jp/archives/73551">ガジェット通信</a></p>

	Tags: <a href="http://boxheadroom.com/tag/flash" title="flash" rel="tag">flash</a>, <a href="http://boxheadroom.com/tag/game" title="game" rel="tag">game</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://boxheadroom.com/2010/10/22/over_the_sky" title="おとぎ話と、ゲームと、『小さな欲望』 (10月 22, 2010)">おとぎ話と、ゲームと、『小さな欲望』</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/06/20/e3_iwata" title="全ての英語が苦手な人が見るべきたったひとつの動画 (6月 20, 2010)">全ての英語が苦手な人が見るべきたったひとつの動画</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/04/04/phyzios_studio" title="フィジオス、「PHYZIOS Studio Pro for Windows」ベータ版を無料公開 (4月 4, 2010)">フィジオス、「PHYZIOS Studio Pro for Windows」ベータ版を無料公開</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/01/16/deco_stereo_pair_to_z" title="【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編 (1月 16, 2010)">【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/01/12/decoboco_tiger" title="【Flash】凸凹写真（仮）　トラ猫編 (1月 12, 2010)">【Flash】凸凹写真（仮）　トラ猫編</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://boxheadroom.com/2010/08/21/programin_signal_slot/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編</title>
		<link>http://boxheadroom.com/2010/01/16/deco_stereo_pair_to_z</link>
		<comments>http://boxheadroom.com/2010/01/16/deco_stereo_pair_to_z#comments</comments>
		<pubDate>Sat, 16 Jan 2010 05:46:27 +0000</pubDate>
		<dc:creator>boxheadroom</dc:creator>
				<category><![CDATA[CG]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Stereo]]></category>

		<guid isPermaLink="false">http://boxheadroom.com/?p=3685</guid>
		<description><![CDATA[凸凹写真（仮）の記事の続きです。
今度は、実写のステレオ写真（右目、左目用の写真がペアになったもの）から、奥行きデータを作成、凸凹写真（仮）にしてみました
拡大表示


画像はEmguのサンプルより。
コードは下に。
&#8212;-
この凸凹写真（仮）のアイディアは、 富士フイルム　FinePixREAL　3D　W1 の発売当初から考えていた、、、のですが、やっと（実験的にですが）　形にすることができました。


肝心のカメラは　まだ入手してないのですが（汗
今回のコードは、結構やっつけなのでアレですけれども、、、

余談 その1
　立体カメラのプロモーション用に、　『ステレオ（左右ペア）写真をアップロードすると、凸凹写真（仮）になるWEBサービス』（とか、SNS, 写真共有サイト） なんてのが有ると、Webでも気軽に立体写真の感じが楽しめて面白いかなぁと思ったりしました。
私自身は技術力が追いつかないので作れませんが（無念）　

余談 その２
　今年は3Dテレビなども発売されるみたいですが、ということは、うまくいけば、コンシュマーな3Dビデオカメラも松下やソニーから発売される可能性は有るのかしらん？
（というか、願望ですが。）
　ホームビデオな3D動画の標準化など、通産省に音頭をとって頂きたいところ。　個々にバラバラのフォーマットだと、オーサリング（ソフトを作る人）なんかも困るだろうし、消費者としても困るし。

さて、本題に戻りまして。
今回はironpython2.6を使用しました。
サンプル画像は、比較的きれいに奥行きデータを取得できました。

(凸凹写真（仮）の都合で、奥行きデータにぼかしをかけてあります)
ネット上に公開されている、いろんなステレオ写真で試したところ、元の写真によって、うまく奥行きを取得できる場合と、うまくいかない場合があるようです。
ものによっては、手書きで奥行きデータを与えてやったほうが、かえって綺麗な場合もあります。
Emgu CV ： OpenCV in .NET
.NET用のOpenCVラッパーライブラリ
IronPythonからも使えます。まだよく判らないので試行錯誤中

ダウンロード
サンプルEmgu.CV.SourceAndExample-1.5.0.1.zip

サンプルコード Simple3DReconstructionを、ほぼ引き写し。オリジナルはOpenGLを使ってポリゴンで奥行きを表示しているのですが、ビットマップの濃淡で出力するようにしました。
&#8593;
関連記事
下記のソフトのほうが断然スゴイ、のですが。

【トレたま】iPhoneソフトHourFace
顔写真を送ると、歳をとった自分の顔がポリゴンになって送られてくる、というアプリ。
モーションポートレイトは　スゴイですねー
【画像ぷるぷる】違った視点でソフト作ってみた
えろいので注意！
ポリゴンで超立体化＆有限要素解析

&#8593;
コード
まだ自分自身もライブラリの使い方がよくわかってないので、試行錯誤した後を清書せずに残してあります。
Emguのbinフォルダから、適当に必要なdll　（cv200.dll , Emgu.CV.dll などなど）を、このスクリプトと同じフォルダにコピーして実行してください。

画像データ 000_tex.jpg
奥行きデータ 000_z.jpg

が作成されます。 先日のphpのコードで swfファイルを作成するための素材として使用できます。

decoboco.py

import clr
clr.AddReference("Emgu.CV")
import Emgu.CV as cv
import System
import Emgu.CV.Structure as S
clr.AddReference("System.Drawing")
import System.Drawing as D
import Emgu.CV.CvEnum as E

fnleft="left.jpg"
fnright="right.jpg"
rev=0.
rev=1.

b=4
iml=cv.Image[S.Gray,System.Byte](fnleft)
imr=cv.Image[S.Gray,System.Byte](fnright)
im2=cv.Image[S.Gray,System.Int16](iml.Size)
im2r=cv.Image[S.Gray,System.Int16](iml.Size)
#bm=cv.StereoBM(E.STEREO_BM_TYPE.CV_STEREO_BM_BASIC,0)
#bm.FindStereoCorrespondence(iml,imr,im2)
gc = cv.StereoGC(8, 2)
gc.FindStereoCorrespondence(iml,imr,im2,im2r)
#im2 = im2 * (-16)
minvalue,maxvalue,minpoint,maxpoint=im2.MinMax()
dz=(maxvalue[0]-minvalue[0])
dz2=dz/2.0

if rev :
    #scale=-128*rev+128./(maxvalue[0]-minvalue[0])bm
    #im3=im2.Add(S.Gray(-dz2+minvalue[0]))
    im2-= [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://boxheadroom.com/2010/01/12/decoboco_tiger" rel="bookmark" title="Permanent Link to 【Flash】凸凹写真（仮）　トラ猫編">凸凹写真（仮）の記事</a>の続きです。</p>
<p>今度は、実写のステレオ写真（右目、左目用の写真がペアになったもの）から、奥行きデータを作成、凸凹写真（仮）にしてみました</p>
<p><a href="/wp/wp-content/uploads/2010/01/015.swf" target="_blank">拡大表示</a><br />
<object width="320" height="240"><param name="movie" value="http://boxheadroom.com/wp/wp-content/uploads/2010/01/015.swf]"></param>
<embed src="http://boxheadroom.com/wp/wp-content/uploads/2010/01/015.swf" type="application/x-shockwave-flash" width="320" height="240" ></embed></object></p>
<p>画像はEmguのサンプルより。<br />
コードは下に。<br />
&#8212;-<br />
この凸凹写真（仮）のアイディアは、 <a href="http://fujifilm.jp/personal/3d/camera/finepixreal3dw1/index.html">富士フイルム　FinePixREAL　3D　W1</a> の発売当初から考えていた、、、のですが、やっと（実験的にですが）　形にすることができました。<br />
<span id="more-3685"></span></p>
<div id="pukiwiki_content1" class="pukiwiki_content">
<p>肝心のカメラは　まだ入手してないのですが（汗</p>
<p>今回のコードは、結構やっつけなのでアレですけれども、、、</p>
<hr class="full_hr" />
<p>余談 その1<br />
　立体カメラのプロモーション用に、　『ステレオ（左右ペア）写真をアップロードすると、凸凹写真（仮）になるWEBサービス』（とか、SNS, 写真共有サイト） なんてのが有ると、Webでも気軽に立体写真の感じが楽しめて面白いかなぁと思ったりしました。</p>
<p>私自身は技術力が追いつかないので作れませんが（無念）　</p>
<hr class="full_hr" />
<p>余談 その２</p>
<p>　今年は3Dテレビなども発売されるみたいですが、ということは、うまくいけば、コンシュマーな3Dビデオカメラも松下やソニーから発売される可能性は有るのかしらん？<br />
（というか、願望ですが。）<br />
　ホームビデオな3D動画の標準化など、通産省に音頭をとって頂きたいところ。　個々にバラバラのフォーマットだと、オーサリング（ソフトを作る人）なんかも困るだろうし、消費者としても困るし。</p>
<hr class="full_hr" />
<p>さて、本題に戻りまして。</p>
<p>今回はironpython2.6を使用しました。<br />
サンプル画像は、比較的きれいに奥行きデータを取得できました。<br />
<a href="http://boxheadroom.com/wp/wp-content/uploads/2010/01/015_z.jpg" rel="nofollow"><img src="http://boxheadroom.com/wp/wp-content/uploads/2010/01/015_z.jpg" alt="http://boxheadroom.com/wp/wp-content/uploads/2010/01/015_z.jpg" /></a><br />
(凸凹写真（仮）の都合で、奥行きデータにぼかしをかけてあります)</p>
<p>ネット上に公開されている、いろんなステレオ写真で試したところ、元の写真によって、うまく奥行きを取得できる場合と、うまくいかない場合があるようです。<br />
ものによっては、手書きで奥行きデータを与えてやったほうが、かえって綺麗な場合もあります。</p>
<h2 id="content_1_0"><a href="http://www.emgu.com/wiki/index.php/Main_Page" rel="nofollow">Emgu CV ： OpenCV in .NET</a></h2>
<p>.NET用のOpenCVラッパーライブラリ<br />
IronPythonからも使えます。まだよく判らないので試行錯誤中</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://sourceforge.net/projects/emgucv/files/" rel="nofollow">ダウンロード</a><br />
サンプルEmgu.CV.SourceAndExample-1.5.0.1.zip</li>
</ul>
<p>サンプルコード Simple3DReconstructionを、ほぼ引き写し。オリジナルはOpenGLを使ってポリゴンで奥行きを表示しているのですが、ビットマップの濃淡で出力するようにしました。</p>
<div class="jumpmenu"><a href="#pukiwiki_content1">&uarr;</a></div>
<h2 id="content_1_1">関連記事</h2>
<p>下記のソフトのほうが断然スゴイ、のですが。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.tv-tokyo.co.jp/wbs/toretama_blog/post_693.html" rel="nofollow">【トレたま】iPhoneソフトHourFace</a><br />
顔写真を送ると、歳をとった自分の顔がポリゴンになって送られてくる、というアプリ。<br />
モーションポートレイトは　スゴイですねー</li>
<li><a href="http://www.nicovideo.jp/watch/sm9277616" rel="nofollow">【画像ぷるぷる】違った視点でソフト作ってみた</a><br />
えろいので注意！<br />
ポリゴンで超立体化＆有限要素解析</li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content1">&uarr;</a></div>
<h2 id="content_1_2">コード</h2>
<p>まだ自分自身もライブラリの使い方がよくわかってないので、試行錯誤した後を清書せずに残してあります。</p>
<p>Emguのbinフォルダから、適当に必要なdll　（cv200.dll , Emgu.CV.dll などなど）を、このスクリプトと同じフォルダにコピーして実行してください。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>画像データ 000_tex.jpg</li>
<li>奥行きデータ 000_z.jpg</li>
</ul>
<p>が作成されます。 先日のphpのコードで swfファイルを作成するための素材として使用できます。</p>
</div>
<p>decoboco.py</p>
<pre class="code">
import clr
clr.AddReference("Emgu.CV")
import Emgu.CV as cv
import System
import Emgu.CV.Structure as S
clr.AddReference("System.Drawing")
import System.Drawing as D
import Emgu.CV.CvEnum as E

fnleft="left.jpg"
fnright="right.jpg"
rev=0.
rev=1.

b=4
iml=cv.Image[S.Gray,System.Byte](fnleft)
imr=cv.Image[S.Gray,System.Byte](fnright)
im2=cv.Image[S.Gray,System.Int16](iml.Size)
im2r=cv.Image[S.Gray,System.Int16](iml.Size)
#bm=cv.StereoBM(E.STEREO_BM_TYPE.CV_STEREO_BM_BASIC,0)
#bm.FindStereoCorrespondence(iml,imr,im2)
gc = cv.StereoGC(8, 2)
gc.FindStereoCorrespondence(iml,imr,im2,im2r)
#im2 = im2 * (-16)
minvalue,maxvalue,minpoint,maxpoint=im2.MinMax()
dz=(maxvalue[0]-minvalue[0])
dz2=dz/2.0

if rev :
    #scale=-128*rev+128./(maxvalue[0]-minvalue[0])bm
    #im3=im2.Add(S.Gray(-dz2+minvalue[0]))
    im2-= minvalue[0]
    #im3._Mul(-1)
    #minvalue,maxvalue,minpoint,maxpoint=im3.MinMax()
    scale=130./(dz)
    im2*=scale
    im2=255-im2
    #im2+=128
    #im4=im2.ConvertScale[System.Byte](scale,64.)
#else :
#    scale=64./dz2
#    im3=im2.ConvertScale[System.Byte](scale,0.)

#imb=im3.SmoothBlur(16,16)

im2=im2.SmoothBlur(b,b).SmoothBlur(b,b)
im2.Save("000_z.jpg")

#for i in [iml,imr,im2,im2r,im3,imb]:
for i in [iml,imr,im2,im2r]:
    i.Dispose()

import shutil
if fnleft.endswith(".jpg"):
    shutil.copy(fnleft,"000_tex.jpg")
else:
    im=cv.Image[S.Bgr,System.Byte](fnleft)
    im.Save("000_tex.jpg")
    im.Dispose()
</pre>
<p><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B002IFUQOU/tamc-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/412SH1yJybL._SL160_.jpg" alt="FUJIFILM 3Dカメラ FinePix REAL ブラック F FX-3D W1" style="border: none;" /></a></p>

	Tags: <a href="http://boxheadroom.com/tag/flash" title="flash" rel="tag">flash</a>, <a href="http://boxheadroom.com/tag/ironpython" title="IronPython" rel="tag">IronPython</a>, <a href="http://boxheadroom.com/tag/python" title="Python" rel="tag">Python</a>, <a href="http://boxheadroom.com/tag/stereo" title="Stereo" rel="tag">Stereo</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://boxheadroom.com/2011/09/16/namedlist2" title="Pythonで名前つきリスト その2 (9月 16, 2011)">Pythonで名前つきリスト その2</a> (0)</li>
	<li><a href="http://boxheadroom.com/2011/02/11/urllib2_range" title="【Py】webページの先頭数バイトだけ取得 (2月 11, 2011)">【Py】webページの先頭数バイトだけ取得</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/10/29/wget_py" title="wget.py webをまとめて取得　などなど (10月 29, 2010)">wget.py webをまとめて取得　などなど</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/21/py_cui_progress_ba" title="CUIでプログレスバーもどき (9月 21, 2010)">CUIでプログレスバーもどき</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/18/matplotlib_delaunay" title="ドロネー三角形 matplotlibで (9月 18, 2010)">ドロネー三角形 matplotlibで</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://boxheadroom.com/2010/01/16/deco_stereo_pair_to_z/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【Flash】凸凹写真（仮）　トラ猫編</title>
		<link>http://boxheadroom.com/2010/01/12/decoboco_tiger</link>
		<comments>http://boxheadroom.com/2010/01/12/decoboco_tiger#comments</comments>
		<pubDate>Mon, 11 Jan 2010 21:48:33 +0000</pubDate>
		<dc:creator>boxheadroom</dc:creator>
				<category><![CDATA[CG]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Stereo]]></category>

		<guid isPermaLink="false">http://boxheadroom.com/?p=3672</guid>
		<description><![CDATA[
長らくFlashから離れてたのですが、久しぶりに作ってみました。・
で、この十日ほど、このFlashにつける名前で悩んでて、、、、いい名前を思いつかなかったので公開します。
拡大表示



こちらのFlashムービー、今年の干支のトラ。。。じゃなくて　トラ猫がちょっとずつ角度を変えて立体的に表示されてます。
でも、サイズは22KBとコンパクト。その作り方は。。。


タネアカシ
Flashに詳しい人なら　「DisplacementMapFilterを使ってるな」　ってバレちゃうかと思います。

flash.filters.DisplacementMapFilter (Flex2 リファレンスガイド))
Flash 8 入門講座 第45回　Flashムービーの画像やテキストを特殊なレンズで写したように表示させる 

手前に物体が有る部分と、画面奥のほうの壁の部分で、横にズラす量　　を変えてるだけだったりします。
でも、結構　立体的に見えるので、作った本人が一番不思議がってたりしております～
&#8593;
作業手順

猫のモデリングデータは、DAZ Studio＆付属素材を使用。

奥行きを付けて見せるためのデータを作成します。
Collada形式でBlenderへとエクスポート、カメラからの距離を濃淡としてレンダリングしました。

これぐらいだと、うまい人なら手書きしてもよいかもです。

参考 Zバッファ画像_Blender (シムピープルwiki)


PHP+Mingでswfファイルを作成
こちらのサイトのサンプルコードをちょっとだけ改造して使用しました。なので、以下のプログラムのライセンスはLGPLとなります
http://www.gazbming.com/
PHPにさわるのも数年ぶり。今回はコマンドライン版php.exeを使用しました。

XAMPP



&#8593;
実行方法
上記画像データを　tiger_tex.jpg tiger_z.pngというファイル名で保蔵。
コマンドプロンプトにて、以下を実行します。
php.exe dekoboko.php tiger 
Flashムービーtiger.swfが作成される、、、はずです。


&#60;?
/********************************************************************************
* @ File: f8displace.php
* @ Original date: March 2007 @ www16.brinkster.com/gazb/ming/
* @ Version: 1.2
* @ Summary: flash 8 displace - click on the text to update
* @ Updated:  small improvements and summary text
* @ Copyright (c) 2003-2007, www.gazbming.com - all rights [...]]]></description>
			<content:encoded><![CDATA[<div id="pukiwiki_content5" class="pukiwiki_content">
<p>長らくFlashから離れてたのですが、久しぶりに作ってみました。・<br />
で、この十日ほど、このFlashにつける名前で悩んでて、、、、いい名前を思いつかなかったので公開します。</p>
<p><a href="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger.swf" rel="nofollow">拡大表示</a></p>
</div>
<p><object width="320" height="240"><param name="movie" value="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger.swf"></param>
<embed src="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger.swf" type="application/x-shockwave-flash" width="320" height="240" ></embed></object></p>
<p>こちらのFlashムービー、今年の干支のトラ。。。じゃなくて　トラ猫がちょっとずつ角度を変えて立体的に表示されてます。<br />
でも、サイズは22KBとコンパクト。その作り方は。。。<br />
<span id="more-3672"></span></p>
<div id="pukiwiki_content6" class="pukiwiki_content">
<h2 id="content_1_0">タネアカシ</h2>
<p>Flashに詳しい人なら　「DisplacementMapFilterを使ってるな」　ってバレちゃうかと思います。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.adobe.com/livedocs/flex/2_jp/langref/flash/filters/DisplacementMapFilter.html" rel="nofollow">flash.filters.DisplacementMapFilter (Flex2 リファレンスガイド))</a></li>
<li><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20070531/273124/?ST=webdesign&amp;P=2" rel="nofollow">Flash 8 入門講座 第45回　Flashムービーの画像やテキストを特殊なレンズで写したように表示させる </a></li>
</ul>
<p>手前に物体が有る部分と、画面奥のほうの壁の部分で、横にズラす量　　を変えてるだけだったりします。<br />
でも、結構　立体的に見えるので、作った本人が一番不思議がってたりしております～</p>
<div class="jumpmenu"><a href="#pukiwiki_content6">&uarr;</a></div>
<h2 id="content_1_1">作業手順</h2>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>猫のモデリングデータは、DAZ Studio＆付属素材を使用。<br />
<a href="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_tex.jpg" rel="nofollow"><img src="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_tex.jpg" alt="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_tex.jpg" /></a></li>
<li>奥行きを付けて見せるためのデータを作成します。<br />
Collada形式でBlenderへとエクスポート、カメラからの距離を濃淡としてレンダリングしました。<br />
<a href="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_z.png" rel="nofollow"><img src="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_z.png" alt="http://boxheadroom.com/wp/wp-content/uploads/2010/01/tiger_z.png" /></a><br />
これぐらいだと、うまい人なら手書きしてもよいかもです。</p>
<ul class="list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://wikiwiki.jp/thesims/?Z%A5%D0%A5%C3%A5%D5%A5%A1%B2%E8%C1%FC_Blender" rel="nofollow">参考 Zバッファ画像_Blender (シムピープルwiki)</a></li>
</ul>
</li>
<li>PHP+Mingでswfファイルを作成<br />
こちらのサイトのサンプルコードをちょっとだけ改造して使用しました。なので、以下のプログラムの<strong>ライセンスは<a href="http://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License" rel="nofollow">LGPL</a></strong>となります<br />
<a href="http://www.gazbming.com/" rel="nofollow">http://www.gazbming.com/</a><br />
PHPにさわるのも数年ぶり。今回はコマンドライン版php.exeを使用しました。</p>
<ul class="list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://portableapps.com/apps/development/xampp" rel="nofollow">XAMPP</a></li>
</ul>
</li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content6">&uarr;</a></div>
<h3 id="content_1_2">実行方法</h3>
<p>上記画像データを　tiger_tex.jpg tiger_z.pngというファイル名で保蔵。<br />
コマンドプロンプトにて、以下を実行します。</p>
<pre>php.exe dekoboko.php tiger </pre>
<p>Flashムービーtiger.swfが作成される、、、はずです。</p>
</div>
<pre class="code">
&lt;?
/********************************************************************************
* @ File: f8displace.php
* @ Original date: March 2007 @ www16.brinkster.com/gazb/ming/
* @ Version: 1.2
* @ Summary: flash 8 displace - click on the text to update
* @ Updated:  small improvements and summary text
* @ Copyright (c) 2003-2007, www.gazbming.com - all rights reserved.
* @ Author: gazb.ming [[@]] gmail.com - www.gazbming.com
* @ Released under GNU Lesser General Public License - http://www.gnu.org/licenses/lgpl.html
********************************************************************************/
// @ modified date: March 2010 01 @ http://boxheadroom.com/
// @ File: dekoboko.php
/*******************************************************************************/

print $argv[1];
$swfname= $argv[1];
// some typical movie variables
ming_setScale(20.0000000);
ming_useswfversion(6);
$movie=new SWFMovie();
$movie-&gt;setRate(15);
$movie-&gt;setBackground(rand(0,0xFF),rand(0,0xFF),rand(0,0xFF));

// set bitmap to sprite
$pixshape = new SWFBitmap(fopen($swfname."_tex.jpg", "rb"));
$pixsprite= new SWFSprite();
$p1 = $pixsprite-&gt;add($pixshape);
$pixwidth=$pixshape-&gt;getWidth();
$pixwidth2=$pixwidth/2;
$pixheight=$pixshape-&gt;getHeight();
$pixsprite-&gt;nextFrame();
$pixclip=$movie-&gt;add($pixsprite);
$pixclip-&gt;setName("pix_mc");
$pixclip-&gt;moveTo(0,0);
$movie-&gt;setDimension($pixwidth,$pixheight);

// set mask to sprite
$maskshape = new SWFBitmap(fopen($swfname."_z.png", "rb"));
$masksprite= new SWFSprite();
$m1 = $masksprite-&gt;add($maskshape);
$maskwidth=$maskshape-&gt;getWidth();
$maskheight=$maskshape-&gt;getHeight();
$masksprite-&gt;nextFrame();
$maskclip=$movie-&gt;add($masksprite);
$maskclip-&gt;setName("mask_mc");

// create an actionscript string
$strAction=&lt;&lt;&lt;EOT
mask_mc.onLoad=function(){ this._visible=false;};

// create references to classes
ffdm= flash.filters.DisplacementMapFilter;
fdbd= flash.display.BitmapData;
fgp= flash.geom.Point;
fgm= flash.geom.Matrix;
fgct= flash.geom.ColorTransform;
deg=0;
var filteredMc = createDisplacementMapRectangle();
filteredMc._x=0;
filteredMc._y=0;

filteredMc.onEnterFrame = function() {
deg=deg+3;
if (deg&gt;360 ){ deg=0; }
mask_mc._visible=false;
var filter = this.filters[0];

filter.scaleX =Math.cos(3.14*deg/180.0)*15;

filter.mode = "color";
filter.alpha =0;
filter.color = 0x00FF00;
this.filters = new Array(filter);

};

function createDisplacementMapRectangle() {
var mapBitmap = new fdbd($maskwidth, $maskheight, true, bgColor);
mapBitmap.draw(mask_mc, new fgm(), new fgct(), "normal", mapBitmap.rectangle, true);
var filter = new ffdm(mapBitmap, new fgp(0, 0), 1, 1, 1, 1, "wrap", 0x000000, 0x000000);
pix_mc.filters = new Array(filter);
return pix_mc;
};

EOT;

// write actionscript string to root frame #1
$movie-&gt;add(new SWFAction($strAction));

$movie-&gt;save($outswf="$swfname.swf",9);
// open movie and set version to 8
// (hack until it can be set in ming)
$ftmp=fopen($outswf,"r"); $stmp=fread($ftmp,filesize($outswf));
$ftmp=fopen($outswf,"w"); fwrite($ftmp,substr_replace($stmp,chr(8),3,1));

print "done"
?&gt;
</pre>
<div id="pukiwiki_content7" class="pukiwiki_content">
<h2 id="content_1_0">ネーミング考え中、かも</h2>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>凸凹写真（仮）　 （読み：デコボコ写真 ）</li>
<li>Deco-Boco<br />
英語表記だと長いですね</li>
<li>　『モヤモヤ写真』　<br />
（略して　『モヤ写』　）<br />
立体のような立体じゃないようなモヤモヤした写真ということで。。。　これはボツ　w</li>
</ul>
<p>もっと　「Twitter」みたく、音節３つぐらいにしたほうがいいのかしらん？（何を狙っている？）</p>
<hr class="full_hr" />
<p>今回は、3DCGから、奥行き情報を作成、付与しました。<br />
次回は、<strong>実写の写真から自動で奥行き情報を作成する方法</strong>について書く予定です。</p>
</div>

	Tags: <a href="http://boxheadroom.com/tag/flash" title="flash" rel="tag">flash</a>, <a href="http://boxheadroom.com/tag/stereo" title="Stereo" rel="tag">Stereo</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://boxheadroom.com/2010/08/21/programin_signal_slot" title="「プログラミン」で遊んでみた (8月 21, 2010)">「プログラミン」で遊んでみた</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/01/16/deco_stereo_pair_to_z" title="【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編 (1月 16, 2010)">【iPy】凸凹写真（仮）　ステレオ・ペア写真から奥行きデータ作成編</a> (0)</li>
	<li><a href="http://boxheadroom.com/2009/05/08/py_swfmill_2" title="PythonでFlash作成 その2 「swfmill simpleモード編」 (5月 8, 2009)">PythonでFlash作成 その2 「swfmill simpleモード編」</a> (0)</li>
	<li><a href="http://boxheadroom.com/2008/02/17/sflender_vrm_pantograph" title="「Sflender」＋「VRM」+「PantoGraph」Blenderでベクトル図形（swf,svg)としてレンダリング (2月 17, 2008)">「Sflender」＋「VRM」+「PantoGraph」Blenderでベクトル図形（swf,svg)としてレンダリング</a> (0)</li>
	<li><a href="http://boxheadroom.com/2008/02/05/flash_statemachine" title="Flashの GotoAndPlayは状態遷移命令？ (2月 5, 2008)">Flashの GotoAndPlayは状態遷移命令？</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://boxheadroom.com/2010/01/12/decoboco_tiger/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PythonでFlash作成 その2 「swfmill simpleモード編」</title>
		<link>http://boxheadroom.com/2009/05/08/py_swfmill_2</link>
		<comments>http://boxheadroom.com/2009/05/08/py_swfmill_2#comments</comments>
		<pubDate>Fri, 08 May 2009 02:42:23 +0000</pubDate>
		<dc:creator>boxheadroom</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://boxheadroom.com/?p=2867</guid>
		<description><![CDATA[
みなさまGWはいかがでしたでしょうか？
私はこんなことをして遊んでました（汗

こちらの記事のつづきです



世の中にはLLからFlash(swf)を作成するための方法はいろいろあるのですけれども、今回は

xmlを解釈してswfに変換してくれるswfmillというツールを使用。　
xmlを作成するためのユーティリティ関数をPythonで作成

と、ワンクッションおくことで、あたかもPythonでFlashを作成しているかのような作業環境を目指します。
　つまりメインとしてはPythonでXMLを作成するという話なのですけれども。
で、いきなり出来上がりのコード。
swfmillのsimpleモード用のラッパーです。
(swfmill.exeと同じフォルダで動かしてます)


import subprocess
import  xml.etree.ElementTree as etree
import types
class Tag(object):
    def __init__(self):
        self.builder=etree.TreeBuilder()
    def create(_self,tag,contents=[],attrs={}):

        class C(object):
            def __init__(self,contents=contents,attrs=attrs):
        [...]]]></description>
			<content:encoded><![CDATA[<div id="pukiwiki_content11" class="pukiwiki_content">
<p>みなさまGWはいかがでしたでしょうか？<br />
私はこんなことをして遊んでました（汗</p>
<hr class="full_hr" />
<p><a href="http://boxheadroom.com/2009/04/22/py_swfmill" rel="nofollow">こちらの記事のつづきです</a></p>
</div>
<p><span id="more-2867"></span></p>
<div id="pukiwiki_content12" class="pukiwiki_content">
<p>世の中にはLLからFlash(swf)を作成するための方法はいろいろあるのですけれども、今回は</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>xmlを解釈してswfに変換してくれる<a href="http://swfmill.org/" rel="nofollow">swfmill</a>というツールを使用。　</li>
<li>xmlを作成するためのユーティリティ関数をPythonで作成</li>
</ul>
<p>と、ワンクッションおくことで、あたかもPythonでFlashを作成しているかのような作業環境を目指します。<br />
　つまりメインとしては<strong>PythonでXMLを作成する</strong>という話なのですけれども。</p>
<p>で、いきなり出来上がりのコード。<br />
swfmillのsimpleモード用のラッパーです。<br />
(swfmill.exeと同じフォルダで動かしてます)</p>
</div>
<pre class="code">
import subprocess
import  xml.etree.ElementTree as etree
import types
class Tag(object):
    def __init__(self):
        self.builder=etree.TreeBuilder()
    def create(_self,tag,contents=[],attrs={}):

        class C(object):
            def __init__(self,contents=contents,attrs=attrs):
                self.attrs=attrs
                self.contents=contents
            def force(self):
                a={}
                for k in self.attrs:
                    t=type(self.attrs[k])
                    if  t in [ types.StringType,types.UnicodeType]:
                        a[k]=self.attrs[k]
                    else :
                        a[k]=str(self.attrs[k])

                _self.builder.start(tag,attrs=a)
                for i in self.contents:
                    i.force()
                _self.builder.end(tag)

        C.__name__=tag

        return C

    def tostring(self):
        doctype="""&lt;?xml version="1.0" encoding="utf-8" ?&gt;&#x5c;n"""
        ret=self.builder.close()
        return doctype+etree.tostring(ret)

def reset():
    global movie,background,clip,font,textfield,place,meta,frame,library
    tag=Tag()
    movie=tag.create("movie",attrs=dict(version="6",width=320 ,height=240,framerate=12))
    background=tag.create("background",attrs=dict( color="#ffffff"))
    clip=tag.create("clip",attrs={ "id":"foo","import":"library/foo.jpg",
                                   "class":"org.osflash.Foo"})
    font=tag.create("font",attrs={ "id":"vera",
                            "import":"library/vera.ttf","glyphs":"0123456789"})
    textfield=tag.create("textfield",attrs=dict( id="hellobox",
                width="200",height="50",size="10",font="vera",text="hello world!"))
    place=tag.create("place",attrs=dict(id="hellobox",name="output",depth="10"))
    meta=tag.create("meta",attrs=dict(title="my title",description="To be indexed"))
    frame,library=[tag.create(t) for t in "frame library".split()]

if __name__=="__main__":
    root=movie(attrs=dict(framerate="10",height="200",width="400" ),
        contents=[

            background(attrs=dict(color="#ffffff")),
            library([
                clip(attrs={"import":"foo.jpg","id":"foo"}),
                textfield(attrs=dict( id="hello",text="hello world!",
                    width="200",height="50",size="10"))
            ]),
            frame(contents=[
                    place(attrs=dict(depth=10,id="foo")),
                    place(attrs=dict(depth=11,id="hello"))

            ]),

        ])
    root.force()
    txt=tag.tostring()
    #print txt
    fname="helloworld"
    if True :
        proc = subprocess.Popen(
                                #'swfmill.exe -v swf2xml niku.swf niku.xml',
                                'swfmill.exe -v simple stdin %s.swf'%fname,
                               shell=True,
                               stdin=subprocess.PIPE,
                               stdout=subprocess.PIPE,
                               )
        stdout_value = proc.communicate(txt)[0]
        stdout_value
        print stdout_value
        proc = subprocess.Popen(
                                #'swfmill.exe -v swf2xml niku.swf niku.xml',
                                'swfmill.exe -v swf2xml %s %s'%(fname,fname),
                               shell=True,
                               stdin=subprocess.PIPE,
                               stdout=subprocess.PIPE,
                               )
        stdout_value = proc.communicate()[0]
        print stdout_value
</pre>
<p>以前の記事では遅延評価をデコレータとジェネレータを使って書きましたが、今回は素直にクラスを使いました。</p>
<p>実際にswfファイルの中身（を指定するためのXML）を記述しているのは以下の部分。</p>
<pre class="code">
root=movie(attrs=dict(framerate="10",height="200",width="400" ),
        contents=[

            background(attrs=dict(color="#ffffff")),
            library([
                clip(attrs={"import":"foo.jpg","id":"foo"}),
                textfield(attrs=dict( id="hello",text="hello world!",
                    width="200",height="50",size="10"))
            ]),
            frame(contents=[
                    place(attrs=dict(depth=10,id="foo")),
                    place(attrs=dict(depth=11,id="hello"))

            ]),

        ])
root.force()
txt=tag.tostring() #XMLが返って来る
</pre>
<p>内部的に作成されるXMLはこちら。<br />
（適宜改行、インデントは手作業で加えました）</p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;movie framerate="10" height="200" width="400"&gt;
    &lt;background color="#ffffff" /&gt;
    &lt;library&gt;
        &lt;clip id="foo" import="foo.jpg" /&gt;
        &lt;textfield height="50" id="hello" size="10" text="hello world!" width="200" /&gt;
    &lt;/library&gt;
    &lt;frame&gt;
        &lt;place depth="10" id="foo" /&gt;
        &lt;place depth="11" id="hello" /&gt;
    &lt;/frame&gt;
&lt;/movie&gt;
</pre>
<div id="pukiwiki_content13" class="pukiwiki_content">
<p>こんな短いXMLを作るために、なんでこんな面倒なことを、、、と思われるかもしれませんが（自分でも思いますが）、IDLE使って書くと、普通にXMLを書き下すよりも楽でした。<br />
ただし<strong>simpleモード</strong>だけだと、あまり使い道が無いので、細かいことをしたければ<strong>xml2swfモード</strong>用のラッパーを書かないといけないかも。<br />
ActionScriptなどをいじろうと思うと、MTASCなどの助けも必要になりますし。<br />
というわけで、　それらはまたいずれ。。。</p>
<h2 id="content_1_0">関数のキーワード引数に予約語を使うとシンタックスエラーになる</h2>
<p>というのを、今回はじめて気が付きました。</p>
<pre>dict(import=&quot;spam.jpg&quot;)</pre>
<p>などとするとエラーになります。</p>
<pre>{&quot;import&quot;:&quot;spam.jpg&quot;}</pre>
<p>と書くことで回避できますけれども。</p>
<div class="jumpmenu"><a href="#pukiwiki_content13">&uarr;</a></div>
<h2 id="content_1_1">関連記事</h2>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://boxheadroom.com/2009/04/22/py_swfmill" rel="nofollow">PythonからswfmillでFlashムービー(swfファイル)を作成してみる</a></li>
<li><a href="http://boxheadroom.com/2009/04/25/py_eval_exec_closure" rel="nofollow">exec,eval とクロージャではまる＆遅延評価</a></li>
</ul>
<hr class="full_hr" />
<p>ToDo: ActionScript 、xml2swfモード</p>
</div>

	Tags: <a href="http://boxheadroom.com/tag/flash" title="flash" rel="tag">flash</a>, <a href="http://boxheadroom.com/tag/python" title="Python" rel="tag">Python</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://boxheadroom.com/2011/09/16/namedlist2" title="Pythonで名前つきリスト その2 (9月 16, 2011)">Pythonで名前つきリスト その2</a> (0)</li>
	<li><a href="http://boxheadroom.com/2011/02/11/urllib2_range" title="【Py】webページの先頭数バイトだけ取得 (2月 11, 2011)">【Py】webページの先頭数バイトだけ取得</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/10/29/wget_py" title="wget.py webをまとめて取得　などなど (10月 29, 2010)">wget.py webをまとめて取得　などなど</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/21/py_cui_progress_ba" title="CUIでプログレスバーもどき (9月 21, 2010)">CUIでプログレスバーもどき</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/18/matplotlib_delaunay" title="ドロネー三角形 matplotlibで (9月 18, 2010)">ドロネー三角形 matplotlibで</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://boxheadroom.com/2009/05/08/py_swfmill_2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「Sflender」＋「VRM」+「PantoGraph」Blenderでベクトル図形（swf,svg)としてレンダリング</title>
		<link>http://boxheadroom.com/2008/02/17/sflender_vrm_pantograph</link>
		<comments>http://boxheadroom.com/2008/02/17/sflender_vrm_pantograph#comments</comments>
		<pubDate>Sun, 17 Feb 2008 03:17:40 +0000</pubDate>
		<dc:creator>boxheadroom</dc:creator>
				<category><![CDATA[CG]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://boxheadroom.com/2008/02/17/sflender_vrm_pantograph</guid>
		<description><![CDATA[
Blenderで作ったモデルをFlash(swf)やSVGなどのベクトルデータとしてレンダリングするPythonスクリプト3種。
大画面で上映するときや、印刷の版下に使うときなどなど。。。は、ベクトルのほうが都合がいい場合もあるかな？
テクスチャを張り込めないし、諧調はつぶれちゃいますけれども、ロゴであったり、メカの場合はカクカクしたフラットシェーディングのほうが雰囲気が出る場合もあるので使い方しだいでは便利そうです。
VRM
BlenderのモデルをSVGとしてレンダリングしてくれます。
モンキーをSVG-＞Flashにしたサンプル(17KB)
マウスドラッグで拡大縮小。何かキーを押してからドラッグで移動。Escキーで最初の大きさに。
拡大してもラインがきれいです。
&#8593;
SwfMillを使ってSVGをSWF(Flash)に(Inkscape2swfc)
うまく変換できない場合は、一度、ドローツールのInkScapeで読み込み、保存しなおすとよいようです。
&#8593;
「Suzuka」
SVGを読み込めるFlashムービー作成ソフト。
ためしてないですけれども。
&#8593;
PantoGraph
こちらも、多分SVGとして出力。Ming使ってswfアニメ作れるって書いてありました。
サンプルは、銅版画みたい。
上のVRMでFlash作るところまでで午前中が終わっちゃったので、まだ試してないですー　PyGTKやMingなどを使う模様。
ちょっといま仕事がたまっちゃったのでしばらく触れないかも。（ごめんなさい）
&#8593;
PantoGraphに必要なライブラリのバイナリが配布されてた(win)
2008-03-10追記
&#34;また、別にいくつかのライブラリが必要です。Windowsでは、BlenderArtists のこちらの記事をご覧下さい。automatic-BRAIN氏がPolygonパッケージをコンパイルして配布されています。
　
blender.jp
とのことです。(Mingは無かったですけど)
うちはgimpをインストールするときにPyGTKを入れたので、あとはPolygon-1.17.win32-py2.5.exeだけでいいのかな？
&#8593;
SVGFig
こちらはBlenderとは関係ないのですけれども、Python用SVG描画ライブラリ。
Pure Pythonとのこと。
&#8593;
Sflender
こちらはSWFとしてレンダリングするBlender用Pythonスクリプト。
配布サイトのサンプルがきれいです。
exportを押すと、いきなり「アニメーションの作成」をするため、アニメ範囲をあらかじめ1~1にしておかないとびっくりします。。。
Flash(swf)形式で書き出したい (JBDP FAQ)
&#34;お、sflenderがBlender2.42で再び動作するようになったっぽいかも。
gPathname = String(～～, 1024, ～～他３行の
1024を399以下に変える必要があるけど。
パッチ部分のソースは more以降に移動しました。

以下は一行ニュース
&#8593;
2D Graphics With Pyglet and OpenGL
SDLのラッパーPyglet＋PyOpenGLのサンプルコード。

その２

&#8593;
フォトショップでチンダル現象
&#8593;
Sflenderのパッチ部分メモ



合計4行の
5528行あたりの
_gPathname = String(&#34;Pathname:&#34;,EVENT_PATHNAME,20,70,325,15,gPathname.val,1024,&#34;Set the path name.&#34;)
_gFilename = String(&#34;Filename:&#34;,EVENT_FILENAME,20,52,325,15,gFilename.val,1024,&#34;Filename&#34;)
5550行あたりの
_gPathname = String(&#34;Pathname:&#34;,EVENT_PATHNAME,20,70,325,15,gPathname.val,1024,&#34;Set the path name.&#34;)
_gFilename = String(&#34;Filename:&#34;,EVENT_FILENAME,20,52,325,15,gFilename.val,1024,&#34;Filename&#34;)
以上4行中の1024を399に変更すると動きました。多謝。


	Tags: Blender, CG, flash, Python

	Related posts
	
	Pythonで名前つきリスト その2 (0)
	【Py】webページの先頭数バイトだけ取得 (0)
	wget.py webをまとめて取得　などなど (0)
	CUIでプログレスバーもどき (0)
	ドロネー三角形 matplotlibで (0)


]]></description>
			<content:encoded><![CDATA[<div id="pukiwiki_content16" class="pukiwiki_content">
<p>Blenderで作ったモデルをFlash(swf)やSVGなどのベクトルデータとしてレンダリングするPythonスクリプト3種。</p>
<p>大画面で上映するときや、印刷の版下に使うときなどなど。。。は、ベクトルのほうが都合がいい場合もあるかな？<br />
テクスチャを張り込めないし、諧調はつぶれちゃいますけれども、ロゴであったり、メカの場合はカクカクしたフラットシェーディングのほうが雰囲気が出る場合もあるので使い方しだいでは便利そうです。</p>
<h2 id="content_1_0"><a href="http://shell.studenti.unina.it/~ospite/vrm/section/en/about.html" rel="nofollow">VRM</a></h2>
<p>BlenderのモデルをSVGとしてレンダリングしてくれます。</p>
<p><strong><a href="http://boxheadroom.com/wp/wp-content/uploads/2008/02/monkey.swf" rel="nofollow">モンキーをSVG-＞Flashにしたサンプル(17KB)</a></strong></p>
<p>マウスドラッグで拡大縮小。何かキーを押してからドラッグで移動。Escキーで最初の大きさに。<br />
拡大してもラインがきれいです。</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h4 id="content_1_1"><a href="http://redhot.pepper.jp/swftools/inkscape2swfc.html" rel="nofollow">SwfMillを使ってSVGをSWF(Flash)に(Inkscape2swfc)</a></h4>
<p>うまく変換できない場合は、一度、ドローツールの<strong><a href="http://www.forest.impress.co.jp/lib/pic/piccam/paint/inkscape.html" rel="nofollow">InkScape</a></strong>で読み込み、保存しなおすとよいようです。</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h4 id="content_1_2"><a href="http://www.cty-net.ne.jp/~uzgensho/" rel="nofollow">「Suzuka」</a></h4>
<p>SVGを読み込めるFlashムービー作成ソフト。<br />
ためしてないですけれども。</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_3"><a href="http://severnclaystudio.wordpress.com/bluebeard/" rel="nofollow">PantoGraph</a></h2>
<p><del>こちらも、多分SVGとして出力。</del>Ming使ってswfアニメ作れるって書いてありました。<br />
サンプルは、銅版画みたい。<br />
上のVRMでFlash作るところまでで午前中が終わっちゃったので、まだ試してないですー　PyGTKやMingなどを使う模様。<br />
ちょっといま仕事がたまっちゃったのでしばらく触れないかも。（ごめんなさい）</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_4">PantoGraphに必要なライブラリのバイナリが配布されてた(win)</h2>
<p>2008-03-10追記</p>
<p>&quot;また、別にいくつかのライブラリが必要です。Windowsでは、BlenderArtists の<a href="http://blenderartists.org/forum/showthread.php?p=1014610" rel="nofollow">こちらの記事</a>をご覧下さい。automatic-BRAIN氏がPolygonパッケージをコンパイルして配布されています。<br />
　<br />
<a href="http://blender.jp/modules/news/article.php?storyid=2040" rel="nofollow">blender.jp</a></p>
<p>とのことです。(Mingは無かったですけど)<br />
うちはgimpをインストールするときにPyGTKを入れたので、あとはPolygon-1.17.win32-py2.5.exeだけでいいのかな？</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_5"><a href="http://code.google.com/p/svgfig/" rel="nofollow">SVGFig</a></h2>
<p>こちらはBlenderとは関係ないのですけれども、Python用SVG描画ライブラリ。<br />
Pure Pythonとのこと。</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_6"><a href="http://www3.sympatico.ca/emilio.aguirre/s2flender.html" rel="nofollow">Sflender</a></h2>
<p>こちらはSWFとしてレンダリングするBlender用Pythonスクリプト。<br />
配布サイトのサンプルがきれいです。</p>
<p>exportを押すと、いきなり「アニメーションの作成」をするため、アニメ範囲をあらかじめ1~1にしておかないとびっくりします。。。</p>
<p><strong><a href="http://f11.aaa.livedoor.jp/%7Ehige/index.php?%5B%5BFAQ%5D%5D#content_1_54" rel="nofollow">Flash(swf)形式で書き出したい (JBDP FAQ)</a></strong><br />
&quot;お、sflenderがBlender2.42で再び動作するようになったっぽいかも。<br />
gPathname = String(～～, 1024, ～～他３行の<br />
1024を399以下に変える必要があるけど。</p>
<p>パッチ部分のソースは more以降に移動しました。</p>
<hr class="full_hr" />
<p>以下は一行ニュース</p>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_7"><a href="http://tartley.com/?p=250" rel="nofollow">2D Graphics With Pyglet and OpenGL</a></h2>
<p>SDLのラッパーPyglet＋PyOpenGLのサンプルコード。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://tartley.com/?p=264" rel="nofollow">その２</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_8"><a href="http://gigazine.net/index.php?/news/comments/20080207_light_photo/" rel="nofollow">フォトショップでチンダル現象</a></h2>
<div class="jumpmenu"><a href="#pukiwiki_content16">&uarr;</a></div>
<h2 id="content_1_9"><a href="http://www3.sympatico.ca/emilio.aguirre/s2flender.html" rel="nofollow">Sflender</a>のパッチ部分メモ</h2>
</div>
<p><span id="more-1315"></span></p>
<div id="pukiwiki_content17" class="pukiwiki_content">
<p>合計4行の<br />
5528行あたりの<br />
_gPathname = String(&quot;Pathname:&quot;,EVENT_PATHNAME,20,70,325,15,gPathname.val,1024,&quot;Set the path name.&quot;)<br />
_gFilename = String(&quot;Filename:&quot;,EVENT_FILENAME,20,52,325,15,gFilename.val,1024,&quot;Filename&quot;)</p>
<p>5550行あたりの<br />
_gPathname = String(&quot;Pathname:&quot;,EVENT_PATHNAME,20,70,325,15,gPathname.val,1024,&quot;Set the path name.&quot;)<br />
_gFilename = String(&quot;Filename:&quot;,EVENT_FILENAME,20,52,325,15,gFilename.val,1024,&quot;Filename&quot;)</p>
<p>以上4行中の1024を399に変更すると動きました。多謝。</p>
</div>

	Tags: <a href="http://boxheadroom.com/tag/blender" title="Blender" rel="tag">Blender</a>, <a href="http://boxheadroom.com/tag/cg" title="CG" rel="tag">CG</a>, <a href="http://boxheadroom.com/tag/flash" title="flash" rel="tag">flash</a>, <a href="http://boxheadroom.com/tag/python" title="Python" rel="tag">Python</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://boxheadroom.com/2011/09/16/namedlist2" title="Pythonで名前つきリスト その2 (9月 16, 2011)">Pythonで名前つきリスト その2</a> (0)</li>
	<li><a href="http://boxheadroom.com/2011/02/11/urllib2_range" title="【Py】webページの先頭数バイトだけ取得 (2月 11, 2011)">【Py】webページの先頭数バイトだけ取得</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/10/29/wget_py" title="wget.py webをまとめて取得　などなど (10月 29, 2010)">wget.py webをまとめて取得　などなど</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/21/py_cui_progress_ba" title="CUIでプログレスバーもどき (9月 21, 2010)">CUIでプログレスバーもどき</a> (0)</li>
	<li><a href="http://boxheadroom.com/2010/09/18/matplotlib_delaunay" title="ドロネー三角形 matplotlibで (9月 18, 2010)">ドロネー三角形 matplotlibで</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://boxheadroom.com/2008/02/17/sflender_vrm_pantograph/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

