<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>AEP Project</title>
	
	<link>http://ae-users.com/jp</link>
	<description>After Effects ユーザーコミュニティ</description>
	<lastBuildDate>Tue, 27 Jul 2010 09:38:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
  <link>http://ae-users.com/jp</link>
  <url>http://ae-users.com/jp/../images/icon_32.png</url>
  <title>AEP Project</title>
</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/aeusers-jp" /><feedburner:info uri="aeusers-jp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Trapcode Particularのパラメータを日本語化したデスクトップの画像を作ってみました。</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/b3kwm2dU8J0/</link>
		<comments>http://ae-users.com/jp/tips/2010/07/trapcode-particular%e3%81%ae%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e5%8c%96%e3%81%97%e3%81%9f%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e3%81%ae/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 09:38:54 +0000</pubDate>
		<dc:creator>徒</dc:creator>
				<category><![CDATA[TIPS 全般]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4840</guid>
		<description><![CDATA[

初投稿です。

Particularになかなかなじめなくて、日本語の翻訳でもあればと思いつきで作ってみました。

訳自体は　http://themaze.blog38.fc2.com/ 様のサイトからお借りさせていた [...]]]></description>
			<content:encoded><![CDATA[
<p>
初投稿です。<br />
<br />
Particularになかなかなじめなくて、日本語の翻訳でもあればと思いつきで作ってみました。<br />
<br />
訳自体は　<a href="http://themaze.blog38.fc2.com/">http://themaze.blog38.fc2.com/</a> 様のサイトからお借りさせていただきました。<br />
<br />
画像サイズ自体は　1920×1200です。<br />
<br />
なので、サイズ的にも、見易さ的にも　もはや個人的な使用目的で作っていたので<br />
<br />
あまり使いやすいとは言えないと思います。<br />
<br />
一応、1440×900で表示した場合、真ん中のパラメーター部分が画面いっぱいになるようになるはず・・・です。<br />
<br />
アイコンを置いていないサブモニタなどに表示させるといいかもしれません。<br />
<br />
それでも、どなたかの役に立てばと思い投稿させていただきました。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/07/Desctop-original.jpg" class="sb-img" rel="shadowbox[post-4840];player=img;"><img class="alignnone size-large wp-image-4841" src="http://ae-users.com/jp/wp-content/uploads/2010/07/Desctop-original-650x406.jpg" alt="" width="650" height="406" /></a><br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/07/Desctop-original.jpg" class="sb-img" rel="shadowbox[post-4840];player=img;"><br />
<br />
http://ae-users.com/jp/wp-content/uploads/2010/07/Desctop-original.jpg</a><br />
<br />
翻訳してくださいました、<a href="http://themaze.blog38.fc2.com/">http://themaze.blog38.fc2.com/</a>様のサイトには感謝を申し上げます。</p>

この投稿にタグはありません。タグはどなたでも追加出来ます！<span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span>
	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li>関連する投稿は見つかりませんでした。</li>
	</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/b3kwm2dU8J0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/tips/2010/07/trapcode-particular%e3%81%ae%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e5%8c%96%e3%81%97%e3%81%9f%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e3%81%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/tips/2010/07/trapcode-particular%e3%81%ae%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e5%8c%96%e3%81%97%e3%81%9f%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e3%81%ae/</feedburner:origLink></item>
		<item>
		<title>RGB2CMY</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/Z7qp5OFTz1o/</link>
		<comments>http://ae-users.com/jp/resources/2010/07/rgb2cmy/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 08:25:52 +0000</pubDate>
		<dc:creator>t_e_t_s_u_o</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TUTORIALS]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4819</guid>
		<description><![CDATA[

RGB分離して、スクリーン合成すると元に戻りますが、今回はRGBをCMYにして、乗算合成して元に戻す方法についてです

CMYはRGBの補色ということなのですが、色を反転するだけではなく、明るさも反転しないとただの反 [...]]]></description>
			<content:encoded><![CDATA[
<p>
RGB分離して、スクリーン合成すると元に戻りますが、今回はRGBをCMYにして、乗算合成して元に戻す方法についてです<br />
<br />
CMYはRGBの補色ということなのですが、色を反転するだけではなく、明るさも反転しないとただの反転になってしまいます。<br />
<br />
ここでチャンネルコンバイナーを使用してまずはRをCに変えます。<br />
チャンネルコンバイナーの変更オプションを赤にして、ターゲットを明度のみに、その下の反転スイッチをONにします<br />
これで赤の明るさの逆ができたので、この白部分をシアンにすればいいことになります。<br />
方法はなんでもいいのですが、ここではUnmultを使用して、明るさからアルファチャンネルを作成して、シアンで塗りつぶしてみます。<br />
Unmultがない場合はチャンネルコンバイナーでも明るさからアルファを作れるので、もう一度チャンネルコンバイナーを適用して、変更オプションを明度、ターゲットをアルファのみにしてもいいと思います<br />
またはシアン平面を作成して、ルミナンスマットしてもいいと思います。<br />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/07/CMY_02.png" alt="" title="CMY_02" width="334" height="380" class="alignleft size-full wp-image-4824" />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/07/CMY_C.png" alt="" title="CMY_C" width="300" height="300" class="alignleft size-full wp-image-4828" />
<hr /><br />
このようにして残りのGからM、BからYを作成します。<br />
<br />
最後に3つをまとめて乗算合成します。<br />
白平面を作成して一番下に配置すると、元通りになっていると思います。<br />
<br />
印刷っぽくしたければ、CMYそれぞれのコンポ内で網点を作成するなどすれば、それっぽくなるかも。<br />
調整は難しいかもしれませんが、いろいろ試してみてください～<br />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/07/CMY_dot.png" alt="" title="CMY_dot" width="500" height="500" class="alignleft size-full wp-image-4822" />
<hr /><br />
このCMYは厳密に印刷の色にはならないので注意してください。あくまでも雰囲気です<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/b07VLpKFClA&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/b07VLpKFClA&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
<hr /><br />
サンプルプロジェクトはAE7.0<br />
プラグインはUnmult、Formを使用しています<br />
<br />
<a class="dl" href="http://ae-users.com/jp/wp-content/uploads/2010/07/RGB2CMY.zip">ダウンロード</a><br />
<br />
<br />
</p>

この投稿にタグはありません。タグはどなたでも追加出来ます！<span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span>
	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li>関連する投稿は見つかりませんでした。</li>
	</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/Z7qp5OFTz1o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/resources/2010/07/rgb2cmy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/resources/2010/07/rgb2cmy/</feedburner:origLink></item>
		<item>
		<title>エクスプレッションでつくるロゴデザイン「LogoTransform」</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/Yt5oAVsG4CI/</link>
		<comments>http://ae-users.com/jp/tips/2010/07/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%e3%81%a4%e3%81%8f%e3%82%8b%e3%83%ad%e3%82%b4%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e3%80%8clogotransform/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 16:24:58 +0000</pubDate>
		<dc:creator>Toyo</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TIPS 全般]]></category>
		<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[エクスプレッション]]></category>
		<category><![CDATA[エフェクト]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4788</guid>
		<description><![CDATA[ロゴを変形させるエフェクトの紹介です。エクスプレッション製ですので、改変等自由に行えます。]]></description>
			<content:encoded><![CDATA[
<p>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/07/c87657c554bba34604b1ce8f70794d62.png" class="sb-img" rel="shadowbox[post-4788];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/07/c87657c554bba34604b1ce8f70794d62-650x406.png" alt="" width="650" height="406" class="alignnone size-large wp-image-4789" /></a><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=12986370&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12986370&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><br /><br />
お久しぶりです。とよです。<br />
今回は、ロゴがバラバラの状態から徐々に組み上がって行く演出をする為のエフェクトを、<br />
エクスプレッションを使用して作ってみました。<br />
具体的な使い方および、エクスプレッションの解説はニコニコ動画上で行っています。<br />
アカウントをお持ちでない方もいらっしゃると思うので、<br />
動画を貼付けたブログのURLを貼っておきます。<br />
<br />
<a href="http://toa-cinematograph.blogspot.com/2010/07/logotransform.html">ブログ：cinema+graph</a><br />
<br />
ダウンロードファイルはアニメーションプリセットのデータです。<br />
AEのプリセットフォルダに入れてください。CS４環境で制作しています。<br />
<a class="dl" href='http://ae-users.com/jp/wp-content/uploads/2010/07/LogoTransform.zip'>LogoTransform</a><br />
</p>


	タグ : <a href="http://ae-users.com/jp/tag/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3/" title="エクスプレッション" rel="tag nofollow">エクスプレッション</a>, <a href="http://ae-users.com/jp/tag/%e3%82%a8%e3%83%95%e3%82%a7%e3%82%af%e3%83%88/" title="エフェクト" rel="tag nofollow">エフェクト</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e7%94%bb%e9%9d%a2%e3%81%ab%e9%9b%a8%e7%b2%92%e3%81%8c%e5%bd%93%e3%81%9f%e3%82%8b%e8%a1%a8%e7%8f%be/" title="画面に雨粒が当たる表現 (2010/5月/28)">画面に雨粒が当たる表現</a> (3)</li>
	<li><a href="http://ae-users.com/jp/tips/2009/04/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e5%88%b6%e5%be%a1%e3%81%ae%e7%b5%90%e5%90%88/" title="エクスプレッション制御の結合 (2009/4月/16)">エクスプレッション制御の結合</a> (5)</li>
	<li><a href="http://ae-users.com/jp/tips/2010/04/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%e3%81%a4%e3%81%8f%e3%82%8b%e6%8c%af%e5%8b%95%e3%82%a8%e3%83%95%e3%82%a7%e3%82%af%e3%83%88%e3%80%8cpuyo/" title="エクスプレッションでつくる振動エフェクト「Puyo」 (2010/4月/16)">エクスプレッションでつくる振動エフェクト「Puyo」</a> (14)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/12/%e8%8b%b1%e8%aa%9e%e7%89%88%e3%82%a8%e3%83%95%e3%82%a7%e3%82%af%e3%83%88%e5%90%8d%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e7%89%88%e3%81%a7%e4%bd%bf%e7%94%a8/" title="英語版エフェクト名を日本語版で使用するプリセット集 (2009/12月/28)">英語版エフェクト名を日本語版で使用するプリセット集</a> (12)</li>
	<li><a href="http://ae-users.com/jp/tips/2010/05/%e6%89%8b%e4%bb%98%e3%81%91%e3%81%a7%e3%81%af%e7%b5%b6%e5%af%be%e3%81%ab%e4%bd%9c%e3%82%8a%e3%81%9f%e3%81%8f%e3%81%aa%e3%81%84%e5%8b%95%e7%94%bb/" title="手付けでは絶対に作りたくない動画 (2010/5月/27)">手付けでは絶対に作りたくない動画</a> (10)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/Yt5oAVsG4CI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/tips/2010/07/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%e3%81%a4%e3%81%8f%e3%82%8b%e3%83%ad%e3%82%b4%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e3%80%8clogotransform/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/tips/2010/07/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%e3%81%a4%e3%81%8f%e3%82%8b%e3%83%ad%e3%82%b4%e3%83%87%e3%82%b6%e3%82%a4%e3%83%b3%e3%80%8clogotransform/</feedburner:origLink></item>
		<item>
		<title>アニメ制作者のためのAfterEffectsプラグイン作成入門(第６回)　Effectプラグインの構造・ユーザーインターフェース</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/zi110xhm3L8/</link>
		<comments>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-7/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 16:18:16 +0000</pubDate>
		<dc:creator>bry-ful</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4661</guid>
		<description><![CDATA[

Effectプラグイン
今回はEffectプラグインについて解説します。
第２回の投稿でEffectプラグインの概要を説明していますので、まずそれに目を通しておいてください。今回はその補足的な内容になり、主にエフェク [...]]]></description>
			<content:encoded><![CDATA[
<p>
<h4>Effectプラグイン</h4>
今回はEffectプラグインについて解説します。<br />
第２回の投稿でEffectプラグインの概要を説明していますので、まずそれに目を通しておいてください。今回はその補足的な内容になり、主にエフェクトコントロールに表示されるインターフェースについてがメインとなります。<br />
<h4>EventCheckプラグイン</h4>
Effectプラグインは最初に<strong>EntryPointFunc</strong>関数が呼び出され、引数のセレクタ(PF_Cmd)によって処理を分岐させて実行します。この詳細はドキュメントに説明されていますが、あまり実感できなかったので、それを確認するプラグインを作成してみました。<br />
<br />
EventCheckのダウンロード<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/EventCheck.zip">EventCheck.zipのダウンロード</a><br />
<br />
このプラグインは特に解説することはありません。単純にセレクタ毎にダイアログに最低限の情報を表示するだけのエフェクトです。ソースも入っていますが、とりあえず<strong>EventCheck-MT.aex</strong>をインストールして動作を確認してみてください。<br />
Effectプラグインの各イベントがどのようなタイミングで発生しているか体感できます（滅茶苦茶うっとおしいので、体感できたらアンインストールしましょう）<br />
<br />
ダイアログの表示はWindows APIを直接呼び出して表示しています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/eventcheck.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4668" src="http://ae-users.com/jp/wp-content/uploads/2010/06/eventcheck.png" alt="" width="281" height="245" /></a><br />
<br />
<strong>out_flags</strong>に<strong>PF_OutFlag_I_DO_DIALOG</strong>を設定してありますので、エフェクトコントロールに<strong>オプション</strong>がっ表示されています。<strong>PF_Cmd_DO_DIALOG</strong>セレクタでダイアログを表示させれば、オプションダイアログを表示できます。僕はDebug時変数の表示とかさせるときによく使ってます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/eventcheck02.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4669" src="http://ae-users.com/jp/wp-content/uploads/2010/06/eventcheck02.png" alt="" width="338" height="79" /></a><br />
<br />
このプラグインを登録した状態でAfter Effectsをいろいろ操作していると、思いがけないタイミングでいろいろなイベントがプラグインに発生してることが体感できます。<br />
<br />
極稀に、登録した後エフェクトコントロールから削除してもイベントが発生し続ける事があります。流石にプロジェクト自体を新たに作成すればイベントはなくなりますが、キャシュのタイミングはなかなか予測しづらいので困ります。<br />
<h4>エフェクトコントロール</h4>
エフェクトコントロールに表示されるインターフェースは、<strong>ParamsSetup</strong>で設定します。<br />
<br />
インターフェースの構築はプラットホーム依存があり、Windows APIを直接呼び出さないといけない事やコールバック関数を多用しないといけないこともありかなり難易度が高いです。そのためSDKでは簡単に作成できるように基本となるコントロールが用意されています。<br />
<br />
<strong>Param_Utils.h</strong>でマクロ定義されていて、実際には<strong>add_param</strong>コールバック関数を呼び出すことで実装されています。これらを使えば、Windows/Macintosh両方で使えるコントロールが容易に使うことができます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control00.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4674" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control00.png" alt="" width="331" height="247" /></a><br />
<br />
サンプルとして第３回で作成した<strong>スケルトン</strong>を使います。上の図は<strong>MySkeleton.aex</strong>のエフェクトコントロールで、今回説明するコントロールがすべて設定されています。<br />
また、プログラマが自由にインターフェースを作成出来るカスタムコントロールもSDKには用意されていますが、かなり複雑でWindows/Macで別のコードを作成する必要があります。今回カスタムコントロールの作成には触れません（僕自身作ったことがないので^^;）<br />
<h4>PF_ADD_COLOR</h4>
色を指定するコントロールを登録します。カラーピッカーを表示させたり、スポイトで色を拾う事ができます。<br />
<strong>Param_Utils.h</strong>で定義されたこれらのマクロは、<strong>PF_ParamDef	 def</strong>構造体変数を内部で使用しています。def変数は使いまわすので、AEFX_CLR_STRUCTマクロで毎回初期化します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control01_color.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4675" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control01_color.png" alt="" width="326" height="116" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>A_char</td>
<td>デフォルトの色のR値</td>
</tr>
<tr>
<td>第３引数</td>
<td>A_char</td>
<td>デフォルトの色のG値</td>
</tr>
<tr>
<td>第４引数</td>
<td>A_char</td>
<td>デフォルトの色のB値</td>
</tr>
<tr>
<td>第５引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
ここの色はPF_Pixel(8bit)カラーになります。残念ながらPF_Pixel16(16bit)カラーのパラメータを扱う方法は不明です。一部のプラグインで実装している物がありますが、多分カスタムパラメータを独自に作成しているのだと思われます。<br />
まぁ、現在のところディスプレイが24bitのものしか表示できないのでPF_Pixel16(16bit)カラー無駄っぽいです。<br />
<br />
パラメータの獲得はRender関数で以下のように行います。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control01_color_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4684" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control01_color_get.gif" alt="" width="399" height="30" /></a><br />
<br />
params配列には、ParamSetupで登録された順番でパラメータの値がありますので、同じインデックス値を指定して構造体のメンバから値を取り出します。<br />
<h4>PF_ADD_SLIDER</h4>
整数値を指定するスライダを表示するコントロールを登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control02_slider.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4678" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control02_slider.png" alt="" width="430" height="144" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>A_long</td>
<td>数値入力する場合の最小値</td>
</tr>
<tr>
<td>第３引数</td>
<td>A_long</td>
<td>数値入力する場合の最大値</td>
</tr>
<tr>
<td>第４引数</td>
<td>A_long</td>
<td>スライダーでの最小値</td>
</tr>
<tr>
<td>第５引数</td>
<td>A_long</td>
<td>スライダーでの最大値</td>
</tr>
<tr>
<td>第６引数</td>
<td>A_long</td>
<td>デフォルトの値</td>
</tr>
<tr>
<td>第７引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
整数値の範囲は、-32000から32000の間になります。型をA_longとしてますが、内部的にはPF_Fixedで処理されているらしくA_shortになります。範囲外の数値は無視されるようです。<br />
<br />
パラメータの獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control02_slide_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4697" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control02_slide_get.gif" alt="" width="378" height="39" /></a><br />
<h4>PF_ADD_FIXED</h4>
固定小数を指定するコントロールを登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control03_fixed.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4683" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control03_fixed.png" alt="" width="429" height="190" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>double</td>
<td>数値入力する場合の最小値</td>
</tr>
<tr>
<td>第３引数</td>
<td>double</td>
<td>数値入力する場合の最大値</td>
</tr>
<tr>
<td>第４引数</td>
<td>double</td>
<td>スライダーでの最小値</td>
</tr>
<tr>
<td>第５引数</td>
<td>double</td>
<td>スライダーでの最大値</td>
</tr>
<tr>
<td>第６引数</td>
<td>double</td>
<td>デフォルトの値</td>
</tr>
<tr>
<td>第７引数</td>
<td>A_long</td>
<td>表示される小数部の桁数</td>
</tr>
<tr>
<td>第８引数</td>
<td>A_long</td>
<td>１で％を表示する</td>
</tr>
<tr>
<td>第９引数</td>
<td>A_long</td>
<td>不明</td>
</tr>
<tr>
<td>第１０引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
引数はdouble扱いですが、内部でPF_Fixed(A_long)へ変換されています。<br />
<br />
パラメータの獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control03_fixed_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4698" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control03_fixed_get.gif" alt="" width="384" height="35" /></a><br />
<h4>PF_ADD_PERCENT</h4>
パーセントを指定するコントロールを登録します。実際は<strong>PF_ADD_FIXED</strong>と同じものです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_per.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4699" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_per.gif" alt="" width="296" height="101" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>double</td>
<td>デフォルトの値</td>
</tr>
<tr>
<td>第３引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
パラメータの獲得方法は<strong>PF_ADD_FIXED</strong>と同じです。<br />
<h4>PF_ADD_CHECKBOX</h4>
チェックボックスを登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_cb1.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4713" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_cb1.gif" alt="" width="220" height="137" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>char配列(文字列)</td>
<td>チェックボックスのキャプションの文字列</td>
</tr>
<tr>
<td>第３引数</td>
<td>PF_Boolean</td>
<td>デフォルトの値。TRUEでON</td>
</tr>
<tr>
<td>第４引数</td>
<td>A_long</td>
<td>不明</td>
</tr>
<tr>
<td>第５引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
パラメータの獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_cb_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4707" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control04_cb_get.gif" alt="" width="454" height="37" /></a><br />
<br />
何故か型キャストをしないとエラーになります。<br />
<h4>PF_ADD_ANGLE</h4>
角度入力のUIを登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control05_rot.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4716" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control05_rot.gif" alt="" width="252" height="97" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>PF_Fixed</td>
<td>デフォルトの値。TRUEでON</td>
</tr>
<tr>
<td>第３引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
パラメータの獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control05_rot_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4719" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control05_rot_get.gif" alt="" width="386" height="35" /></a><br />
<br />
型はPF_Fixedの値となっています。<br />
<h4>PF_ADD_POPUP</h4>
ポップアップメニューを登録します。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4720" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop.gif" alt="" width="361" height="116" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>A_long</td>
<td>ポップアップメニューの要素数</td>
</tr>
<tr>
<td>第３引数</td>
<td>A_long</td>
<td>ポップアップメニューのデフォルト値</td>
</tr>
<tr>
<td>第４引数</td>
<td>char配列(文字列)</td>
<td>ポップアップメニューに表示される文字列</td>
</tr>
<tr>
<td>第５引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
第４引数は”AAAA|BBBB|CCC&#8221;といった表記になります。第３引数は、１から始まるインデックスになります。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop2.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4721" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop2.gif" alt="" width="258" height="56" /></a><br />
<br />
獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4722" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control06_pop_get.gif" alt="" width="392" height="39" /></a><br />
<br />
これも１から始まるインデックス値となります。<br />
<h4>PF_ADD_POINT</h4>
位置指定のUIを登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control07_pos.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4723" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control07_pos.gif" alt="" width="458" height="121" /></a><br />
<table border="1">
<tbody>
<tr>
<th>引数ナンバー</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>第１引数</td>
<td>char配列(文字列)</td>
<td>表示されるキャプション文字列</td>
</tr>
<tr>
<td>第２引数</td>
<td>PF_Fixed</td>
<td>デフォルト位置のX座標をパーセントで指定</td>
</tr>
<tr>
<td>第３引数</td>
<td>PF_Fixed</td>
<td>デフォルト位置のY座標をパーセントで指定</td>
</tr>
<tr>
<td>第４引数</td>
<td>PF_Boolean</td>
<td>パラメータの値を画面内に収めるか、画面外を許すか決めるフラグ。 TRUEで画面内に収まる。</td>
</tr>
<tr>
<td>第５引数</td>
<td>A_long</td>
<td>パラメータコントロールのインデックス値</td>
</tr>
</tbody>
</table>
獲得は以下のとおりです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control07_pos_get.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4724" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control07_pos_get.gif" alt="" width="405" height="57" /></a><br />
<br />
値はPF_Fixed(固定小数)なので注意してください。位置を決めるピッカーは、画面が拡大表示されている場合は小数有りで値が帰ってきます。<br />
<h4>PF_ADD_TOPIC / PF_END_TOPIC</h4>
コントロールをグループ表示するマクロです。<strong>PF_ADD_TOPIC</strong>と<strong>PF_END_TOPIC</strong>に挟まれて登録されたUIはグループ化しされて、表示・非表示を切り替えられます。<br />
<br />
グループ開始は以下のように登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control08_topic.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4725" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control08_topic.gif" alt="" width="337" height="101" /></a><br />
<br />
グループ終了は以下のように登録します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/control08_topic_end.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img class="aligncenter size-full wp-image-4726" src="http://ae-users.com/jp/wp-content/uploads/2010/06/control08_topic_end.gif" alt="" width="271" height="55" /></a><br />
<br />
このマクロにはパラメータがありませんので、獲得はないです。<br />
<h4>エクスプレッション制御</h4>
Effectプラグインの中でちょっと変わったもので<strong>エクスプレッション制御</strong>関係のプラグインがあります（標準プラグイン）<br />
これらは画像エフェクトは無く、ただエクスプレッション用のパラメータを実装するためだけのプラグインです。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/exctrl.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/exctrl.png" alt="" width="372" height="106" class="aligncenter size-full wp-image-4731" /></a><br />
<br />
今まで僕はこのプラグインはout_flagsかコールバック関数を使って画面描画を停止した特別なプラグインだと思っていました。今回調べてわかったのですが、実はしっかりRenderイベントが発生していて、描画用のoutput画像が確保されているようです。ちゃんと32bit描画まで対応してました。<br />
このプラグインは単純に画像のコピー(PF_COPYかな）を行うプラグインに適当な入力パラメータを登録したもので<strong>普通のEffectプラグイン</strong>でした。<br />
<br />
描画対象のレイヤにこのプラグインを登録すると、描画時に無駄なメモリが消費されるって意味でもあります。<br />
ヌルレイヤか、ガイドレイヤに登録しないとかなりもったいないというか、レンダリング時に不安定な動作を起こす原因にも成りかねません(実際はキャッシュの関係でそこまでは深刻でないと思いますけど）<br />
<hr /><br />
エクスプレッション制御関係のプラグインがただのEffectプラグインならば、多分初心者が一番作りやすく、有効な使い道に出来るネタになります。<br />
スクリプトを作成する時に一番面倒なのがユーザーインターフェースで、エクスプレッション制御を多用しがちですが、汎用コントロール故に結構使いづらかったので、そこをプラグインで作っておけば、使用時に楽になるかなぁとか。<br />
というわけで、エクスプレッション制御のプラグインとして <strong>ColorControls</strong>と<strong>画面動制御</strong>の二つのサンプルプラグインを作ってみました。<br />
<h4>エクスプレッション制御を作る ColorControls</h4>
<strong>ColorControls</strong>は、複数のカラーパラメータをもったプラグインです。標準の「カラー制御」を１０個並べた物と同じ機能になります。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/colorcontrols.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/colorcontrols.png" alt="" width="387" height="315" class="aligncenter size-full wp-image-4732" /></a><br />
<br />
スクリプト作成時に色の置き場に使えるものです。おまけで画面に色をサンプル表示する機能もつけてあります。<br />
さすがに簡単なプラグインなので説明はなしで、詳細はソースを参照してください。<br />
<br />
ColorControlsのソース<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/ColorControls.zip">ColorControls.zipのダウンロード</a><br />
<h4>エクスプレッション制御を作る 画面動制御 ShakeControl</h4>
<strong>画面動制御</strong>プラグインは、スクリプトで画面動を実装するときに必要なパラメータをまとめたものです。専用なのでユーザーが使い易くなると思います。<br />
 <a href="http://ae-users.com/jp/wp-content/uploads/2010/06/shakecontrol.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/shakecontrol.png" alt="" width="378" height="243" class="aligncenter size-full wp-image-4739" /></a><br />
<br />
これも簡単なプラグインなので、詳細はソースを参照してください。ただ、そのままビルドすると問題が発生します。<br />
画面動制御のソース<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/ShakeControl.zip">ShakeControl.zipのダウンロード</a><br />
<h4>プラグインの日本語表示</h4>
<strong>画面動制御</strong>プラグインは、僕がほとんどやらない日本語表示のプラグインです。単純に、PiPLリソース定義ファイルのName要素を<strong>&#8220;画面動制御&#8221;</strong>にしただけですが、普通にビルドすると下図のように文字化けが発生します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/shakecontrol_miss.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/shakecontrol_miss.png" alt="" width="381" height="187" class="aligncenter size-full wp-image-4744" /></a><br />
<br />
cppのコードから設定したパラメータの文字列は正常ですが、PiPLリソース関係の文字列はすべて文字化けします。<br />
原因はリソース作成時に使うPiPLtool.exeが日本語に対応していないというとっても素敵な物です。こいつのおかげでプラグイン作成を挫折した人はかなり多そうです。<br />
ビルドを行ってから、VSのソリューションに登録されているｒｃファイルを右クリックしてコード表示させると、<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rc_miss.gif" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/rc_miss.gif" alt="" width="295" height="321" class="aligncenter size-full wp-image-4745" /></a><br />
<br />
見事に文字化けしています。<br />
<br />
対処はちょっと面倒ですが可能です。以下の手順で正常に日本語を表示させることができます。<br />
<ol>
<li>まず、リビルドを行う。<br />
rファイルに定義されているコマンドラインでrcファイルを更新させます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/sc01.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/sc01.png" alt="" width="286" height="79" class="aligncenter size-full wp-image-4746" /></a><br />
</li>
<li>ｒｃファイルを右クリックしてコードの表示。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/sc02.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/sc02.png" alt="" width="407" height="135" class="aligncenter size-full wp-image-4748" /></a><br />
</li>
<li>文字化している箇所を特定して、正常な物に書き換える。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/sc03.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/sc03.png" alt="" width="188" height="33" class="aligncenter size-full wp-image-4749" /></a><br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/sc04.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/sc04.png" alt="" width="184" height="34" class="aligncenter size-full wp-image-4750" /></a><br />
<br />
目安として文字列の先頭に&#8221;￥ｘ０？&#8221;という文字があり、末尾には&#8221;￥０&#8221;が０個から３個あるはずなので、その間を書き換えます。<br />
</li>
<li>ビルドを行う。(リビルドではない。間違えてリビルドしたら最初からやり直し)<br />
rcファイルのみが更新されているので、それのみがビルドされてaexファイルが出力される。<br />
</li>
</ol>
<br />
これで文字化けは治るはずですが、リビルドするとまたもとに戻ってしまうので注意が必要です。<br />
<h4>PiPltoolX.exe</h4>
上記の手順があまりにも面倒なので、PiPLtool.exeと同様な機能を持つコマンドを作成しました。<br />
<br />
PiPltoolX.exeのダウンロード (実行には.NetFramework3.5のインストールが必要)<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/PiPltoolX.zip">PiPltoolX.zipのダウンロード</a><br />
PiPltoolX.exeのソースのダウンロード(VC# 2008で作成 )<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/PiPltoolX_src.zip">PiPltoolX_src.zipのダウンロード</a><br />
<br />
使い方は、PiPLtool.exeと同じフォルダに移動します（Examples\Resourcesフォルダ）<br />
次に、日本語表示を行いたいリソース定義ファイルをVC++のIDEで右クリック。プロパティのカスタムビルドステップ：コマンドラインの項目を表示させます。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/PiPLx.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/PiPLx.png" alt="" width="562" height="298" class="alignnone size-full wp-image-4765" /></a><br />
<br />
このコマンドラインでPiPLToolが指定されているので、これをPiPLToolXに修正すれば、あとは普通にリビルドすればOKになります。<br />
<br />
あと、<strong>PiPLToolX.exe</strong>はリソース定義のすべてには対応していませんので注意してください。日本語表示を行わない限りはなるべく標準のPiPLTool.exeを使用してください。<br />
<h4>PixelReplace.aex　/ PixelSelector.aex</h4>
今回これだけだと寂しいのでパラメータインターフェースのサンプルとして<strong>PixelReplace.aex</strong>と<strong>PixelSelector.aex</strong>も作成しました。<br />
<br />
PixelReplaceはF&#8217;s ColorChangeと同じ機能、PixelSelectorはF&#8217;s SelectColorと同じ機能を持つものです。違いは入力系のコーディングを工夫してパラメータの数を自由に出来るようにしたものです。<br />
ターゲットの色が８色から２４色へ増やしています。若干ですが実行速度も最適化してあります。置き換える色の不透明度もいじれるようにもしてあります。<br />
<br />
プログラム自体はこれも簡単なものなのでソースを参照してください。<br />
<br />
PixelReplace<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/PixelReplace.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/PixelReplace.png" alt="" width="437" height="545" class="alignnone size-full wp-image-4776" /></a><br />
PixelReplaceのダウンロード<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/PixelReplace.zip">PixelReplace.zipのダウンロード</a><br />
<br />
<br />
PixelSelector<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/PixelSelector.png" class="sb-img" rel="shadowbox[post-4661];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/06/PixelSelector.png" alt="" width="328" height="338" class="alignnone size-full wp-image-4777" /></a><br />
PixelSelectorのダウンロード<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/06/PixelSelector.zip">PixelSelector.zipのダウンロード</a><br />
<br />
この二つはもう少し修正してF&#8217;s Pluginに加える予定です。実は上のサンプルコードは既に16Bit対応は完了したものになってますので、普通に業務に使えるはずです。<br />
<h4>次回予告</h4>
前回・前々回と難しめな内容だったので、今回は簡単な内容にしてみました。その分解説も端折りました。もしもっと詳しい解説が欲しいと要望があれば、追加説明もするつもりです。<br />
<br />
予定していた「Effectsプラグインのユーザーインターフェース」は今回でやってしまったので、次回は<strong>「プラグイン作成時のTips」</strong>です。</p>


	タグ : <a href="http://ae-users.com/jp/tag/program/" title="program" rel="tag nofollow">program</a>, <a href="http://ae-users.com/jp/tag/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/" title="プラグイン" rel="tag nofollow">プラグイン</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-6/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第５回)　スパッタリングプラグインを作成 (2010/6月/04)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第５回)　スパッタリングプラグインを作成</a> (13)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-5/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第４回)　オリジナルノイズフィルタを作ってみよう！ (2010/5月/23)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第４回)　オリジナルノイズフィルタを作ってみよう！</a> (5)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-3/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！ (2010/5月/09)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！</a> (6)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-2/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう! (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう!</a> (8)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回) (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回)</a> (10)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/zi110xhm3L8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-7/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-7/</feedburner:origLink></item>
		<item>
		<title>アニメ制作者のためのAfterEffectsプラグイン作成入門(第５回)　スパッタリングプラグインを作成</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/xYWmynWetro/</link>
		<comments>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-6/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 16:48:36 +0000</pubDate>
		<dc:creator>bry-ful</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4544</guid>
		<description><![CDATA[

スパッタリングとは
この業界に入って知ったテクニックで驚いたのが、「画面動」・「サブリナ」・「スパッタリング」

新人時代、動画の出来があまり良くない爆発のカットを、演出さんが「画面動」・「サブリナ」・「スパッタリン [...]]]></description>
			<content:encoded><![CDATA[
<p>
<h4>スパッタリングとは</h4>
この業界に入って知ったテクニックで驚いたのが、「画面動」・「サブリナ」・「スパッタリング」<br />
<br />
新人時代、動画の出来があまり良くない爆発のカットを、演出さんが「画面動」・「サブリナ」・「スパッタリング」を追加することでびっくりするほど見栄えのいいものに変えていたのに凄い衝撃を受けたことがあります。最近ではいろいろな事情があってサブリナが使われなくなり、デジタルになってからスパッタリングもほとんど見られなくなりました。<br />
<br />
と、言う事で今回のネタは「スパッタリング」<br />
知らない人の為に説明すると、細かい網に絵の具を乗せてブラシでこすって細かな粒をセルに吹き付けるテクニックのことで、昔は爆発とかには必ず入ってたものです（水面の波とか、雨しぶきとかにも）<br />
<h4>プラグインの仕様を考える</h4>
アルゴリズムとしてはかなり簡単なもので以下のようになります。<br />
<ol>
	<li>描画位置を決める。</li>
	<li>決めた描画位置付近に適当な数の粒を描画する。</li>
	<li>以上の描画を適当な回数繰り返す。</li>
</ol>
というように簡単ですが、それゆえにパラメータ化するのは結構面倒です。<br />
今回のプラグインは、描画位置を決める方法を３種類としてプラグインを分けて作成します。<br />
実際に業務で使う時に楽になるように以下の方法で描画位置を決めます。<br />
<ul>
	<li>範囲で指定。<br />
TopLeft/BottomRightの２点の位置パラメータから</li>
	<li>範囲の中心で指定。<br />
中心位置・半径等のパラメータから</li>
	<li>画像のアルファー情報から<br />
画像のアルファーの値から描画する位置を決める。</li>
</ul>
その描画位置から複数の粒を描画する方法は、予め粒子のデータを作成しておいて単純にコピーするにします。粒子の描画のアルゴリズムを考えるより現実的な手段をとります。<br />
<h4>sputteringRect</h4>
まずは、矩形範囲にスパッタリングするプラグイン「<strong>sputteringRect</strong>」について説明します。<br />
<br />
まずは、ソースのダウンロード。<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/05/sputteringRect_src.zip">sputteringRect_src.zipのダウンロード</a><br />
<br />
<hr />パラメータは以下のようにしてあります。<br />
<table border="1">
<tbody>
<tr>
<th>パラメータ名</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>seed</td>
<td>A_long</td>
<td>乱数の初期化の数値。</td>
</tr>
<tr>
<td>value</td>
<td>A_long</td>
<td>粒子の発生起点の数</td>
</tr>
<tr>
<td>opacity_rand</td>
<td>PF_Fixed</td>
<td>粒子の不透明度の最大値</td>
</tr>
<tr>
<td>TopLeft</td>
<td>PF_Point</td>
<td>発生範囲の左上の座標</td>
</tr>
<tr>
<td>BottomRight</td>
<td>PF_Point</td>
<td>発生範囲の右下の座標</td>
</tr>
<tr>
<td>point_value</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の数</td>
</tr>
<tr>
<td>point_length</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の位置の最大距離</td>
</tr>
<tr>
<td>size</td>
<td>A_long</td>
<td>粒子の大きさ（小のみ・中のみ・大のみ・小＋中・小＋中＋大の５種類あり）</td>
</tr>
<tr>
<td>color1 &#8211; 4</td>
<td>PF_Pixel</td>
<td>粒子の色（最大４色）</td>
</tr>
<tr>
<td>color_Max</td>
<td>A_long</td>
<td>粒子の色の最大数の指定</td>
</tr>
<tr>
<td>Blend with original</td>
<td>PF_Booleanl</td>
<td>元画像を表示するかしないか</td>
</tr>
</tbody>
</table>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect01.png" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4559" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect01.png" alt="" width="634" height="347" /></a><br />
<br />
<hr />描画のメインコードは以下の通り。いろいろ見慣れない変数・関数名がありますが、後で説明します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect02.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4562" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect02.gif" alt="" width="510" height="874" /></a><br />
メイン(MainRender8)から描画用のコードは分離して関数化してあります。その際にパラメータの記述を簡潔にするためにパラメータはすべて構造体として、ポインター渡しにしてあります。<br />
<br />
<strong>sputDrawPrm</strong>は、粒子描画関数(SputDataDraw)のパラメータ用の構造体。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect03.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4567" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect03.gif" alt="" width="249" height="156" /></a><br />
<strong>rotPrm</strong>は、角度計算関数(rotCalc)のパラメータ用の構造体。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect04.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4568" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect04.gif" alt="" width="247" height="103" /></a><br />
<br />
特に難しいコードではありませんが、補足説明します。<br />
<br />
194行目の無駄っぽいループは、案の定rand関数が変な結果を出したので追加したものです。<br />
<br />
203行目は回転の乱数を求めている部分ですが、固定小数の桁あふれ防止のためちょっと変な感じになってます。<br />
<br />
205行目の処理は、あまりにも丸く綺麗に粒子が並んでしまったので、乱雑さを出すために5分の1の確率で距離を2倍にしています。本当はパラメータ化した方が良さそうな部分です。<br />
<h4>SputDataDraw8 粒子の描画</h4>
粒子の描画は、<strong>SputDataDraw</strong>関数が行っています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect05.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-large wp-image-4571" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect05-650x512.gif" alt="" width="650" height="512" /></a><br />
<strong>spudDrawPrm</strong>構造体のメンバは以下のとおりで、描画に必要な最低限のパラメータをまとめてあります。<br />
<table border="1">
<tbody>
<tr>
<th>メンバ名</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>data</td>
<td>PF_PixelPtr</td>
<td>描画画面の先頭アドレス</td>
</tr>
<tr>
<td>width</td>
<td>A_long</td>
<td>描画画面の横幅ピクセル</td>
</tr>
<tr>
<td>widthTrue</td>
<td>A_long</td>
<td>描画画面の実際の横幅ピクセル</td>
</tr>
<tr>
<td>height</td>
<td>A_long</td>
<td>描画画面の縦幅ピクセル</td>
</tr>
<tr>
<td>ｘ</td>
<td>A_long</td>
<td>粒子を描画するX座標(整数値)</td>
</tr>
<tr>
<td>y</td>
<td>A_long</td>
<td>粒子を描画するY座標(整数値)</td>
</tr>
<tr>
<td>opa</td>
<td>PF_Fixed</td>
<td>描画する粒子の不透明度</td>
</tr>
<tr>
<td>sptIdx</td>
<td>A_long</td>
<td>描画する粒子のデータ配列のインデックス</td>
</tr>
</tbody>
</table>
描画する色は、8bit/16bitで分けたかったので、構造体に入れていません。<br />
<br />
<strong>sptIdx</strong>は粒子のパターンデータ配列のインデックスで、今回50個のデータを用意してあります。<br />
50以上の値は、1ピクセルの点として扱うことにしています。135行目からのコードがそれに相当します。<br />
<br />
<strong>opa</strong>は、不透明度は桁あふれ防止のため、呼び出す前に4ビットシフトしてあるので、ここでは12ビットシフトになっています(8bitサイズなので本当は必要ないけど、念のため)<br />
<br />
<strong>SPT_SIZE</strong>と<strong>SPT_VALUE</strong>は、粒子のパターンデータ配列にアクセスするためのマクロです、<strong>sputteringData.h</strong>で定義してあります。<br />
<br />
後は、単純に二重ループでデータの転送を行っています。<br />
今回合成先・合成元のピクセルデータのアルファー値は最大値でないので、ピクセル同士のブレンド合成を行っています。<br />
<h4>ピクセルの合成（通常） blendPixel</h4>
ピクセルの合成は、アルファーの値がどちらかが最大値ならば計算は楽ですが、お互いが透明な場合は少し考える必要があります。僕は全然検討もつかずハマってましたが、googleで検索してやっと見つけました。<br />
<br />
<a href="//d.hatena.ne.jp/GOCHA/20071027/alphablend">悟茶辞苑ッの2007-10-27 土曜日「RGBAのアルファブレンドに感激 -続・レイヤー処理- 」の記事</a><br />
<br />
このHPにそのものズバリがあり、そのままコーディングしたものが以下のものです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect06.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4574" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect06.gif" alt="" width="496" height="396" /></a><br />
除算が3回も入っていてまだ最適化の余地はありそうですが、特に問題なく使ってます。<br />
<h4>粒子データを用意する</h4>
粒子データは本当は、実際にスパッタリングした物をスキャンして使おうと思っていましたが、近所の文房具屋にはスパッタリングの道具が打っていなかったので、Photoshopで手書きしました。（僕が小学校の頃は図工の時間でやっていて文房具屋でも売ってましたが最近はやらないみたいです）<br />
<br />
データが用意できたらそれをCで扱える形式に変換します。今回は、C#で簡単なツールを作成したので、それで変換します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect07.png" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4577" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect07.png" alt="" width="600" height="479" /></a><br />
<br />
粒子データはギリギリのサイズに切り出しておいてください。その時縦横のサイズは同じにしておきます。<br />
Exportすれば、以下のファイルが出力されます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect08.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4578" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect08.gif" alt="" width="519" height="482" /></a><br />
<br />
面倒だったので、マクロ定義なども出力しています。<br />
<br />
実行ファイル<strong>pic2c.exe</strong><br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/05/pic2c.zip">pic2c.zipのダウンロード</a><br />
ソース（C# 2008 express editionで作成）<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/05/pic2c_src.zip">pic2c_src.zipのダウンロード</a><br />
<h4>テーブル参照</h4>
ここで僕が多用している<strong>テーブル参照</strong>のテクニックについて説明します。<br />
<br />
テーブル参照のメリットは<br />
<ol>
	<li>計算を予め終わらせておくので、高速化が望める。</li>
	<li>ソースを簡略化して簡単にコーディングできるようになる。</li>
</ol>
とあります。<br />
しかし、最近のPCでは除算とか小数の計算とかびっくりするほど早くて高速化のメリットはかなり無くなりました。逆にCPUのキャッシュの恩恵を受けられないので、かえって遅くなる場合も多々あります。<br />
そのため僕は主にコーディングを楽にするために使ってます。デメリットは、実行バイナリのファイルサイズが増えるとかテーブルサイズが意外とバカに出来ないサイズになってしまいメモリが勿体無いとか、そもそもテーブル作るのが面倒とかあります。<br />
<br />
具体的に説明するためにAfter Effects用のjavaScriptを作成してみます。<br />
<br />
<strong>AfterEfefctsとじゃんけんゲーム</strong><br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/05/jyan_jsx.zip">jyan_jsx.zipのダウンロード</a><br />
アーカイブに二つスクリプトがはいってますが、動作は同じものになります。<br />
グー・チョキ・パーの3個のボタンがあるダイアログが表示されるので、適当に選ぶとジャンケンの結果が表示されます。<br />
<br />
その１のジャンケン判定のコードは、以下の通り。<br />
<br />

<div class="wp_syntax"><div class="code"><pre class="expression" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> jyanStr<span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> ss <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #F0A090; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> ss <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;グー&quot;</span><span style="color: #339933;">;</span>break<span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> ss <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;チョキ&quot;</span><span style="color: #339933;">;</span>break<span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> ss <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;パー&quot;</span><span style="color: #339933;">;</span>break<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #F0A090; font-weight: bold;">return</span> ss<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">var</span> dlg <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> jyankenDialog<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;AfteEffectsとじゃんけんゲーム その１&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> player <span style="color: #339933;">=</span> dlg.<span style="color: #660066;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">// 0:グー 1:チョキ 2:パー</span>
<span style="color: #F0A090; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>player<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span>player<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> computer <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//0-2の整数を返す</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> kekka <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 0:引き分け 1:palyer勝利 2:player負け</span>
	<span style="color: #F0A090; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>player<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// グー</span>
			<span style="color: #F0A090; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>computer<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// チョキ</span>
			<span style="color: #F0A090; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>computer<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// パー</span>
			<span style="color: #F0A090; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>computer<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> kekka <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #F0A090; font-weight: bold;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> s <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;じゃんけん勝負<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	s <span style="color: #339933;">+=</span><span style="color: #3366CC;">&quot;;Palyer : &quot;</span> <span style="color: #339933;">+</span>jyanStr<span style="color: #009900;">&#40;</span>player<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	s <span style="color: #339933;">+=</span><span style="color: #3366CC;">&quot;;AfterEfefcts : &quot;</span> <span style="color: #339933;">+</span>jyanStr<span style="color: #009900;">&#40;</span>computer<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #F0A090; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>kekka<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">:</span> s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;引き分け<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>break<span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span> s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;あなたの勝ち<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>break<span style="color: #339933;">;</span>
		<span style="color: #F0A090; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span> s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;あなたの負け<span style="color: #000099; font-weight: bold;">\n</span>”;break;
	}
	alert(s);
}</span></pre></div></div>

<br />
<br />
見やすいようにswitch文で処理してますが、if分で書いても多少短くなる程度です。<br />
その2はテーブル参照でジャンケン判定を実装したもので以下のようになります。<br />
<br />

<div class="wp_syntax"><div class="code"><pre class="expression" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> dlg <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> jyankenDialog<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;AfteEffectsとじゃんけんゲーム その２&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> player <span style="color: #339933;">=</span> dlg.<span style="color: #660066;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">// 0:グー 1:チョキ 2:パー</span>
<span style="color: #F0A090; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>player<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span>player<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> computer <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//0-2の整数を返す</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> kekkaTbl <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> kekkaStrTbl <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;引き分け&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;あなたの勝ち&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;あなたの負け&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> jyanTbl <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;グー&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;チョキ&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;パー&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> s <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;じゃんけん勝負<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;Palyer : &quot;</span> <span style="color: #339933;">+</span> jyanTbl<span style="color: #009900;">&#91;</span>player<span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	s <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;AfterEfefcts : &quot;</span>  <span style="color: #339933;">+</span> jyanTbl<span style="color: #009900;">&#91;</span>computer<span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	s <span style="color: #339933;">+=</span> kekkaStrTbl<span style="color: #009900;">&#91;</span>kekkaTbl<span style="color: #009900;">&#91;</span>player <span style="color: #339933;">*</span> <span style="color: #CC0000;">3</span> <span style="color: #339933;">+</span> computer<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #F0A090;">alert</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<br />
<br />
なんと、半分以下になっています。テーブルを作成するのが面倒ですが便利な関数を呼び出す気分で使えます。<br />
このスクリプトではテーブル参照を２重で行ってますが、それをひとつにまとめればさらに短いコードに変えられます。<br />
<br />
余談ですが、AfterEfefctsは意外とジャンケンが強いです。作成時10回連続で負けたので、バグがあるのかとハマってましたが、単純に運の問題でした。<br />
<h4>粒子をランダムに選び出す。</h4>
描画する粒子を選ぶ方法は、要素数２００のジャンプテーブル(<strong>sputteringCircle_Params</strong>の<strong>sputRandTable</strong>)に５１種類のインデックス番号を適当に配置してランダムに選び出すことで実装しています。<br />
sizeパラメータは、ジャンプテーブルへの配置の仕方を変えているだけで、描画関数内ではただランダムに選ぶだけです。<br />
<br />
<strong>sputteringRect.cpp</strong>の<strong>SetupSputData</strong>関数でジャンプテーブルの初期化を行っています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect09.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-medium wp-image-4607" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect09-223x400.gif" alt="" width="223" height="400" /></a><br />
<br />
for文の嵐になってますが、<strong>size</strong>のパラメータに合わせて適当な数値を入力しているだけです。<br />
<br />
同様に粒子の色も配列で確保しておいて、ランダムに選び出してます。<br />
<h4>乱数</h4>
スパッタリングでは粒子の描画のばらつき具合が重要なので、乱数発生に注意しています。<br />
今回<strong>FR_RAND(LO,HI)</strong>・<strong>FM_RAND</strong>の二つのマクロを定義しています。<br />
<br />
#define FR_RAND(LO,HI) (A_long)( F_RAND() * (HI &#8211; LO + 1.0) / (1.0 + F_RAND_MAX))<br />
#define FM_RAND(HI) (A_long)( F_RAND() * (HI + 1.0) / (1.0 + F_RAND_MAX))<br />
<br />
この公式は乱数発生の基本的なもので、FR_RANDは範囲乱数を求めるもの、FM_RANDは最大数値を指定するものです。<br />
精度を上げる為実数計算を含んでいるのですこし実行速度が遅くなりますが、まあ無視していいレベルです。実はまだ精度的に納得できないモノですが、速度との折り合いで僕は我慢して使っています。<br />
<br />
乱数発生は画像処理ではかなり根底問題で毎回苦労します。<br />
<br />
F&#8217;s ScreenShakeDir.aexでは自前で乱数テーブルを用意しています。画面動では精度の良い乱数であっても見た目のばらつきと一致しないので、テーブルの数値は計算で求めないで実際の画面動を見ながら手で入力しました。実際に見てもらえばわかりますが、範囲も100までで(8Bit長も使っていない)乱数テーブルとしてはかなりいい加減なものですが、結果的に一番満足しています。<br />
<br />
有名な<a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html">Mersenne Twister</a>の乱数発生アルゴリズムも試した事がありますが、かなり精度の良い乱数は得られますが、それが画面には反映されずかえってばらつきが均一になり見た目の乱雑さが失われしまいました。結局速度のことを考えて標準関数で乱雑さをアルゴリズムで補ってます。<br />
<br />
乱数とアニメ撮影技術の関わりを考えていくと、人間工学やらエントロピーとか難しい所に到達してもう僕のスキルでは手に負えません。最近ではすぐに諦めて簡単な方法に走ってしまいます。<br />
<br />
今回の<strong>sputteringRect</strong>では、粒子の大きさの発生ではジャンプテーブルで発生分布をばらつかせていたり、粒子の発生距離は、適当な確率でパラメータ自身を変化させて見た目のバラつきを発生させています。<br />
<h4>sputteringCircle</h4>
<strong>sputteringCircle</strong>はスパッタリングの描画範囲を、その中心位置・半径パラメータで決めているもので描画事態は<strong>sputteringRect</strong>と同じものです。<br />
<br />
パラメータは以下の通りです。<br />
<table border="1">
<tbody>
<tr>
<th>パラメータ名</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>seed</td>
<td>A_long</td>
<td>乱数の初期化の数値。</td>
</tr>
<tr>
<td>value</td>
<td>A_long</td>
<td>粒子の発生起点の数</td>
</tr>
<tr>
<td>opacity_rand</td>
<td>PF_Fixed</td>
<td>粒子の不透明度の最大値</td>
</tr>
<tr>
<td>Pos</td>
<td>PF_Point</td>
<td>発生範囲の中心位置</td>
</tr>
<tr>
<td>Radius</td>
<td>A_long</td>
<td>発生範囲の半径の最大値</td>
</tr>
<tr>
<td>Aspect</td>
<td>PF_Fixed</td>
<td>発生範囲の縦横比</td>
</tr>
<tr>
<td>length_scale</td>
<td>PF_Fixed</td>
<td>発生点と中心との距離のスケール率</td>
</tr>
<tr>
<td>Anchor_enabled</td>
<td>PF_boolean</td>
<td>スケールの中心を有効にする</td>
</tr>
<tr>
<td>Anchor</td>
<td>PF_Point</td>
<td>スケールの中心</td>
</tr>
<tr>
<td>point_value</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の数</td>
</tr>
<tr>
<td>point_length</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の位置の最大距離</td>
</tr>
<tr>
<td>size</td>
<td>A_long</td>
<td>粒子の大きさ（小のみ・中のみ・大のみ・小＋中・小＋中＋大の５種類あり）</td>
</tr>
<tr>
<td>color1 &#8211; 4</td>
<td>PF_Pixel</td>
<td>粒子の色（最大４色）</td>
</tr>
<tr>
<td>color_Max</td>
<td>A_long</td>
<td>粒子の色の最大数の指定</td>
</tr>
<tr>
<td>Blend with original</td>
<td>PF_Booleanl</td>
<td>元画像を表示するかしないか</td>
</tr>
</tbody>
</table>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect11.png" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4619" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect11.png" alt="" width="636" height="383" /></a><br />
length_scaleとAnchorのパラメータは爆発なんかに適応させる場合にこのパラメータだけで指定できれば楽そうだなって意図で採用してあります。<br />
<br />
アルゴリズムは以下のようになります。<br />
<ol>
	<li>Posの位置からRadius(半径の距離)Aspect(縦横比)とlength_scale/Anchorを考慮して描画点決める。</li>
	<li>描画点から最大point_lengthの位置にpoint_value分の粒子を描画。</li>
	<li>上の描画をvalue回繰り返す。</li>
</ol>
第3回目の記事で作成した<strong>Firework</strong>プラグインとほぼ同じアルゴリズムになっています。<br />
以下は<strong>MainRender</strong>関数の重要な部分を抜き出したものです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect10.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-large wp-image-4614" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect10-650x525.gif" alt="" width="650" height="525" /></a><br />
<h4>sputteringAlpha</h4>
<strong>sputteringAlph</strong>aはスパッタリングの描画範囲を、画像のAlpha値で求めるもので描画事態は<strong>sputteringRect</strong>と同じものです。<br />
Alphaが決められた閾値以上のピクセルを対象に適当な確率で描画点を発生させています。そのままだと細い線とか面積の少ない部分にあまり描画が行われなくなってしまうので、境界部分は個別に発生の確率を変えられるようにしてあります。<br />
<br />
パラメータは以下の通りです。<br />
<table border="1">
<tbody>
<tr>
<th>パラメータ名</th>
<th>型</th>
<th>説明</th>
</tr>
<tr>
<td>seed</td>
<td>A_long</td>
<td>乱数の初期化の数値。</td>
</tr>
<tr>
<td>value(%)</td>
<td>PF_Fixed</td>
<td>不透明部分の粒子の発生確率</td>
</tr>
<tr>
<td>edge_value(%)</td>
<td>PF_Fixed</td>
<td>境界部分の粒子の発生確率</td>
</tr>
<tr>
<td>opacity_rand</td>
<td>PF_Fixed</td>
<td>粒子の不透明度の最大値</td>
</tr>
<tr>
<td>point_value</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の数</td>
</tr>
<tr>
<td>point_length</td>
<td>A_long</td>
<td>一つの発生起点から描画される粒子の位置の最大距離</td>
</tr>
<tr>
<td>size</td>
<td>A_long</td>
<td>粒子の大きさ（小のみ・中のみ・大のみ・小＋中・小＋中＋大の５種類あり）</td>
</tr>
<tr>
<td>color1 &#8211; 4</td>
<td>PF_Pixel</td>
<td>粒子の色（最大４色）</td>
</tr>
<tr>
<td>color_Max</td>
<td>A_long</td>
<td>粒子の色の最大数の指定</td>
</tr>
<tr>
<td>Blend with original</td>
<td>PF_Booleanl</td>
<td>元画像を表示するかしないか</td>
</tr>
</tbody>
</table>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect12.png" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-large wp-image-4626" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect12-650x294.png" alt="" width="650" height="294" /></a><br />
<br />
このプラグインでは、境界線を識別して保存するために1画面分の配列を作成しています。少しでもメモリを節約するためにA_u_charの配列にしています。<br />
<strong>sputteringAlpha.cpp</strong>の<strong>Render</strong>で配列用のメモリを確保しています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect13.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4629" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect13.gif" alt="" width="625" height="419" /></a><br />
<br />
境界線の識別は<strong>sputteringAlphaMain8.cpp</strong>の<strong>MainRender8</strong>関数で行っています。高速化のの為に上下左右1ピクセルは無視して識別を行い、境界線・不透明部分と数値を分けて退避用の外列に値を書きこみます。アドレス計算はオフセット値を予め計算してジャンプテーブルを作成して行っています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect14.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4632" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect14.gif" alt="" width="566" height="738" /></a><br />
<br />
描画はNoise04Lvと同じようなコーディングになっています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/06/rect15.gif" class="sb-img" rel="shadowbox[post-4544];player=img;"><img class="aligncenter size-full wp-image-4637" src="http://ae-users.com/jp/wp-content/uploads/2010/06/rect15.gif" alt="" width="528" height="807" /></a><br />
<h4>このサンプルプラグインについて （F&#8217;s Pluginsへ）</h4>
この３個のプラグインはパラメータの扱いが違うだけで描画ルーチンは同じものです。何故分けたかというと、実際にスパッタリングを行う場面を考えて使いやすいように考えたからです。<br />
プログラム的には一つにすることは可能ですが、エフェクトコントロールがこれ以上増えて見づらくなるのが嫌いという理由もあります。<br />
<br />
あと、このプラグインはサンプル用に作ったもので、よく見れば<strong>Firework</strong>/<strong>Noise04Lv</strong>を少し修正しただけに過ぎません。でも、意外と業務に使えそうな雰囲気になってきたので<strong>sputRandTable</strong>をもっとましにするとか、16bit化するとかしてからF&#8217;s Pluginsとして公開配布するつもりです。<br />
<br />
2010/06/05追記<br />
早速作りました。<br />
Windows版 F&#8217;s sputtering<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/FsPlugins/FsSputtering.zip">FsSputtering.zipのダウンロード</a><br />
Maｃintosh版 F&#8217;s sputtering(beta)<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/FsPlugins/FsSputtering-Mac.dmg">FsSputtering-Mac.dmgのダウンロード</a><br />
<br />
AEP projectサンプル版から以下の項目を修正してあります。<br />
<ul>
	<li>16Bit対応</li>
	<li>粒子のテクスチャを修正。<br />
50個から60個へ増やした。サイズを修正。</li>
	<li>sizeのパラメータを修正。</li>
	<li>suputteringSplashを追加。</li>
	<li>MT版とMacintosh版を作成</li>
</ul>
ソース・プロジェクトはWindows版のアーカイブ内に入っています。<br />
<h4>次回予告</h4>
次回は予定通り「<strong>Effectsプラグインの構造</strong>」です。<br />
<br />
この記事は全部で全10回と予定してましたが、少し短くなって全８回程度になります。</p>


	タグ : <a href="http://ae-users.com/jp/tag/program/" title="program" rel="tag nofollow">program</a>, <a href="http://ae-users.com/jp/tag/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/" title="プラグイン" rel="tag nofollow">プラグイン</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-7/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第６回)　Effectプラグインの構造・ユーザーインターフェース (2010/6月/13)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第６回)　Effectプラグインの構造・ユーザーインターフェース</a> (4)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-5/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第４回)　オリジナルノイズフィルタを作ってみよう！ (2010/5月/23)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第４回)　オリジナルノイズフィルタを作ってみよう！</a> (5)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-3/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！ (2010/5月/09)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！</a> (6)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-2/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう! (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう!</a> (8)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回) (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回)</a> (10)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/xYWmynWetro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-6/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-6/</feedburner:origLink></item>
		<item>
		<title>光沢のある球面の表現</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/2goDDQ4ezso/</link>
		<comments>http://ae-users.com/jp/tutorials/2010/06/coated_ball/#comments</comments>
		<pubDate>Mon, 31 May 2010 15:40:53 +0000</pubDate>
		<dc:creator>yama_ko</dc:creator>
				<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[デフォルトプラグインのみ]]></category>
		<category><![CDATA[標準エフェクトのみ]]></category>
		<category><![CDATA[鏡面反射]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4520</guid>
		<description><![CDATA[光沢のある球面の表現方法をご紹介します。AfterEffects完結、標準プラグインのみです。アプローチ・考え方に重点を置きます。]]></description>
			<content:encoded><![CDATA[
<p>
AEP Night vol.2のプチコンペティション応募作品を題材に、そのアプローチと実際の方法をご紹介します。<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=12069906&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12069906&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><br /><br />
今回とりあげるのはこのシーンの球面の表現です。こちらはAfterEffects完結（標準プラグインのみ）で作っています。エフェクト一つ一つは単純ですし、複雑なエクスプレッションを書いてるわけでもありません。表面的な部分よりも内面的なアプローチ・考え方を重点的に扱います。<br />
<p style="text-align: center"><img class="size-full wp-image-4522  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/05/coated_ball_00.jpg" alt="" width="640" height="360" /></p>
汎用性を度外視しているので実用的ではないかもしれませんが、お役に立てれば幸いです。<br />
<h3>アプローチ</h3>
「それっぽく見えれば良い」が基本方針です。手を抜いてもよいという意味ではありません。<br />
この表現の目的は「リアル感」です。このとき、重視すべきは「リアルに近いか」ではなく、「視聴者がリアルと感じやすいかどうか」というのがポイントです。場合によっては3Dのレイトレーシングや実写より効果的な表現もあるでしょう。<br />
<h3>球を作る</h3>
まずは球の形状を感じさせるため、以下のステップを踏むことにしました。実際はこれに到るまで写真や3DCG等をよく見比べ、なぜ球と感じるかを考えます。実物のビー玉などがあれば理想的です。<br />
私は光学やレンダリングに詳しくないので誤解を招く表現かもしれませんが、仮に各ステップを以下のように呼びます。<br />
<ul>
	<li>基本色</li>
	<li>アンビエントライト</li>
	<li>ハイライト</li>
	<li>映り込み</li>
</ul>
<img class="aligncenter size-full wp-image-4523" src="http://ae-users.com/jp/wp-content/uploads/2010/05/coated_ball_01.jpg" alt="" width="640" height="320" />
<br />
AfterEffectsの機能は主にカラーカーブ、CC Sphereを使います。<br />
<h4>基本色</h4>
球そのものの色です。光源を意識しつつ、カラーカーブの放射状をベースに適当に作ります。<br />
<p style="text-align: center"><img class="size-full wp-image-4524  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/05/coated_ball_02.jpg" alt="" width="320" height="320" /></p>
<br />
<h4>アンビエントライト</h4>
こちらも円とカラーカーブで。モードを加算にしています。<br />
周りがある程度明るいという前提が元になります。ちなみに個人的には4つのステップのうち最も納得しづらかった部分です。いわゆるWeb2.0風アイコンやMacOSのUIなど、認識が記号化されているのかもしれません。<br />
<p style="text-align: center"><img class="size-full wp-image-4525  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/05/coated_ball_03.jpg" alt="" width="320" height="320" /></p>
<br />
<h4>ハイライト</h4>
白色の平面を引き、適当にマスクを切ります。電気や太陽など、一点の光源を見慣れているという前提を用います。<br />
<p style="text-align: center"><img class="size-full wp-image-4526  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_04.jpg" alt="" width="320" height="320" /></p>
<br />
<h4>映り込み</h4>
映り込ませる画像を別コンポ作り、CC Sphereで丸めます。この画像のアスペクト比を2:1にすると扱い易いです。解像度はかなり大きめに。<br />
画像内容は情報がないので、正解がありません。<br />
まず窓や建物など、四角形のものが身の回りに多いという前提で、平面にCC Grid Wipeをかけたものを置いています。<br />
加えて付近の別の球を想定し、似たような円を作っておきます。このとき左右反転をしておきましょう。また、文字などなるべく「左右逆になっている」ことがわかりやすい情報をもたせると効果的です。<br />
<p style="text-align: center">
<img class="size-full wp-image-4528       aligncenter" style="margin-left: auto;margin-right: auto;border: 0px initial initial" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_06.jpg" alt="" width="640" height="320" /></p>
<p style="text-align: left">これらは独立しているので、それらが独立していることを認識させるために多少ばらばらに動かします。</p>
<p style="text-align: left">透明度やCC Sphereの回転も基本的にトライアンドエラーで調整していきます。</p>
<p style="text-align: center"><img class="size-full wp-image-4527  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_05.jpg" alt="" width="320" height="320" /></p>
<br />
<h3>球の凹みをつくる</h3>
次に凹み部分を作るため、以下のステップを踏みます。<br />
<ul>
	<li>境界付近の反射の歪み</li>
	<li>凹み部分</li>
	<li>文字部分</li>
</ul>
主にCC RadialWipeと3Dレイヤーを使います。<br />
<h4>境界付近の反射の歪み</h4>
今回、最も印象を左右するポイントです。<br />
調整レイヤーで全体にCC Radial Wipeをかけ、穴をあけます。この効果によって歪みを認識させ、centerを動かすことで擬似的に球の回転を認識させます。もちろん動かせる範囲が限られますし、パースもかかりません。一次近似になります。振り子の運動は単振動と扱えるのと同じです。<br />
ハイライトや映り込みを巻き込むような動きになると効果的です。<br />
<p style="text-align: center"><img class="size-full wp-image-4529  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_07.jpg" alt="" width="320" height="320" /></p>
<br />
<h4>凹み部分</h4>
円を作り、cc Radial Wipeの Centerに重ね、穴が見えなくなるよう動かします。「円」エフェクトを使い、エクスプレッションでそれぞれのcenterを揃えると調整しやすいです。<br />
境界部分をぼかし、色の変化もトライアンドエラーでつけていきます。<br />
<p style="text-align: center"><img class="size-full wp-image-4530  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_08.jpg" alt="" width="320" height="320" /></p>
<br />
<h4>文字部分</h4>
この部分だけ3Dレイヤーの回転を使っています。<br />
先程のcenterと見た目上の動きを揃えます。<br />
文字にベベルをかけて、文字が刻み込まれていることを認識させます。（今回は「ベベルアルファ」を使っています）<br />
最終的にわずか数1,2pxの線になりますが、印象が大きく異なるポイントです。<br />
徐々に光源の相対角度が変わることになるので、それを相殺するようにベベルの角度を変化させるとベターです。<br />
<p style="text-align: center"><img class="size-full wp-image-4531  aligncenter" src="http://ae-users.com/jp/wp-content/uploads/2010/06/coated_ball_09.jpg" alt="" width="320" height="320" /></p>
<br />
<h3>おわりに</h3>
最後にコンポを複製し、環境光的な要素は全て同じに、互いの映り込みや回転は独立に動きをつけていきます。被写界深度や色調補正も重要な要素です。<br />
ある表現を狙うとき、なぜそのような認識に繋がるのかを常に考えることが大切なのではないかと思います。<br />
<br />
他のシーンについて<br />
<a href="http://www.yama-ko.net/blog/?p=181">http://www.yama-ko.net/blog/?p=181</a><br />
これを作ることになった経緯みたいなもの<br />
<a href="http://www.yama-ko.net/blog/?p=178">http://www.yama-ko.net/blog/?p=178</a><br />
<br />
<a class="dl" href="http://ae-users.com/jp/wp-content/uploads/2010/06/coated-ball.zip">Download</a><br />
<ul>
	<li>Version: AfterEffects CS4</li>
	<li>License: Free for all</li>
</ul></p>


	タグ : <a href="http://ae-users.com/jp/tag/%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%ae%e3%81%bf/" title="デフォルトプラグインのみ" rel="tag nofollow">デフォルトプラグインのみ</a>, <a href="http://ae-users.com/jp/tag/%e6%a8%99%e6%ba%96%e3%82%a8%e3%83%95%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%81%bf/" title="標準エフェクトのみ" rel="tag nofollow">標準エフェクトのみ</a>, <a href="http://ae-users.com/jp/tag/%e9%8f%a1%e9%9d%a2%e5%8f%8d%e5%b0%84/" title="鏡面反射" rel="tag nofollow">鏡面反射</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2009/03/chromatic-abberation/" title="カメラの色収差をエクスプレッションで簡易再現 (2009/3月/25)">カメラの色収差をエクスプレッションで簡易再現</a> (4)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/04/sp_wave/" title="うねうねとすすむパイプ (2009/4月/17)">うねうねとすすむパイプ</a> (4)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2009/09/%e3%80%8cuse-the-forcemotionblurluke%e3%80%8d/" title="「Use the ForceMotionBlur,Luke」 (2009/9月/26)">「Use the ForceMotionBlur,Luke」</a> (7)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/01/particleline/" title="3D空間を進む光線 without Particular (2010/1月/03)">3D空間を進む光線 without Particular</a> (14)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/2goDDQ4ezso" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/tutorials/2010/06/coated_ball/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/tutorials/2010/06/coated_ball/</feedburner:origLink></item>
		<item>
		<title>AE CS5 レンダリング速度の検証</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/VqTBy6F_0j8/</link>
		<comments>http://ae-users.com/jp/tips/2010/05/ae-cs5-%e3%83%ac%e3%83%b3%e3%83%80%e3%83%aa%e3%83%b3%e3%82%b0%e9%80%9f%e5%ba%a6%e3%81%ae%e6%a4%9c%e8%a8%bc/#comments</comments>
		<pubDate>Sun, 30 May 2010 09:44:48 +0000</pubDate>
		<dc:creator>e_san</dc:creator>
				<category><![CDATA[TIPS 全般]]></category>
		<category><![CDATA[cs4]]></category>
		<category><![CDATA[cs5]]></category>
		<category><![CDATA[検証]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4508</guid>
		<description><![CDATA[

先日、AE CS5が発売され、最も注目されているポイントが64bit環境での動作だと思います。

64bit環境で大量のメモリが使用できるようになることから、RAMプレビュー可能な尺が長くなるという点はよく言われます [...]]]></description>
			<content:encoded><![CDATA[
<p>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/aecs5.jpg" class="sb-img" rel="shadowbox[post-4508];player=img;"><img class="alignright size-thumbnail wp-image-4512" src="http://ae-users.com/jp/wp-content/uploads/2010/05/aecs5-190x190.jpg" alt="" width="190" height="190" /></a>先日、AE CS5が発売され、最も注目されているポイントが64bit環境での動作だと思います。<br />
<br />
64bit環境で大量のメモリが使用できるようになることから、RAMプレビュー可能な尺が長くなるという点はよく言われますが、それ以外の点でも多少なりメリットはないものか・・・と思い、CS4とCS5でレンダリング速度を比較してみました。<br />
<br />
OSはWindows7 Professional x64 となります。<br />
<br />
外部リンクとなってしまいますが、以下で結果を公開しています。ぜひご覧下さい。<br />
<br />
<a href="http://e-san.net/contents/100529aecs5/index.html">http://e-san.net/contents/100529aecs5/index.html</a></p>


	タグ : <a href="http://ae-users.com/jp/tag/cs4/" title="cs4" rel="tag nofollow">cs4</a>, <a href="http://ae-users.com/jp/tag/cs5/" title="cs5" rel="tag nofollow">cs5</a>, <a href="http://ae-users.com/jp/tag/tips/" title="TIPS 全般" rel="tag nofollow">TIPS 全般</a>, <a href="http://ae-users.com/jp/tag/%e6%a4%9c%e8%a8%bc/" title="検証" rel="tag nofollow">検証</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/tips/2009/04/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e5%88%b6%e5%be%a1%e3%81%ae%e7%b5%90%e5%90%88/" title="エクスプレッション制御の結合 (2009/4月/16)">エクスプレッション制御の結合</a> (5)</li>
	<li><a href="http://ae-users.com/jp/tips/scripts-show/2009/04/auto_express/" title="wiggle、smooth、loopをパネルで操作出来るスクリプト (2009/4月/08)">wiggle、smooth、loopをパネルで操作出来るスクリプト</a> (1)</li>
	<li><a href="http://ae-users.com/jp/tips/troubleshooting/2009/03/render_and_emailjsx/" title="render_and_email.jsxエラー解決法 (2009/3月/31)">render_and_email.jsxエラー解決法</a> (0)</li>
	<li><a href="http://ae-users.com/jp/tips/2010/04/after-effects-cs5%e4%bd%bf%e7%94%a8%e3%83%ac%e3%83%9d%e3%83%bc%e3%83%88%ef%bc%9a%e3%80%8c%e4%b8%bb%e3%81%aa%e6%96%b0%e6%a9%9f%e8%83%bd%e3%80%8d%e4%bb%a5%e5%a4%96/" title="After Effects CS5使用レポート：「主な新機能」以外 (2010/4月/30)">After Effects CS5使用レポート：「主な新機能」以外</a> (32)</li>
	<li><a href="http://ae-users.com/jp/tips/2010/04/whats-new-after-effects-cs5/" title="After Effects CS5 ファーストレビュー！CS5では何が変わる？ (2010/4月/12)">After Effects CS5 ファーストレビュー！CS5では何が変わる？</a> (153)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/VqTBy6F_0j8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/tips/2010/05/ae-cs5-%e3%83%ac%e3%83%b3%e3%83%80%e3%83%aa%e3%83%b3%e3%82%b0%e9%80%9f%e5%ba%a6%e3%81%ae%e6%a4%9c%e8%a8%bc/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/tips/2010/05/ae-cs5-%e3%83%ac%e3%83%b3%e3%83%80%e3%83%aa%e3%83%b3%e3%82%b0%e9%80%9f%e5%ba%a6%e3%81%ae%e6%a4%9c%e8%a8%bc/</feedburner:origLink></item>
		<item>
		<title>画面に雨粒が当たる表現</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/ipVXbr5bf44/</link>
		<comments>http://ae-users.com/jp/resources/2010/05/%e7%94%bb%e9%9d%a2%e3%81%ab%e9%9b%a8%e7%b2%92%e3%81%8c%e5%bd%93%e3%81%9f%e3%82%8b%e8%a1%a8%e7%8f%be/#comments</comments>
		<pubDate>Fri, 28 May 2010 14:17:39 +0000</pubDate>
		<dc:creator>e_san</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Expressions]]></category>
		<category><![CDATA[Trapcode]]></category>
		<category><![CDATA[Trapcode Particular]]></category>
		<category><![CDATA[エクスプレッション]]></category>
		<category><![CDATA[エフェクト]]></category>
		<category><![CDATA[カメラ]]></category>
		<category><![CDATA[水]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4473</guid>
		<description><![CDATA[



カメラのレンズやガラス板に水滴（雨粒）が当たるような表現を作成しました。

AEのCS4とTrapcode Particular2.0を使用しています。

外部リンクとなりますが、ソースファイルと、肝になる部分の [...]]]></description>
			<content:encoded><![CDATA[
<p>
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/thumbnail.jpg" class="sb-img" rel="shadowbox[post-4473];player=img;"><img class="alignright size-thumbnail wp-image-4474" src="http://ae-users.com/jp/wp-content/uploads/2010/05/thumbnail-190x190.jpg" alt="画面に雨粒が当たる表現" width="190" height="190" /></a><br />
<br />
カメラのレンズやガラス板に水滴（雨粒）が当たるような表現を作成しました。<br />
<br />
AEのCS4とTrapcode Particular2.0を使用しています。<br />
<br />
外部リンクとなりますが、ソースファイルと、肝になる部分の簡易な解説を以下のページに公開しています。<br />
<br />
<a href="http://e-san.net/contents/100523raindrops/">http://e-san.net/contents/100523raindrops/</a><br />
<br />
また、完成動画のみとなりますが、ニコニコ動画にも映像をアップしています。<br />
<br />
<a href="http://www.nicovideo.jp/watch/sm10673843">http://www.nicovideo.jp/watch/sm10673843</a><br />
<br />
ぜひ利用してやってください。</p>


	タグ : <a href="http://ae-users.com/jp/tag/expression/" title="Expression" rel="tag nofollow">Expression</a>, <a href="http://ae-users.com/jp/tag/expressions/" title="Expressions" rel="tag nofollow">Expressions</a>, <a href="http://ae-users.com/jp/tag/trapcode/" title="Trapcode" rel="tag nofollow">Trapcode</a>, <a href="http://ae-users.com/jp/tag/trapcode-particular/" title="Trapcode Particular" rel="tag nofollow">Trapcode Particular</a>, <a href="http://ae-users.com/jp/tag/tutorials/" title="TUTORIALS" rel="tag nofollow">TUTORIALS</a>, <a href="http://ae-users.com/jp/tag/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3/" title="エクスプレッション" rel="tag nofollow">エクスプレッション</a>, <a href="http://ae-users.com/jp/tag/%e3%82%a8%e3%83%95%e3%82%a7%e3%82%af%e3%83%88/" title="エフェクト" rel="tag nofollow">エフェクト</a>, <a href="http://ae-users.com/jp/tag/%e3%82%ab%e3%83%a1%e3%83%a9/" title="カメラ" rel="tag nofollow">カメラ</a>, <a href="http://ae-users.com/jp/tag/%e6%b0%b4/" title="水" rel="tag nofollow">水</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/tips/2010/05/%e6%89%8b%e4%bb%98%e3%81%91%e3%81%a7%e3%81%af%e7%b5%b6%e5%af%be%e3%81%ab%e4%bd%9c%e3%82%8a%e3%81%9f%e3%81%8f%e3%81%aa%e3%81%84%e5%8b%95%e7%94%bb/" title="手付けでは絶対に作りたくない動画 (2010/5月/27)">手付けでは絶対に作りたくない動画</a> (10)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/04/%e3%83%9f%e3%83%a9%e3%83%bc%e3%83%9c%e3%83%bc%e3%83%ab/" title="ミラーボール (2009/4月/13)">ミラーボール</a> (8)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/05/sp_wave2/" title="トンネルの中でうねうね (2009/5月/15)">トンネルの中でうねうね</a> (6)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/03/chromatic-abberation/" title="カメラの色収差をエクスプレッションで簡易再現 (2009/3月/25)">カメラの色収差をエクスプレッションで簡易再現</a> (4)</li>
	<li><a href="http://ae-users.com/jp/tips/2009/04/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e5%88%b6%e5%be%a1%e3%81%ae%e7%b5%90%e5%90%88/" title="エクスプレッション制御の結合 (2009/4月/16)">エクスプレッション制御の結合</a> (5)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/ipVXbr5bf44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/resources/2010/05/%e7%94%bb%e9%9d%a2%e3%81%ab%e9%9b%a8%e7%b2%92%e3%81%8c%e5%bd%93%e3%81%9f%e3%82%8b%e8%a1%a8%e7%8f%be/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/resources/2010/05/%e7%94%bb%e9%9d%a2%e3%81%ab%e9%9b%a8%e7%b2%92%e3%81%8c%e5%bd%93%e3%81%9f%e3%82%8b%e8%a1%a8%e7%8f%be/</feedburner:origLink></item>
		<item>
		<title>手付けでは絶対に作りたくない動画</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/4GGUyDfTFXM/</link>
		<comments>http://ae-users.com/jp/tips/2010/05/%e6%89%8b%e4%bb%98%e3%81%91%e3%81%a7%e3%81%af%e7%b5%b6%e5%af%be%e3%81%ab%e4%bd%9c%e3%82%8a%e3%81%9f%e3%81%8f%e3%81%aa%e3%81%84%e5%8b%95%e7%94%bb/#comments</comments>
		<pubDate>Wed, 26 May 2010 16:25:25 +0000</pubDate>
		<dc:creator>BA</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TIPS 全般]]></category>
		<category><![CDATA[.aep]]></category>
		<category><![CDATA[Expressions]]></category>
		<category><![CDATA[エクスプレッション]]></category>
		<category><![CDATA[レイヤーがたくさん]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4384</guid>
		<description><![CDATA[



エクスプレッションを活用し、ＡＥのみで作った動画です。
複雑な動きをしていますが、作るのはとても簡単です。
ヌルを二つ用意して動かし、
それらの位置から自分の位置を割り出す命令文を書き込んだ平面レイヤーをただ複製 [...]]]></description>
			<content:encoded><![CDATA[
<p>
<img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ba_sample_63_01.jpg" alt="" width="200" height="200" />
<br />
エクスプレッションを活用し、ＡＥのみで作った動画です。<br />
複雑な動きをしていますが、作るのはとても簡単です。<br />
ヌルを二つ用意して動かし、<br />
それらの位置から自分の位置を割り出す命令文を書き込んだ平面レイヤーをただ複製するだけです。<br />
動画とaepは<a href="http://baaaf.com/sample.html#63">こちら</a>。<br />
作成バージョンはＣＳ4です。<br />
<br />
どういう手順で作ったかというと、<br />
<br />
<strong>■ＳＴＥＰ1　ヌルをランダムに動かす</strong><br />
30fps、640*360のコンポジションを作成します。<br />
2つのヌルを出してそれぞれ&#8221;Ａ&#8221;、&#8221;Ｂ&#8221;と名付け、Ａを[320,360,0]、Ｂを[320,0,0]に配置します。<br />
Ｂの「位置」にエクスプレッションで<br />
<br />
<span style="color: #33cccc;">wiggle(2,500)</span><br />
<br />
と入力します。<br />
これでＢは秒間2回、初期位置から±500の範囲でランダムに動き回ります。<br />
<br />
<strong>■ＳＴＥＰ2　自動的に二つのヌルの間に配置される平面を作る</strong><br />
25*25の白平面レイヤー(以下、&#8221;板&#8221;と呼ぶ）を出し、「位置」にエクスプレッションで<br />
<br />
<span style="color: #33cccc;"> </span><span style="color: #33cccc;">PA=thisComp.layer(&#8220;A&#8221;).position;<br />
PB=thisComp.layer(&#8220;B&#8221;).position;<br />
N=thisComp.numLayers;<br />
I=index*1/((N+1)-2);<br />
PA*I+PB*(1-I)</span><br />
<br />
と入力します。<br />
板を複製するだけで、ヌルＡとＢの間に均等に配置されます。<br />
<br />
次に、板の「方向」にエクスプレッションで<br />
<br />
<span style="color: #33cccc;">lookAt(thisLayer.position,thisComp.layer(&#8220;B&#8221;).position)</span><br />
<br />
と入力します。<br />
これで常にヌルＢの方を向くようになります。<br />
板を複製すると、<br />
<br />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ba_sample_63_02.jpg" alt="" width="353" height="252" />
<br />
のようになります。<br />
ただ、これだけでは面白味に欠けるので、板の挙動に時間差をつけてみます。<br />
<br />
<strong>■ＳＴＥＰ3　板の動きに時間差をつける</strong><br />
新しいヌルを出し&#8221;control&#8221;と名づけます。<br />
エフェクト「スライダ制御」を適用、エフェクト名を&#8221;間隔制御&#8221;とします。<br />
<br />
スライダをひとまず30とします。<br />
板の「位置」のエクスプレッションを以下のようにします。<br />
<br />
<span style="color: #33cccc;">Interval=thisComp.layer(&#8220;Control&#8221;).effect(&#8220;間隔制御&#8221;)(&#8220;スライダ&#8221;);<br />
if (Interval &lt; 1){<br />
Interval=1;<br />
}<br />
PA=thisComp.layer(&#8220;A&#8221;).position;<br />
PB=thisComp.layer(&#8220;B&#8221;).position.valueAtTime(time-index/Interval);<br />
N=thisComp.numLayers;<br />
I=index*1/((N+1)-3);<br />
PA*I+PB*(1-I);</span><br />
<br />
（間のif文は0による除算回避）<br />
<br />
板を複製すると、挙動に時間差ができます。<br />
<br />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ba_sample_63_03.jpg" alt="" width="379" height="284" />
<br />
例では板を200枚複製して、間隔制御スライダに適当にキーを打ってみました。<br />
動きの基本は以上で完成です。<br />
あとは動画としての味付けです。<br />
<br />
<strong>■ＳＴＥＰ4　仕上げ</strong><br />
ＳＴＥＰ3までのレイヤーをプリコンポーズし、複製して角度を変えます。<br />
例では4つに増やして、Ｙの回転を90度ずつ変えています。<br />
床を作り、ライトとカメラをセット、影と被写界深度をいい感じに調整します。<br />
<br />
<img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ba_sample_63_04.jpg" alt="" width="320" height="179" />
<br />
さらにもう一工夫欲しくなったので、<br />
ライトの明るさ、カメラのズーム、フォーカス距離にwiggleを適用しました。<br />
<br />
最後に色味を好みに調整して完成です。<br />
<br />
ＡやＢの動きを変えたり、板の形を変えるなどすることで、多くのバリエーションが作れると思います。<br />
<br />
<strong>■注意点</strong><br />
板を増やしすぎるとレンダリングが極度に重くなったり落ちたりします。<br />
板が多い時にヌルAとBがあまりに近づきすぎると、レンダリングが極度に重くなったり落ちたりします。<br />
影のぼかしの値を大きくすると、レンダリングが極度に重くなったり落ちたりします。</p>


	タグ : <a href="http://ae-users.com/jp/tag/aep/" title=".aep" rel="tag nofollow">.aep</a>, <a href="http://ae-users.com/jp/tag/expressions/" title="Expressions" rel="tag nofollow">Expressions</a>, <a href="http://ae-users.com/jp/tag/%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3/" title="エクスプレッション" rel="tag nofollow">エクスプレッション</a>, <a href="http://ae-users.com/jp/tag/%e3%83%ac%e3%82%a4%e3%83%a4%e3%83%bc%e3%81%8c%e3%81%9f%e3%81%8f%e3%81%95%e3%82%93/" title="レイヤーがたくさん" rel="tag nofollow">レイヤーがたくさん</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2009/05/sp_wave2/" title="トンネルの中でうねうね (2009/5月/15)">トンネルの中でうねうね</a> (6)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/04/sp_wave/" title="うねうねとすすむパイプ (2009/4月/17)">うねうねとすすむパイプ</a> (4)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e7%94%bb%e9%9d%a2%e3%81%ab%e9%9b%a8%e7%b2%92%e3%81%8c%e5%bd%93%e3%81%9f%e3%82%8b%e8%a1%a8%e7%8f%be/" title="画面に雨粒が当たる表現 (2010/5月/28)">画面に雨粒が当たる表現</a> (3)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/03/chromatic-abberation/" title="カメラの色収差をエクスプレッションで簡易再現 (2009/3月/25)">カメラの色収差をエクスプレッションで簡易再現</a> (4)</li>
	<li><a href="http://ae-users.com/jp/resources/2009/04/%e3%81%82%e3%82%8b%e4%b8%80%e7%82%b9%e3%81%8b%e3%82%89%e3%81%ae%e8%b7%9d%e9%9b%a2%e3%81%ab%e5%bf%9c%e3%81%98%e3%81%a6%e5%a4%a7%e3%81%8d%e3%81%95%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e7%8e%89%e3%81%9f/" title="ある一点からの距離に応じて大きさを変える玉たち(CS3) (2009/4月/13)">ある一点からの距離に応じて大きさを変える玉たち(CS3)</a> (2)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/4GGUyDfTFXM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/tips/2010/05/%e6%89%8b%e4%bb%98%e3%81%91%e3%81%a7%e3%81%af%e7%b5%b6%e5%af%be%e3%81%ab%e4%bd%9c%e3%82%8a%e3%81%9f%e3%81%8f%e3%81%aa%e3%81%84%e5%8b%95%e7%94%bb/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/tips/2010/05/%e6%89%8b%e4%bb%98%e3%81%91%e3%81%a7%e3%81%af%e7%b5%b6%e5%af%be%e3%81%ab%e4%bd%9c%e3%82%8a%e3%81%9f%e3%81%8f%e3%81%aa%e3%81%84%e5%8b%95%e7%94%bb/</feedburner:origLink></item>
		<item>
		<title>アニメ制作者のためのAfterEffectsプラグイン作成入門(第４回)　オリジナルノイズフィルタを作ってみよう！</title>
		<link>http://feedproxy.google.com/~r/aeusers-jp/~3/1Sc3e4pA5uU/</link>
		<comments>http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-5/#comments</comments>
		<pubDate>Sun, 23 May 2010 10:10:26 +0000</pubDate>
		<dc:creator>bry-ful</dc:creator>
				<category><![CDATA[RESOURCES]]></category>
		<category><![CDATA[TUTORIALS]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://ae-users.com/jp/?p=4244</guid>
		<description><![CDATA[

Noise01Test その１　簡単なノイズフィルタ
今回のネタは「ノイズフィルタ」
ノイズは簡単に作成出来る割に、奥の深いエフェクト処理です。簡単にアルゴリズムを説明すると、ピクセルの値にランダムの数値を加算するも [...]]]></description>
			<content:encoded><![CDATA[
<p>
<h4>Noise01Test その１　簡単なノイズフィルタ</h4>
今回のネタは「ノイズフィルタ」<br />
ノイズは簡単に作成出来る割に、奥の深いエフェクト処理です。簡単にアルゴリズムを説明すると、ピクセルの値にランダムの数値を加算するもので、RGBチャンネルに同じ数値ならばモノクロノイズ、個別の数値ならばカラーノイズになります。<strong>SDK_noise</strong>が参考になります。<br />
<br />
まず作るノイズフィルタは、量と強さと二つのパラメータを持つシンプルなものから作成して、少しづつ機能を追加していきます。<br />
パラメータは以下の意味になります。<br />
<ul>
<li><strong>value(%)</strong><br />
ランダムノイズを発生させる確率(%)です。０でなし。１００で必ずランダムの数値を加算します。具体的にはピクセルごとに乱数を発生させ、いのパラメータより乱数が小さい場合にのみピクセルにランダムな数値を加算します。<br />
</li>
<li><strong>&#8220;strong(%)</strong><br />
ノイズの強さをパーセントで指定します。１００％にしても数値自体はランダムなので最大値に鳴らない可能性があり、数値の範囲を200%まで指定できます。加算するランダムな数値の値をこのパラメータで強弱をつけます。<br />
</li>
<li><strong>&#8220;used_color_noise</strong><br />
ノイズをカラーにするかモノクロにするか指定します。</li>
</ul>
<br />
とりあえずソースです。<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/Noise01Test.zip">Noise01Test.zipのダウンロード</a><br />
<hr /><br />
前回まで画像のコピーをAfterEffectsのコールバック関数で行っていましたが、ちょっと気まぐれで自前のコピー関数を作成してあります。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_copy.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_copy.gif" alt="" width="367" height="408" class="alignnone size-full wp-image-4250" /></a><br />
<br />
ただの画像のコピーですが、画像データ処理の最も基本的なコーディングになっています。縦・横方向の２重ループでピクセルへアクセスしinput画像をoutput画像へコピーしています。アドレス計算は1ピクセルごとの加算、ラインごとに横幅の補正を行っています。ほとんどのエフェクト処理も同様なコーディングになります。<br />
<hr /><br />
以下のコードがノイズ処理のメインとなっています。既にoutputに画像が入っている前提のコーディングで、先に説明したノイズのアルゴリズム実装したものです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_main.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_main.gif" alt="" width="602" height="841" class="alignnone size-full wp-image-4257" /></a><br />
補足として、８７行目の<strong>F_SRAND</strong>関数は、Macとの互換性をとるためにマクロ定義したもので、実体は標準関数の<strong>srand</strong>です。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_rand.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_rand.gif" alt="" width="303" height="152" class="alignnone size-full wp-image-4274" /></a><br />
RAND_MAXの値がWindowsとMacと異なり、移植の際に苦労したので、マクロで再定義してあります。Windowsオンリならば標準関数そのまま使用してこのマクロを使う必要はありません。<br />
srandには、カレントフレームの値をいれてランダムパターンをフレームごとに同じになるようにしています。<br />
<br />
９０行目の無駄っぽいループは、何故かランダム関数が一定パターンの繰り返しになってノイズというか格子状のパターンが出てしまったので、対処するために入れてあります。標準の<strong>rand</strong>関数は、かなり品質が悪いのでいつも悩みます。<br />
<br />
１１０行目に計算が終わった値の範囲が<strong>unsigned char</strong>に収まるよう処理しています。ピクセルの値の計算時は必ず範囲のチェックを行う必要があります。<br />
<h4>Noise01_Test 問題点 out_flagsの設定</h4>
とりあえず、Noise01Test.aexをリビルドして作成し、動作確認を行います。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_result.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_result.png" alt="" width="616" height="373" class="alignnone size-full wp-image-4280" /></a><br />
ノイズは問題なく表示されますが、静止フッテージ画像に対してこのプラグインを適応させラムプレビューをしてみてください。ラムプレビューを行うと分かりますが、<strong>ノイズが動きません</strong>。<br />
フレーム番号でランダム関数の初期化を行ってるはずなので、これはおかしな結果です。<br />
<br />
これはコーディングの問題ではなく、パラメータの変化がないため、AfterEffectsはキャシュされた画像を描画に使用してプラグインを呼び出さないのが原因です。<br />
パラメータの変化がなくてもプラグインを毎フレームごとに呼び出すようにするには、<strong>out_flags</strong>のフラグ値を設定する必要があります。<br />
<br />
設定はすでにソースコードにコメントとしてあります。<strong>Noise01Test.cpp</strong>の以下の部分を修正し、それに応じて<strong>Noise01TestPiPL.r</strong>の修正を行ってください。<br />
<br />
<strong>Noise01Test.cppのGlobalSetup</strong><br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_gs.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_gs.gif" alt="" width="493" height="524" class="alignnone size-full wp-image-4281" /></a><br />
<br />
<strong>Noise01TestPiPL.rのAE_Effect_Global_OutFlags</strong><br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_gs2.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise01Test_gs2.gif" alt="" width="301" height="57" class="alignnone size-full wp-image-4282" /></a><br />
<br />
コメントアウトされているところを入れ替えリビルドを行ったものであれば、期待通りにラムプレビューでノイズが動いてくれるようになります。<br />
<br />
このようにホスト(After Effects)の動作を設定する為に<strong>out_flags</strong>の値を変更する必要があります。<br />
<strong>out_flags</strong>の値は、<strong>AfterEffect.h</strong>で定義されていて、コメントで説明されていますので、一度目を通しておいた方が良いです。<br />
<br />
まぁ、通常のエフェクトプラグインならば今回用意した二つの値のどちらかで対応できます。<br />
しかし、作ったプラグインの動作がおかしい場合は<strong>out_flags</strong>の値を確認してみると良いです。<br />
<h4>AE_out_flags.exe</h4>
<strong>out_flags</strong>の値は、GlobalSetup関数とリソース定義ファイルの２箇所に記述しますが、リソース定義ファイルには、マクロ定数では無く値そのものを記述しなければいけないのが非常に面倒です。<br />
いちいち計算するのが馬鹿らしいので専用ツールを作成しました。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/ae_out_flags_exe.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ae_out_flags_exe-400x212.png" alt="" width="400" height="212" class="aligncenter size-medium wp-image-4285" /></a><br />
<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/AE_out_flags.zip">AE_out_flags.zipのダウンロード</a><br />
<a href="http://bry-ful.ddo.jp/BRY/software/ap/04/AE_out_flags_src.zip">ソース</a>は、VC# 2008 express editionで作成ビルドしてあります。<br />
<h4>AE_Effect_Version.exe</h4>
ヘッダーで定義しているプラグイン自体のバージョンも、out_flagsと同様に記述が必要なので、こちら用にも専用ツールを作成しました。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/ae_version.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/ae_version.png" alt="" width="300" height="287" class="aligncenter size-full wp-image-4288" /></a><br />
<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/AE_Effect_Version.zip">AE_Effect_Version.zipのダウンロード</a><br />
<a href="http://bry-ful.ddo.jp/BRY/software/ap/04/AE_Effect_Version_src.zip">ソース</a>は、同様にVC# 2008 express editionで作成ビルドしてあります。<br />
<h4>プラグインの名前 Tips</h4>
ここで余談ですか、プラグインの名称について。<br />
メニューに表示されるプラグインの名称は、リソース定義ファイルの、<strong>Name</strong>で設定できます。サブメニューの名前は<strong>Category</strong>になります。<br />
（昔は、日本語表記にするだけでいろいろ障害がでましたが、最近では特に問題ないようです。まぁ、僕自身はもう日本語プラグイン名は懲り懲りなので似非英単語を採用してます）<br />
<br />
唯一注意する点は、<strong>プラグイン名の末尾に半角数字をつけてはいけない</strong>ことです。同じプラグインが登録された場合、末尾に数字をつけて区別できるように自動的にリネームされます。そのせいで元が半角数字で終わっているとその数字がただインクリメントされて、プラグインの名前が混乱してしまう事が多発します。<br />
昔この為エライ苦労したことがります（市販のプラグインで一見半角数字で終わってるものがあったりしますが、こっそり末尾にピリオド入ってたりとか苦労の跡が見えて笑ってしまうこともあります）<br />
バージョン管理為に、表示名にバージョン入れるとかすると結構はまります。最近では僕は、表示名ではなくカテゴリ名（サブメニュー名）に情報を入れて管理してます。<br />
<h4>Noise02Iterate PF_ITERATE</h4>
Noise01Teast.aexでは、アドレスの計算を自前のコードで行ってますが、AdobeのSDKではなるべく直接画像にアクセスしないで、<strong>Iterate</strong>というコールバック関数を介してピクセルにアクセスしなさいという記述があります。<br />
僕は好みで上記の方法で画像処理していますが、<strong>Iterate</strong>を使ったアクセス方法も覚えておいた方がいいのでここで説明します。<br />
<br />
とりあえず、以下にNoise01Teastを単純に<strong>Iterate</strong>を使ったものに変えたもの(Noise02Iterate)をあげます。<br />
<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/Noise02Iterate.zip">Noise02Iterate.zipのダウンロード</a><br />
機能はNoise01Testとまったく同じです。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_mr.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_mr.gif" alt="" width="602" height="463" class="aligncenter size-full wp-image-4293" /></a><br />
以上が<strong>Iterate</strong>の使用サンプルです。一見するとよくわかりませんが、まぁ要するに適当なパラメータを与えて実行すれば全ピクセルへのアクセスを自動的にするって機能です。<br />
ピクセル単位の処理は別に関数で実装し、その関数ポインタを引数の一つとしています。<br />
<br />
関数ポインタはここでは説明しませんので、適当に調べてください。かなり便利な機能で覚えるとプラグインの高速化等で役に立ちます。<br />
<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_sub.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_sub.gif" alt="" width="567" height="622" class="aligncenter size-full wp-image-4296" /></a><br />
以上が<strong>Iterate</strong>で呼び出される関数です。引数・引数の変数型は変更できません、<br />
<table border="1">
<tr><th>引数順</th><th>引数の型</th><th>引数の説明</th></tr>
<tr><th>第１引数</th><th>A_long refcon</th><th>A_longですが、実際はポインタ。<br />
PF_ITERATEの第5引数で指定された変数の先頭アドレスになります。</th></tr>
<tr><th>第２引数</th><th>A_long x</th><th>ターゲットピクセルのX座標</th></tr>
<tr><th>第３引数</th><th>A_long y</th><th>ターゲットピクセルのY座標</th></tr>
<tr><th>第４引数</th><th>PF_Pixel 　*inP</th><th>インプット画像のターゲットピクセルへのポインタ</th></tr>
<tr><th>第５引数</th><th>PF_Pixel 　*outP</th><th>アウトプット画像のターゲットピクセルへのポインタ</th></tr>
</table>
<br />
refconに必要なパラメータを収納した変数（構造体）を設定すれば、動作に必要なパラメータをこの関数へ引き渡すことができます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_info.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise02Iterate_info.gif" alt="" width="248" height="143" class="aligncenter size-full wp-image-4299" /></a><br />
<br />
<strong>Iterate</strong>を使った処理はポインタを理解してないとただ面倒なだけですが、実際はかなり効率的でスマートな操作をユーザーに提供します。<br />
アドレスの計算をやってくれる他にも、After Effectsのいろいろな機能に自動的に対応しますので、なるべく使ったほうがよいです。<br />
<br />
まぁこの講座では、基本の説明ため<strong>Iterate</strong>はほぼ使いません。<br />
<h4>Noise03Lv</h4>
<strong>Noise01Test</strong>はあまりにも簡単なので、もう少し凝った機能を実装してみます。<br />
という事で、<strong>Noise03Lv</strong>は元画像の明るさに応じてノイズの強さを変えられるプラグインにします。<br />
（昔、画面の明るいところと暗いところでノイズの強さを変えてくれというオーダーがあり、面倒なコンポジションを組んだ事を思い出したので）<br />
<br />
とりあえず、ソース。<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/Noise03Lv.zip">Noise03Lv.zipのダウンロード</a><br />
<hr /><br />
パラメータは四つ。<br />
<ul>
<li>value(%)<br />
これはNoise01Testのものと同じもの。<br />
</li>
<li>hi(%)<br />
明るい部分のノイズの強さ。<br />
</li>
<li>mid(%)<br />
中間部分のノイズの強さ。<br />
</li>
<li>low(%)<br />
暗い部分のノイズの強さ。<br />
</li>
</ul>
カラーノイズはあまり必要そうでないことと、コーディングの都合（後で説明）で無しになっています。<br />
<hr /><br />
アルゴリズムは以下の様に。<br />
<ol>
	<li>画像の明るさを識別するために3個のテーブル用配列を確保。</li>
	<li>テーブルの初期化</li>
	<li>ピクセルの明るさを計算</li>
	<li>ピクセルの明るさをテーブル参照で、明るい部分の強度・中間部分の強度・暗い部分の強度を求める</li>
	<li>おのおのの強度とパラメータの数値を考慮して、そのピクセルのノイズの強さを計算</li>
	<li>ノイズを描画</li>
	<li>３以後の処理を全ピクセルで実行</li>
</ol>
って感じになります。<br />
テーブルとは、ピクセルの強さから明暗を識別する計算をあらかじめ終わらせておいて、配列にまとめたものになります。通常は高速化のテクニックの一つですが今回はコーディングの量を減らすために使ってます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mr.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mr.gif" alt="" width="637" height="687" class="aligncenter size-full wp-image-4322" /></a><strong><br />
MainRender</strong>では、テーブル用のメモリを動的に確保しています。メモリ確保に使うコールバック関数<strong>PF_NEW_HANDLE</strong>は、バイト数でメモリを確保して、確保されたメモリの先頭アドレスを<strong>ハンドル</strong>（ポインタのポインタ）で返します。<strong>ハンドル</strong>はかなり難しい概念ですがでここではこんな感じに使うって覚えれば大丈夫です。<br />
3個のテーブルを準備してますが、<strong>PF_NEW_HANDLE</strong>で三つ分まとめて確保して、先頭アドレスを修正して三個の変数に割り振るっています。<br />
使い終わったら<strong>PF_DISPOSE_HANDLE</strong>でメモリを開放しています。JavaScriptのような便利な言語だとガベレージ機能で勝手に開放してくれますが、C/C++の場合はちゃんと自分で管理しないといけません。<br />
<hr /><br />
テーブルの初期化では、以下の定数を設定しています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_tbl.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_tbl.gif" alt="" width="293" height="100" class="aligncenter size-full wp-image-4325" /></a><br />
<ul>
<li><strong>LV_LOW_OVR</strong><br />
完全に暗い明るさ。２５％に設定。<br />
</li>
<li><strong>LV_MID_TOP</strong><br />
中間職の始まりの明るさ。４０％に設定。<br />
</li>
<li><strong>LV_MID_BTM</strong><br />
中間職の終わりの明るさ。７０％に設定。<br />
</li>
<li><strong>LV_HI_OVR</strong><br />
完全に明るい明るさ。８０％に設定。<br />
</li>
<li><strong>LV_MAX</strong><br />
テーブルの数値の最大値1024に設定。<br />
</li>
</ul>
この数値は特に検証したものではなく、適当に設定してます。<br />
以上の数値を使いテーブルを初期化します。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mktblgif.jpg" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mktblgif-388x399.jpg" alt="" width="388" height="399" class="aligncenter size-medium wp-image-4326" /></a><br />
テーブルの数値は、明るい部分の強度・中間部分の強度・くらい部分の強度をピクセルの明るさの数値全て(8bitの場合256）で計算したものです。<br />
16bit化を考えて定数をパーセントとして設定していますので、8Bitの場合の数値に変換し、適当にリニア補完で計算しています。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/tbl_image.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/tbl_image.png" alt="" width="600" height="301" class="aligncenter size-full wp-image-4369" /></a><br />
<hr /><br />
以下がノイズ処理のメインです。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mr8.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_mr8-650x544.gif" alt="" width="650" height="544" class="aligncenter size-large wp-image-4331" /></a><br />
１２１行目でピクセルの明るさを計算しています。今回はYUV変換のYの値を明るさとしています。この辺のことは<strong>YUV</strong>を検索すれば詳細な解説があるHPを見つけられます。<br />
<br />
124行目でランダムな数値を計算していて、数値は-255から255の間としています。<br />
<br />
１２６行目で明るさの数値をテーブル参照・パラメータの数値から各レベルの強度を計算しています。１３０行目で判定を行っていて、一番強度を強いものを採用しています。<br />
<br />
１３１行目でランダムの数値を130行目で求めた強度で補正しています。<br />
<br />
132行目でランダム処理です。Noise01Testと同じ処理ですが、関数化してシンプルにしてます。<br />
<br />
所々に入っている<strong>F_RAND</strong>関数は、条件分岐によって分岐されてもF_RANDの実行回数が変わらないようにするためのものです、。<br />
<hr /><br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_fin.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise03Lv_fin.png" alt="" width="633" height="420" class="aligncenter size-full wp-image-4336" /></a><br />
<br />
上図がカラーカーブで作成したグラデーションに適応させた物になります。<br />
<br />
<h4>Noise04Lv 　改造</h4>
<strong>Noise03Lv</strong>は解説用に作ったとはいえ、かなりの問題があります。<br />
具体的には、以下の2点があげられます。<br />
<ol>
<li><strong>明るさの閾値が固定でかついい加減</strong><br />
明るさの識別処理はあまりにもシンプルすぎて、実際の使用には耐えられそうに無い。<br />
</li>
<li><strong>ノイズの品質が悪い</strong><br />
基本的に1ピクセルのノイズなので、パラメータを強くするとギザギザしたジャギっぽい質感になり、弱くすると最近のHD画像では消えてしまう可能性がある。<br />
</li>
</ol>
明るさの識別はそれだけで一つの大きなテーマになってしまいますので今回はパスします（パラメータとしてユーザーが調整できるようにするだけでも、十分に実用になると思いますが）<br />
ここでは、ノイズの品質にのみ対処してみます。といっても、複雑なことはしないで、ノイズに軽くぼかし処理を加えるだけの簡単な処理してみます。<br />
<hr /><br />
で、作成したものがこれになります。<br />
<a class="dl" href="http://bry-ful.ddo.jp/BRY/software/ap/04/Noise04Lv.zip">Noise04Lv.zipのダウンロード</a><br />
変更点は、手順を変えてノイズの数値だけを元画像と加算しないでとりあえずアウトプット画像に描画し、ノイズのみにぼかし処理を加え、その後に元画像と合成したことです。<br />
<hr /><br />
まず、ノイズの値を全ピクセル分計算しておきます。<br />
ノイズの値を一時退避としてアウトプット画面に代入しています。値の範囲は-255から255の間となるのでredとgreenの2チャンネル分使って保存しています。値がマイナスなら、redへプラスならgreenへ値を書き込んでおきます。<br />
Noise3Lvでカラーノイズをなくしたのはこの処理を想定していたからです。RGB個別のノイズを行う場合にはもうメモリが足りないので、ノイズの値を小さくするか、作業バッファーを別に作成する必要があります。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_001.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_001.gif" alt="" width="616" height="531" class="aligncenter size-full wp-image-4349" /></a><br />
本来なら、退避用のメモリを確保するところですが、メモリ節約のためこのような処理にしています。<br />
<br />
ちなみに、アウトプット画面はこのような使い方をしても大丈夫ですが、インプット画面ではいろいろと制約があります。インプット画面はAfter Effectsのイメージキャッシュそのものなので、インプット画面に書き込みを行うと、描画がおかしくなります。一応、out_flagsでフラグを設定することで回避できますが、イメージキャッシュを毎回クリアされてしまうので、効率悪くなるので使うなとSDKでは明記されてます。<br />
<hr /><br />
全画面分のノイズの値にぼかし処理を加えます。red/greenチャンネルの値を処理して計算結果をblue/aplhaのチャンネルに書きこみます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_002.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_002.gif" alt="" width="386" height="574" class="aligncenter size-full wp-image-4354" /></a><br />
<br />
ぼかしのアルゴリズムは、ピクセルの周囲９ピクセル分の平均を求める簡単なものですが、一応ピクセルの位置によって重み付けを変えて計算しています。<br />
<br />
また、９ピクセル分ほとんど同じコードが並ぶことになるので、マクロで<strong>NOISE_BLUE</strong>を定義してコーディング量を減らしています。関数化しても同様な事は行えますが、繰り返しが多くなる画像処理ではオーバーヘッドによる速度低下を防ぐ意味でも、マクロ定義は有効です。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_003.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_003.gif" alt="" width="514" height="115" class="aligncenter size-full wp-image-4355" /></a><br />
<hr /><br />
ノイズにぼかしを加えたら、元画像と合成して終了です。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_004.gif" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_004.gif" alt="" width="522" height="300" class="aligncenter size-full wp-image-4360" /></a><br />
After Effectsで動作を確認してみます。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_005.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_005.png" alt="" width="600" height="407" class="aligncenter size-full wp-image-4365" /></a><br />
単純なぼかしですが、見た目はかなり変わりました。Noise03Lvと比較してみると以下のようになります。<br />
<a href="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_006.png" class="sb-img" rel="shadowbox[post-4244];player=img;"><img src="http://ae-users.com/jp/wp-content/uploads/2010/05/Noise04Lv_006.png" alt="" width="593" height="293" class="aligncenter size-full wp-image-4366" /></a><br />
比べてみると、品質を上げたというより、単純にぼかしただけって印象になってますが（プログラムもそのとおり）、HDサイズで作業していて放送・販売時にSDサイズにダウンコンされる場合には、効果があるというかダウンコンによる印象の変化が少なくなると思います。<br />
<h4>次回予告</h4>
次回は、画像の描画を詳しく説明しようと思ってます。<br />
<strong>「簡易スッパッタリング描画フィルタを作ってみよう！」</strong>です。</p>


	タグ : <a href="http://ae-users.com/jp/tag/program/" title="program" rel="tag nofollow">program</a>, <a href="http://ae-users.com/jp/tag/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/" title="プラグイン" rel="tag nofollow">プラグイン</a><span id="addbt">[<a onclick="jQuery('p#addtags').slideDown('fast');jQuery('#addbt').fadeOut('fast');">タグを追加する</a>]</span><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-7/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第６回)　Effectプラグインの構造・ユーザーインターフェース (2010/6月/13)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第６回)　Effectプラグインの構造・ユーザーインターフェース</a> (4)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/06/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-6/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第５回)　スパッタリングプラグインを作成 (2010/6月/04)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第５回)　スパッタリングプラグインを作成</a> (13)</li>
	<li><a href="http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-3/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！ (2010/5月/09)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第２回)　とりあえず作ってみよう！</a> (6)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-2/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう! (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第１回)　SDKをコンパイルしてみよう!</a> (8)</li>
	<li><a href="http://ae-users.com/jp/tutorials/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac/" title="アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回) (2010/5月/05)">アニメ制作者のためのAfterEffectsプラグイン作成入門(第０回)</a> (10)</li>
</ul>

<img src="http://feeds.feedburner.com/~r/aeusers-jp/~4/1Sc3e4pA5uU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ae-users.com/jp/resources/2010/05/%e3%82%a2%e3%83%8b%e3%83%a1%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%aeaftereffects%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e4%bd%9c%e6%88%90%e5%85%a5%e9%96%80%e7%ac%ac-5/</feedburner:origLink></item>
	</channel>
</rss>
