Ψ(`∀´)Ψケケケ と (´・ω・`)ショボーン

AviUtl用のスクリプト配布やBlender、自作PCのパーツやガジェットの情報を配信中

 

【AviUtl】スクリプト制御 第3回【拡張編集】

Edit Category Aviutl > スクリプト(配布物や制御法関係)

20140530031602

forは指定回数だけ処理を繰り返させる構文。

どんなときに使うかというと、決まった回数の繰り返しの処理をさせたいときに使う。上の画像は、一個の図形オブジェクト(円+グラデーションフィルタ)に追加したスクリプト制御にfor構文を書いて描いている。

上の画像は、

t=obj.time
for i=0,10 do
 obj.draw(t*1.4^i,1.5*i*t,t*i*20)
end

という記述の結果。コピペすれば同じようになるはずなので、色々と試してもらえると理解が深まるはず。(拡張描画にして、カメラ制御でグリグリ動かすと、ちゃんと三次元に円が複製されていることがわかるはず)

ちなみにobj.draw()はAviUtl固有の関数で、drawの文字からも窺えるように描画する機能を持っている。座標XYZ以外にも、拡大率や透明度もこの関数から指定できる。とりあえず上の構文の内容としては()内の” , ”の区切りによってx,y,zに対応している。

つまり上のfor文は、tにobj.timeをし、obj.draw()のxにt*1.4^iを入れ、yに1.5*i*tを入れ、zにt*i*20に入れたものを0から10までの計11回繰り返して描画しろと書かれている。

ちなみに↑の内容はまだわからなくてもOK。以下で説明するので……。じゃあ、なんで一番最初に書いたんだ!という話だけど、for構文でどんなことができるか知って欲しかったから。


for構文の基本型

forの基本の型としては、

for i=0,n do

end

というもので、『 i 』は繰り返される数値が入る変数。『 i = 0 』の意味は初期値0、そこから変数 i を上限値『 n 』まで増やしていくという宣言で、『 n 』は上限にする数値(数値を入れた変数でも可)を入れる。

たとえば、初期値が0で、そこから計100回ほど処理を繰り返させたいときは、

for i=0,99 do

end

とすると、『i』は0,1,2,3,4,5......97,98,99と増えていき、100回、do~end間に書かれた処理を繰り返す。ちなみに初期値に『1』を入れて、上限値を『100』としても、同じように100回の処理が繰り返される。

 

ちなみに上限値となる『 n 』に関しては、状況によって変わる変数『 n 』として指定することも可能。たとえば、前処理でテキストオブジェクトの文字数をカウントするようにしておき、それを『 n 』に代入するようにしておけば、『 n 』はそのときどきのテキストオブジェクトの文字数で上限値を変える……という処理ができる。

ただし、処理回数が同じでも結果が異なることもある

20140530021341 20140530021935
スクリプト制御内に記述
『上の円』
for i=0,9 do
 obj.ox=30*i
end
『下の円』
for i=1,10 do
 obj.ox=30*i
end

どちらも10回の処理が行われているけれど、繰り返し処理の中に変数『i(回数によって値が変わる)』があり、初期値が異なるために結果が異なる。
スクリプト制御内に記述
『上の円』
for i=0,9 do
 obj.ox=obj.ox+30
end
『下の円』
for i=1,10 do
 obj.ox=obj.ox+30
end

どちらも10回の処理が行われているけれど、『~』に書かれた処理が初期値に依存しないもののために同じ結果になっている。

for構文は初期値によって結果を変えることができるし、初期値に影響されずに同じ結果を得ることもできる。使い分けができるようになると、if構文同様に非常に便利。

サンプル

テキストオブジェクト、100文字程度※の入力、文字毎に個別のオブジェクトにチェックの状態の状態でスクリプト制御に

t=obj.index  -- 文字毎に個別のオブジェクトで表示された文字数をカウントする変数
for i=0,t do
 obj.alpha=i/99  -- ※の理由
end

20140611224724 20140611224737

上の画像を見ればわかるけれど、1文字目は初期値0から始まっているので見えない。2文字目以降、徐々に色が付いて行き、100文字目(99番目で)で透明度が『1』になり、完全な状態になる。

ちなみにobj.indexは表示速度に値を設定して、obj.mes()関数でその変化を観測すると、一文字表示される毎に値が1増えていくのがわかるのでお試しあれ。

 

同上の条件で、スクリプト制御の内容を少しだけ変えたもの。

t=obj.index
n=obj.num  -- 文字毎に個別のオブジェクトの総文字数
for i=0,t do
obj.alpha=(n-i)/99
end

20140611225748 20140611225811

今度は文字数が増える毎に透明になっていくバージョン。

 

同上の条件で、スクリプト制御の内容を少しだけ変えたもの。

t=obj.index
n=obj.num
for i=0,t do
obj.oz=i*20
obj.rz=i
end

20140611231443 20140611231500
20140611232050 20140611232140

少し内容を変えて、視力検査っぽい感じにしてみたもの。文字の大きさは拡大率ではなくZの値を増やして擬似的に小さく見せている。なので、カメラ制御を使うと、下の段のような感じに見える。

ちなみにこのような処理(カメラ制御下の下段のもの)をスクリプト制御を使わずにやろうとすると、それぞれ文字毎にテキストオブジェクトを配置して、それぞれのZ、回転の値を設定して……ということになる。

この場合、100文字なので100個のオブジェクトでそうした処理をすることになるけれど、スクリプト制御を使い、for構文で書くと一個のテキストオブジェクトで済んでしまう。(ただし、for構文に書いた規則性に縛られるけれど……)

 

 

図形に軌跡を描かせる感じのfor構文。水漏れっぽい感じ。

f=obj.frame
for i=0,f do
dx=i^(1/2)
dy=i*5
obj.draw(dx,dy,0,50/(i+50))
end

20140611234155 20140611234214

とろ~っという感じで垂れるような移動&軌跡っぽいもの。やっていることはページ最上段の図形と同じ。描画間隔を詰めることで、円の点ではなく軌跡(線)にしている。

 

他にも配列にデータを順番に格納したり読み出したりといった使い方やobj.effext()の重ねがけ、obj.draw()を使ったオブジェクトの複数配置、軌跡の描画などにも使える。

注意点としては、繰り返し処理(for、while、repeat等)は重い処理を繰り返したり、処理の終了条件を誤ると、操作を受け付けなくなったり処理が永続してしまったりすることがあること。

 

 

 

関連記事
スポンサーサイト
Community テーマ - フリーソフト解説  ジャンル - コンピュータ

Newer Entry【Blender】ウェイトペイントによる髪や毛の生やし方【覚書】

Older Entry【雑記】2014年ブラジルW杯 日程&放送時間【自分用】

Comments


Trackbacks

 
08 2017
SUN MON TUE WED THU FRI SAT
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

07 09


 
 
PLAY ARTS改 BATMAN™: ARKHAM KNIGHT バットマン™
PLAY ARTS改 BATMAN™: ARKHAM KNIGHT バットマン™ PVC製 塗装済み可動フィギュア
 
注意事項

紹介されているフリーソフト、スクリプトをインストールするときは、フリーソフトの説明および注意事項を熟読し、自己責任においてご利用下さい。



記事:Amazonギフト券の期限など
特価情報:各ジャンル・タイムセール

 
ワンパンマン 戦慄のタツマキ 1/8スケール PVC製 塗装済み完成品フィギュア
 
配布中のAviUtl用のZIPファイルがDLできない件
どうもzipを置いていたサイトを単なるファイル置き場にしてしまったのが悪かったようで、直接ブログからダウンロードできなくなってしまったようです。 ファイルを保存していた『ultramarinepig.web.fc2.com』の

トップページ(リンク)

に各DLLへのリンクを貼ったリストを作りましたので、ブログのDLの項目からダウンロードできない場合はそちらからダウンロードしてください。

ファイル名はブログのDLリンクに表示されるものと同じですので、それを選択してもらえれば……お手数ですが、よろしくお願いします。m(_ _)m
 
オススメ

Amazonで荒川 弘の銀の匙 Silver Spoon 14 (少年サンデーコミックス)。アマゾンならポイント還元本が多数。荒川 弘作品ほか、お急ぎ便対象商品は当日お届けも可能。また銀の匙 Silver Spoon 14 (少年サンデーコミックス)もアマゾン配送商品なら通常配送無料。銀の匙 Silver Spoon 14



ASUS ZenFone3 SIMフリースマートフォン (ゴールド/5.2インチ)【日本正規代理店品】(オクタコアCPU/3GB/32GB/DSDS & au VoLTE対応)ZE520KL-GD32S3/Aほか家電&カメラ, が勢ぞろい。ランキング、レビューも充実。アマゾンなら最短当日配送。ASUS ZenFone3 SIMフリースマートフォン (ゴールド/5.2インチ)【日本正規代理店品】(オクタコアCPU/3GB/32GB/DSDS & au VoLTE対応)














 
 
人気記事
 
 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
 
 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
 
動画編集・3DCG向け自作PC構成2017夏(Ryzen R7 第一世代)
8コア16スレッドのAMD Ryzen R7 1700で組むコスパの良い自作PC。

注意点としては現在発売されているRyzenはAPUではなくCPUなので、GPUが必須であること。また、CPUクーラーはAM4(Ryzenの規格)に未対応のものがある(下記のH60はOK)ため、メーカーの公式サイトで対応状況を要確認。

現在、未対応でもオプションのプラケットが発売されることもあるようなので、今使っているCPUクーラーが使えないとは限らないことも留意。

(AM4 Ryzen対応)



記事:CPUの『殻割り』に使うグリスの候補【OC 殻割り】



 
オススメのフリーソフト
ブラウザ(お好みで。複数可)
Firefox
Opera
Sleipnir
ファイアウォール(必須)
Comodo Internet Security
ZoneAlarm
Outpost Security Suite FREE
アンチウィルスソフト(必須)
avast! 4 Home Edition
avira 無料版
AVG Anti-Virus Free Edition
レジストリ保護&クリーナー(必須)
Spybot-S&D
CCleaner
圧縮・解凍ソフト(必須)
Lhaplus
7-Zip
オフィスソフト
OpenOffice.org
LibreOffice
TeraPad
メーラー
Thunderbird
オンライン・コミュニケーション・ツール
Open Live Writer
Skype
Windows Live メッセンジャー / MSN メッセンジャー
Backup & PartitionEditor
EaseUS Todo Backup Free
EaseUS Partition Master
コーデックパック(どちらか)
K-Lite Codec Pack
 
Combined Community Codec Pack
各エンコーダ&デコーダ、スプリッタ(競合注意)
ffdshow
Xvid Codec
qaac Codec
x264vfw
Haali Media Splitter
LAV Splitter
webm
Google VP8 Video For Windows codec
動画音楽再生プレーヤー(複数可)
MPC Home Cinema
GOM PLAYER
SMPlayer
VLC media player
動画加工編集ソフト
Windows ムービー メーカー
Windows Media エンコーダ
MP4Cam2AVI
Any Video Converter フリー版
CamStudio
SEffect
x264vfw
AviUtl
AviUtlのプラグイン
MediaCoder
Nero AAC Codec
Avidemux.org
真空波動研 Lite
えこでこツール
XMedia Recode
グラフィックソフト
Blender
Inkscape
GIMP
PlayMemories Home
FireAlpaca
HTML&ブログ制作
ez-HTML
Windows Live Writer
FFFTP
WinShot
Aptana | Studio
AviUtl
AviUtlの基礎構成ファイルDL
その他、色々と……
DataRecovery
CPU-Z
CrystalDiskMark
CrystalDiskInfo
 
 
QRコード
QRコード
 
プロフィール

Ψ(`∀´)Ψケケケ

Author:Ψ(`∀´)Ψケケケ
現在はAviUtl用の駄スクリプトを書いて配布中。使用は自己責任でお願いします。

 
 


ARCHIVE RSS