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

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

 

【AviUtl】スクリプト制御 覚書1【拡張編集】

Edit Category Aviutlと拡張編集プラグイン > スクリプト(自作配布物と解説)

20140528202915

色々とハマる場面があったので、忘れないように色々と覚書。主に自分用です。

ちなみに確かにAviUtlのスクリプト制御の覚書ではあるのだけど、その大部分が(スクリプト制御で使われる)Luaの使い方に対する覚書的なもの……のような気がしないでもない。(; ・`ω・´)

ちなみに上の画像のta~tdは見切れているけれど、テキストオブジェクトにobj.mes()で表示。スクリプト制御に入力しても、すぐに反映されない場合は改行してみたり、タイムラインを移動してみたり、F5で更新してみたりするといいかも……。


構文

if()then...elseif()then ... endのelseif。なんで、else ifじゃないのかと小一時間……。

repeat...until条件式。条件式が偽のあいだ、繰り返す。do~while(条件式) の反対的なもの。

テキスト関係

『文字列の結合』
str=”a” + “b” ......だと思うやん、ちゃうねん。×
str=”a”..”b”  こっちが正解。◯

なまじ他の言語に触れていると一番最初にハマるところなんじゃないかと。

 

『入力される文字数と文字数制限』
m_count=60 --最大入力数。半角*2で全角。つまり”ああああ”の長さは8。
moji = “入力されるテキストの文字列” 実際は半角全角(文字列の奇数、偶数)の判定必要。

if(string.len(moji)<=m_count)then
 入力される文字列が最大文字数以内の時の処理。
 表示や拡大など。
elseif(m_count < string.len(moji))then
 入力される文字列が最大文字数を超える時の処理。
 表示や改行、縮小など。
end

更にobj.screen_wやobj.screen_hを使って画面の大きさによる判定も行えば尚可。そのときは『文字のサイズ、文字数、字間』、『文字のサイズ、行数、行間』といった要素も忘れてはいけない。

行数nは、
n=math.ceil(string.len(moji)/m_count)で算出。

 

『テキストの表示』

obj.load(“text”,moji,speed,time)   –- このspeedとtimeは余り使わないかも……。
obj.setfont(name,moji_size,type,col1,col2) – type:0~4
obj.draw(dx,dy,dz)

for i=0,n(行数) do … endで使うときは、

dy=(i*moji_size*ls)-(n*moji_size*ls)/2-moji_size*ls/2 --中心位置、lsは行間。
obj.draw(0,dy,0)

一応、中心に並ぶけれど、中心から奇数行目がぼやける(AviUtlの画像として扱われるため?)ので、奇数行だけ0.5分ズラすような追加処理が必要?

dy=math.floor((i*moji_size*ls)-(n*moji_size*ls)/2-v0*ls/2)+0.1*i

のほうがボヤけなかった……。

 

『文字の分割というか抽出時の注意』

newMoji = string.sub(“あいうえおかきくけこ”,3,9)
→ 3文字目から9文字目まで表示
→ いうえ・

全角は2文字で1文字なので、3文字目だと『い』の半ばから『え』の半ばまでということになるために文字化け発生。

 

newMoji = string.sub("アいうえおかきくけこ",2,8)
→ 2文字目から8文字目まで
→ いうえ・

全角は2文字で1文字なので、文字化け発生。各文字に対する番号は、『ア(1)い(2,3)う(4,5)え(6,7)お(8,9)き(10,11)く(12,13)け(14,15)こ(16,17)』という感じ。

 

不定の文字列を読み込み、文字列を分割したいときは、分割したい先頭や半ばに半角があるとき、後尾にあるときで処理を変える必要あり?

■:全角、□:半角
□■■■■■■■■
■■■□■■■■■
■■■■■■■■□

 

『文字化けの有無の判定』
if(moji%2 == 0)then
 余りが0(偶数。半角なしか偶数個)のときの処理
elseif(moji%2 ~= 0)then --『~=』。『!=』だと勘違いしてハマった。orz
 余りが0ではない(奇数。半角有り、奇数個)のときの処理
end

とりあえずの処理なので、不定の文字列を分割し、配列に格納しているようなときは、分割方法(抽出方法)に一考が必要。→ 要試行錯誤。

obj.timeを使うときのポイント

obj.timeはオブジェクトの経過時間を数値で表す。なので、プロジェクトファイルを30fpsで作った場合、obj.timeは1フレームごとに0...,0.03333...,0.06666....,0.099999....という感じで増えていく。そのため、時間経過で色々とやりたいときにそのままobj.timeを使うと、小数点以下の値の影響を受けてしまう。

単純に配列等で時間毎に1...2...3...と増やしていきたい(小数点以下の影響を受けたくない)ときは、

math.ceil(obj.time) --小数点の切り上げ
math.floor(obj.time) --小数点の切り下げ

のどちらかの関数を使う。カウントさせたいときは『math.floor(obj.time)』のほうが無難っぽいし、段落分けのように必ず1以上の数字が必要なときは『math.ceil(moji/saidai_moji)』のような感じで切り上げが望ましい感じ。

下の画像は、上の値がmath.ceil(obj.time)、下の値がmath.floor(obj.time)の違い。どちらも小数点を省く関数だけど、移り変わりの推移が違う。またプロジェクトは30fps。

20140528204827 1フレーム目

どちらも初期は0。
20140528204905 3フレーム目。

math.ceilのほうが1になる。
20140528205028 32フレーム目。

math.floorも1になる。
20140528205103 33フレーム目。

math.ceilのほうが2になる。

ちょっとした違いだけど、時間経過で配列を参照させるような場合は、初期値の関係的にやっぱりmath.floor(obj.time)。

スピードの変更・調節

tb0=obj.track0 --トラックバーの一番上 1,100,10,1という感じ。

『パターン1』
t=obj.time --1秒ごとに1増える変数。
speed=t/tb0 --tb0秒ごとに1増える。ただし、このままだと小数点以下の影響あり。

『パターン2』
t=math.floor(obj.time) --1秒ごとに1増える変数+切り下げ。場合によってはこれに+1する。
speed=t/tb0 --tb0秒ごとに1増える。

-1から1までの変数取得

--track0:-360,360,0,0.01という感じ。

tb0=obj.track0
r=tb0*math.pi/180
v=math.cos(r)

これでトラックバーから、あるときはプラス、あるときはマイナス、あるときは上、あるときは下、またあるときは右、またあるときは左、あるときは真、あるときは偽など結果や判定を入れ替えることができる。

色情報の扱い

hogehoge.anmでは、--dialog:color/col,col=0xffffff;

この記述によって簡単に色情報を取得できるようになるものの、使用可能な色の形式が各々で違うために機能に見合った形式にする必要がある。

RBGのときは、
r,b,g=RBG(col)

HSVのときは、
h,s,v=HSV(col)

また、これらは相互変換可能とのことで、

col=RGB(r,b,g)
col=HSV(h,s,v)

とすることもできる。

問題は、YCbCr。RBGとHSVはcolを経由して、RBG ←→ col ←→ HSVという感じで変換できるけど、YCbCrは変換する関数が用意されていない。なので、変換したいときは、自分で変換できるプログラムを書くしかないのだけど、

引用元:YUV - Wikipedia

YUV (PAL, SECAM)
Y = 0.299 × R + 0.587 × G + 0.114 × B
U = -0.14713 × R - 0.28886 × G + 0.436 × B
V = 0.615 × R - 0.51499 × G - 0.10001 × B

ITU-R BT.601 / ITU-R BT.709 (1250/50/2:1)
Y = 0.299 × R + 0.587 × G + 0.114 × B
Cb = -0.168736 × R - 0.331264 × G + 0.5 × B
Cr = 0.5 × R - 0.418688 × G - 0.081312 × B

ITU-R BT.709 (1125/60/2:1)
Y = 0.2126 × R + 0.7152 × G + 0.0722 × B
Cb = -0.114572 × R - 0.385428 × G + 0.5 × B
Cr = 0.5 × R - 0.454153 × G - 0.045847 × B

 

これらの式を使って計算しただけだと、上手く行かなかった。string.format()を使って16進数で表現し、文字列にしてその文字列を入れ替える必要があるっぽい。

この他にもYCbCr、RBG変換等の語句で検索をかけると、数値的な誤差をどうするのかとか悩みが多くなる……。orz

obj.effect()関数の呼び出し関係

obj.effect()でAviUtlのフィルタ効果を呼び出すときの予約語的なもの。

詳細は使いたい各フィルタを付加したオブジェクトをエクスポートして、エクスポートしたファイル(hogehoge.exo)をテキストエディタ等で開き、対応項目を確認する。

 

  • blend:グラデーション等の合成モードなどの指定。0が標準で、1が加算で……という感じ。
  • mode:ノイズのTypeなど。
  • type:図形等。フィルタ等によって異なる。
  • color_yc:カラーキーやクロマキーなどで使われる。上述したYCbCr関係の変換が必要。

 

長い名称の項目は大抵、ダイアログの表示とは違うので注意が必要。面倒臭がると、何気にハマる部分。

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

Newer Entry【blender】日本語のテキストオブジェクトの作り方【覚書】

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






Comments


 
07 2018
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 - - - -

06 08


 
 
ねんどろいど アイドリッシュセブン 四葉環
ねんどろいど アイドリッシュセブン 四葉環 ノンスケール ABS&PVC製 塗装済み可動フィギュア
 
注意事項

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



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

 
オススメA

[まとめ買い] ゴールデンカムイ
[まとめ買い] ゴールデンカムイ


Oneplus 5T (A5010)6.01 inch 2000万画素 +1600万画素 デュアルレンズカメラ 6GB/64GB RAM CPU Snapdragon 835 LTE 4G+ sim フリー日本語対応
Oneplus 5T (A5010)6.01 inch 2000万画素 +1600万画素 デュアルレンズカメラ 6GB/64GB RAM CPU Snapdragon 835 LTE 4G+ sim フリー日本語対応


E-PRANCE ノートパソコン 冷却パッド 冷却台 ノートPCクーラー クール 超静音 USBポート2口 LED搭載 USB接続 17インチ型まで対応4ファン (ブルー)
E-PRANCE ノートパソコン 冷却パッド 冷却台 ノートPCクーラー クール 超静音 USBポート2口 LED搭載 USB接続 17インチ型まで対応4ファン (ブルー)


KYOKA スマホ リング ホールドリング 薄型 スタンド機能 落下防止 車載ホルダー 360回転 iPhone/Android各種他対応 (ブラック)
KYOKA スマホ リング ホールドリング 薄型 スタンド機能 落下防止 車載ホルダー 360回転 iPhone/Android各種他対応 (ブラック)



乃木坂46 衛藤美彩 写真集 話を聞こうか。 封入特典 特別付録 スペシャル ポストカード 水着
乃木坂46 衛藤美彩 写真集 話を聞こうか。 封入特典 特別付録 スペシャル ポストカード 水着


【Amazon.co.jp限定】Transcend microSDXCカード 64GB Class10 UHS-I対応 Nintendo Switch 動作確認済 TS64GUSDU1PE (FFP)
【Amazon.co.jp限定】Transcend microSDXCカード 64GB Class10 UHS-I対応 Nintendo Switch 動作確認済 TS64GUSDU1PE (FFP)


 Ewin ミニ bluetooth キーボード Mini Bluetooth keyboard タッチパッド搭載 ワイヤレス 小型 キーボード マウス 一体型 無線 USB レシーバー バックライト付き 使用便利 【日本語説明書と一年の保証付き】ブラック
Ewin ミニ bluetooth キーボード Mini Bluetooth keyboard タッチパッド搭載 ワイヤレス 小型 キーボード マウス 一体型 無線 USB レシーバー バックライト付き 使用便利 【日本語説明書と一年の保証付き】ブラック


【Amazon.co.jp限定】西野七瀬1stフォトブック『わたしのこと』 Amazon限定カバーVer.
【Amazon.co.jp限定】西野七瀬1stフォトブック『わたしのこと』 Amazon限定カバーVer.


【国内正規品】密閉型 ゲーミングヘッドセット SteelSeries Arctis 5 Black 61443
【国内正規品】密閉型 ゲーミングヘッドセット SteelSeries Arctis 5 Black 61443


AVerMedia Live Gamer Portable 2 PLUS AVT-C878 PLUS [4Kパススルー対応 ゲームの録画・ライブ配信用キャプチャーデバイス] DV478
AVerMedia Live Gamer Portable 2 PLUS AVT-C878 PLUS [4Kパススルー対応 ゲームの録画・ライブ配信用キャプチャーデバイス] DV478


零化域のミッシングリンク
シュタインズゲート・ゼロ 第一話:零化域のミッシングリンク


アサヒ ウィルキンソン タンサン 強炭酸水 500ml×24本
アサヒ ウィルキンソン タンサン 強炭酸水 500ml×24本


(ヘインズ)Hanes Tシャツ ジャパンフィット クルーネック 2枚組 (最新モデル) H5110 010 ホワイト M
(ヘインズ)Hanes Tシャツ ジャパンフィット クルーネック 2枚組 (最新モデル) H5110 010 ホワイト M


 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
"figma ARMS NOTE バイオニック・ジョシコウセイ
figma ARMS NOTE バイオニック・ジョシコウセイ ノンスケール ABS&PVC製 塗装済み可動フィギュア
 
 
DCコミックス コレクション バットマン 1/6 PVC
ファンタジーフィギュアギャラリー DCコミックス コレクション バットマン 1/6 PVC
 
 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
 
【2018年夏】動画編集、3DCG向け高コスパ自作PC構成
新世代Ryzenで組むコスパの優秀な構成。ただし、まだメモリとGPUが高騰中なのが玉に瑕。SSDは値下がり気味で吉。

AMD CPU Ryzen 7 2700X with Wraith Prism cooler YD270XBGAFBOX
AMD CPU Ryzen 7 2700X with Wraith Prism cooler YD270XBGAFBOX


MSI X470 GAMING PLUS ATX ゲーミングマザーボード [AMD X470チップセット搭載] MB4388
MSI X470 GAMING PLUS ATX ゲーミングマザーボード [AMD X470チップセット搭載] MB4388


G.Skill F4-3200C14D-16GFX (DDR4-3200 CL14 8GB×2) AMD Ryzen用メモリ
G.Skill F4-3200C14D-16GFX (DDR4-3200 CL14 8GB×2) AMD Ryzen用メモリ


玄人志向 ビデオカード GEFORCE GTX 1060搭載 GF-GTX1060-E6GB/OC2/DF
玄人志向 ビデオカード GEFORCE GTX 1060搭載 GF-GTX1060-E6GB/OC2/DF


WD 内蔵SSD M.2-2280/500GB/WD NVMe Black/PCIe Gen3 NVMe/5年保証/WDS500G2X0C
WD 内蔵SSD M.2-2280/500GB/WD NVMe Black/PCIe Gen3 NVMe/5年保証/WDS500G2X0C


WD HDD 内蔵ハードディスク 3.5インチ 6TB WD Blue WD60EZRZ-RT SATA3.0 5400rpm 2年保証
WD HDD 内蔵ハードディスク 3.5インチ 6TB WD Blue WD60EZRZ-RT SATA3.0 5400rpm 2年保証


オウルテック 10年間新品交換保証 80PLUS GOLD取得 コンパクトサイズ ATX 電源 ユニット フルモジュラー Skylake対応 Seasonic FOCUS+ シリーズ 650W
オウルテック 10年間新品交換保証 80PLUS GOLD取得 コンパクトサイズ ATX 電源 ユニット フルモジュラー Skylake対応 Seasonic FOCUS+ シリーズ 650W


サイズ オリジナルCPUクーラー 虎徹 Mark II
サイズ オリジナルCPUクーラー 虎徹 Mark II


I-O DATA Blu-ray ブルーレイ BDドライブ mac 外付け ポータブル USB3.0/バスパワー対応 薄型モデル EX-BD03K
I-O DATA Blu-ray ブルーレイ BDドライブ mac 外付け ポータブル USB3.0/バスパワー対応 薄型モデル EX-BD03K


Thermaltake VIEW 31 TG RGB ミドルタワーPCケース CS6814 CA-1H8-00M1WN-01
Thermaltake VIEW 31 TG RGB ミドルタワーPCケース CS6814 CA-1H8-00M1WN-01




I-O DATA モニター ディスプレイ 31.5型 EX-LDQ321DB(WQHD[2560×1440]/広視野角/DisplayPort/スピーカー付/3年保証/土日もサポート)
I-O DATA モニター ディスプレイ 31.5型 EX-LDQ321DB(WQHD[2560×1440]/広視野角/DisplayPort/スピーカー付/3年保証/土日もサポート)


Razer Naga Trinity サイドボタンを2/7/12ボタンに付け替え可能 MMO/MOBAゲーミングマウス 【日本正規代理店保証品】 RZ01-02410100-R3M1
Razer Naga Trinity サイドボタンを2/7/12ボタンに付け替え可能 MMO/MOBAゲーミングマウス 【日本正規代理店保証品】 RZ01-02410100-R3M1


センチュリー バックライトLED機能搭載 CHERRYメカニカルキーボード 63キー/日本語配列 『BLACK QUEEN 茶軸』 CK-63CMB-BWJP1
センチュリー バックライトLED機能搭載 CHERRYメカニカルキーボード 63キー/日本語配列 『BLACK QUEEN 茶軸』 CK-63CMB-BWJP1


Microsoft Windows 10 Home Fall Creators Update適用 32bit/64bit 日本語版 (最新) |パッケージ版
Microsoft Windows 10 Home Fall Creators Update適用 32bit/64bit 日本語版 (最新) |パッケージ版


ドイツ Thermal Grizzly社製 オーバークロック用特別設計高性能熱伝導グリス Kryonaut 1g
ドイツ Thermal Grizzly社製 オーバークロック用特別設計高性能熱伝導グリス Kryonaut 1g




 
オススメのフリーソフト
■ブラウザ(お好みで。複数可)
Chrome
Firefox
Vivaldi
Sleipnir
Opera
■ファイアウォール(必須)
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
Mery
TeraPad
■メーラー
Thunderbird
■オンライン・コミュニケーション・ツール
Open Live Writer
Skype
Windows Live メッセンジャー / MSN メッセンジャー
■Backup & PartitionEditor
AOMEI バックアップ、クローン、パーティション管理
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
XnConvert
■HTML&ブログ制作
ez-HTML
XnConvert(画像一括処理)
Open Live Writer
FFFTP
WinShot
Aptana | Studio
■AviUtl
AviUtlの基礎構成ファイルDL
■その他、色々と……
DataRecovery
CPU-Z
CrystalDiskMark
CrystalDiskInfo
 
 
QRコード
QRコード
 
プロフィール

(o・ω・o)

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

 
 


ARCHIVE RSS