ScriptFunctions のバックアップ差分(No.13)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*スクリプト関数: [#iea63ce3]

これらの関数の入出力は、クリップではなく、スクリプトの中で使われる別の変数です。

#contents

**数値関数: [#u1ee7bc9]

#hr

 Floor(float)

floatからintへ変換します(小数点以下の端数を切り捨て)。

''例:''

 Floor(1.2) = 1 
 Floor(1.6) = 1 
 Floor(-1.2) = -2 
 Floor(-1.6) = -2 

#hr

 Ceil(float)

floatからintへ変換します(小数点以下の端数を切り上げ)。

''例:''

 Ceil(1.2) = 2.0 
 Ceil(1.6) = 2.0 
 Ceil(-1.2) = -1 
 Ceil(-1.6) = -1 

#hr

 Round(float)

floatからintへ変換します(最も近い整数に四捨五入する)。

''例:''

 Round(1.2) = 1 
 Round(1.6) = 2 
 Round(-1.2) = -1 
 Round(-1.6) = -2 

#hr

 Sin(float) v2

#hr

 Cos(float) v2

#hr

 Pi() v2

#hr

 Log(float) v2

#hr

 Exp(float) v2

#hr

 Pow(float base, float power) v2

#hr

 Sqrt(float) v2

#hr

 Abs(float or integer) v2.07

絶対値を返します(floatにはfloatを、整数には整数を返す)。

''例:''

 Abs(-3.8) = 3.8 

#hr

 Sign(float) v2.07

値の符号を返します(1、0、または-1)。

''例:''

 Sign(-3.5) = -1 
 Sign(3.5) = 1 
 Sign(0) = 0 

#hr

 Int(float) v2.07

floatからintへ変換します(0のほうへ丸める)。

''例:''

 Int(1.2) = 1 
 Int(1.6) = 1 
 Int(-1.2) = -1 
 Int(-1.6) = -1 

#hr

 Frac(float) v2.07

与えられた値の小数点以下の端数分を返します。

''例:''

 Frac(3.7) = 0.7 
 Frac(-1.8) = -0.8 

#hr

 Float(int) v2.07

intをfloatへ変換します。

#hr

 Value(string) v2.07

文字列を数値へ変換します。

#hr

 HexValue(string) v2.07

文字列を16進数の値として評価します。

''例:''

 HexValue ("FF00") = 65280

#hr
&aname(rand);
 Rand([int max] [, bool scale] [, bool seed]) v2.07

ランダムな整数値を返します。すべてのパラメータはオプションです。maxは最大値+1を設定し(デフォルト 32768)、負の結果のために負の値を設定することができます。scaledモードかmodulus((訳者註: 係数の意。)モードのどちらかで処理します(デフォルトは、maxの絶対値が32768より大きいならscale=true、それ以外はscale=false)。scaledモードは、内部のランダム数ジェネレータの値を最大値(max)にあわせて調整します。一方、modulusモード(scale=false)は、整数の割り算により、最大値でランダムジェネレータの値を割ったときの余りを使用します。最大値が小さいときほど、modulusモードが最適です。seed=trueを使うと、ランダム数ジェネレータに現在の時間をシード(seed)します。デフォルトではfalseとなり、おそらくseed=trueを使用する必要はありません。しかし、万一に備えて、seedパラメータは存在します。一般的に、この関数は、ランダムなクリップ用のSelect関数と一緒に使用されます。
ランダムな整数値を返します。すべてのパラメータはオプションです。maxは最大値+1を設定し(デフォルト 32768)、負の結果のために負の値を設定することができます。scaledモードかmodulus((訳者註: 係数の意。))モードのどちらかで処理します(デフォルトは、maxの絶対値が32768より大きいならscale=true、それ以外はscale=false)。scaledモードは、内部のランダム数ジェネレータの値を最大値(max)にあわせて調整します。一方、modulusモード(scale=false)は、整数の割り算により、最大値でランダムジェネレータの値を割ったときの余りを使用します。最大値が小さいときほど、modulusモードが最適です。seed=trueを使うと、ランダム数ジェネレータに現在の時間をシード(seed)します。デフォルトではfalseとなり、おそらくseed=trueを使用する必要はありません。しかし、万一に備えて、seedパラメータは存在します。一般的に、この関数は、ランダムなクリップ用のSelect関数と一緒に使用されます。

''例:''

 Select(Rand(5), clip1, clip2, clip3, clip4, clip5) 

#hr

 Spline(float X, x1, y1, x2, y2, .... [, bool cubic]) v2.51

コントロールポイント(制御点)x1/y1などを使って、Yの値をX点で補間します。x/yのペアは、少なくとも2つ以上でなければなりません。補間は、3次(cubic)補間(結果はスプライン)か線形(linear)補間(結果は多角形(polygon))になります。

''例:''

 Spline(5, 0, 0, 10, 10, 20, 0, false) = 5 
 Spline(5, 0, 0, 10, 10, 20, 0, true) = 7

#hr

**文字列関数: [#s1b75b61]

#hr

 LCase(string) v2.07

stringを小文字で返します。

''例:''

 LCase("AviSynth") = "avisynth" 

#hr

 UCase(string) v2.07

stringを大文字で返します。

''例:''

 UCase("AviSynth") = "AVISYNTH" 

#hr

 StrLen(string) v2.07

stringの長さを返します。

''例:''

 StrLen("AviSynth") = 8 

#hr

 RevStr(string) v2.07

stringを逆さまに返します。

''例:''

 RevStr("AviSynth") = "htnySivA" 

#hr

 LeftStr(string, int) v2.07

文字列の最初のint個を返します。

''例:''

 LeftStr("AviSynth", 3) = "Avi" 

#hr

 RightStr(string, int) v2.07

文字列の最後のint個を返します。

''例:''

 LeftStr("AviSynth", 5) = "Synth" 

#hr

 MidStr(string, int pos [, int length]) v2.07

pos番目の文字から、オプションで指定するlength個分、またはstringの最後までのサブストリング(部分文字列)を返します。pos=1は、stringの先頭を明示します。

''例:''

 MidStr("AviSynth", 3, 2) = "iS" 

#hr

 FindStr(string, substring) v2.07

stirngの中におけるsubstringのポジションを返します。見つからないなら、0を返します。

''例:''

 Findstr("AviSynth", "syn") = 4 

#hr

 String(float / int) v2

数字をstringに変換します。

''例:''

 Subtitle( "Clip height is " + String(last.height) ) 

#hr

 Chr(int) v2.51

アスキー文字を返します。


''例:''

 Chr(34) # 引用文字を返します。

#hr

 Time(string) v2.51

stringによって定義されたフォーマットで、現在のシステム時間に関するstringを返します。出力フォーマットのためのコード:

%a Abbreviated weekday name
%a 短縮された曜日名

%A Full weekday name
%A 完全な曜日名

%b Abbreviated month name
%b 短縮された月の名前

%B Full month name
%B 完全な月の名前

%c Date and time representation appropriate for locale
%c ロケールに適した日時の表示

%d Day of month as decimal number (01 ? 31)
%d 10進数で、その月の何日か (01 - 31)

%H Hour in 24-hour format (00 ? 23)
%H 24時間方式における時間 (00 - 23)

%I Hour in 12-hour format (01 ? 12)
%I 12時間方式における時間 (01 - 12)

%j Day of year as decimal number (001 ? 366)
%j 10進数で、その年の何日目か (001 - 366)

%m Month as decimal number (01 ? 12)
%m 10進数で、何月か (01 - 12)

%M Minute as decimal number (00 ? 59)
%M 10進数で、何分か (00 - 59)

%p Current locale?s A.M./P.M. indicator for 12-hour clock
%p カレントロケールの、12時間時計用のA.M./P.M(午前/午後)表示器

%S Second as decimal number (00 ? 59)
%S 10進法で、何秒か (00 - 59)

%U Week of year as decimal number, with Sunday as first day of week (00 ? 53)
%U 日曜日を週の始まりとしたときに、10進法で、その年の何週目か (00 - 53)

%w Weekday as decimal number (0 ? 6; Sunday is 0)
%w 10進法としての曜日 (0 - 6; 日曜日は0)

%W Week of year as decimal number, with Monday as first day of week (00 ? 53)
%W 月曜日を週の始まりとしたときに、10進法で、その年の何週目か (00 - 53)

%x Date representation for current locale
%x カレントロケール用の日にちの表示

%X Time representation for current locale
%X カレントロケール用の時間表示

%y Year without century, as decimal number (00 ? 99)
%y 10進法で、世紀なしの年数 (00 - 99)

%YYear with century, as decimal number
%Y 10進法で、世紀を伴った年数

%z, %Z Time-zone name or abbreviation; no characters if time zone is unknown
%z, %Z タイムゾーン名、または、その省略形; タイムゾーンが不明なら、文字なし

%% Percent sign
%% パーセント記号

The # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows:
#フラグは、どんなフォーマットコードの前につけてもかまいません。その場合、フォーマットコードの意味は、以下のように変更されます:

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% # flag is ignored.
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% #フラグは無視されます。

%#c Long date and time representation, appropriate for current locale. For example: “Tuesday, March 14, 1995, 12:41:29?.
%#c カレントロケールに適した、長文の日時表示。例: "Tuesday, March 14, 1995, 12:41:29"。

%#x Long date representation, appropriate to current locale. For example: “Tuesday, March 14, 1995?.
%#x カレントロケールに適した、長文の日にち表示。例: "Tuesday, March 14, 1995"。

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y Remove leading zeros (if any).
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y 先頭の0を削除(もしあるなら)。

#hr

**バージョンチェック関数: [#k3d35a2c]

#hr

 VersionNumber() v2.07

AviSynthのバージョンナンバーをfloatとして返します。

''例:''

 VersionNumber() = 2.07 

#hr

 VersionString() v2.07

AviSynthのバージョン情報をstringとして返します(Versionフィルタで使用される最初の行)。

''例:''

 VersionString() = "AviSynth 2.08 (avisynth.org) 22 nov. 2002"

#hr

**変数型およびファイルをチェックする関数: [#sb873dca]

 IsBool(var)

 IsInt(var)

 IsFloat(var)

 IsString(var)

 IsClip(var)

 Exist(filename) v2.07

明記されたファイルが存在するかどうかをチェックします。

 Defined(var)

: varが定義されているならtrueを、さもなければfalseを返します。

 Default(x,d)

: Defined(x)ならxを、さもなければdを返します。

註: DefinedとDefaultは、主として、ユーザー定義関数においてオプションで宣言される変数を扱うことを目的として作られており、オプションの変数が渡されているかどうかを決定するために使われます。完全に宣言されていない変数は、エラーを生成するでしょう。より詳しい情報に関しては、このセクションの"[[ユーザー定義関数>#user_defined_functions]]"を、後で見てください。

 Eval(string)

 Apply(func-string, arg, ...)

: Eval("f(x)")は、Apply("f", x))に相当します。

'''Evalは、以下のように使うことができます:'''

 settings = "352, 288"
 
 Eval( "BicubicResize(" + settings + ")" )

'''別のスクリプトのテキストをインポートすることができます:'''

 Import (filename)

: 別のAviSynthスクリプトの内容を評価(eval)します。

'''エラーリポートとユーザー定義関数への不正な入力をキャッチするために、以下の関数を使うことができます(bool=falseなら、error-message):'''

 Assert (bool, string error-message)

エラーが発生する''であろう''かどうかをチェックするための関数があります:

 Try {
 
 AviSource("file.avi")
 }
 
 catch(err_msg) {
 
 Blackness.Subtitle(err_msg)
 
 }

**制御関数: [#u1280d7c]

 SetMemoryMax(int)

: AviSynthが使用する最大メモリを設定します(MB単位)。 v2

いくつかのバージョンにおいては、デフォルトの設定が5MBと、かなり低く設定されています。もし、何らかの問題(たとえば、処理速度が遅いなど)に遭遇したなら、この値を少なくとも32MBに設定してみてください。

 SetWorkingDir(string)
: AviSourceやLoadPluginなどのフィルタが関連付けられるディレクトリを設定します。これは、おもに、ソースクリップなどを簡単に読み込むためのものです。プラグインのオートローディングには影響を与えません。戻り値: 成功なら0、さもなければ-1。 v2

***条件演算: [#y19f2b02]

 [var=]boolean式 ? trueの場合の値か演算 : その他の場合の値か演算

#hr

 nop()
: おもに、(上の条件式で)その他の場合の演算が望まれないときに、代わりにヌルの結果を返します。 v2.07~
(nopは、おもに、[[Import]]やLoadPluginのような、変数なし / クリップなしの関数に対する形で使用されます。)

''例:''

 versionnumber<2.07 ? import("patches.avs") : nop()

#hr

 Select(int index, val item0 [,item1...]) <v2.07>

item0からitem<n-1>のitemを、indexによって選択((訳者註: index=0なら、item0。))します(itemの数には、特別な制限はありません)。itemは、clipを含む、あらゆる変数型((訳者註: ScriptVariablesを参照。))をとることができます。技術的には、アイテムの型が一致しなくてもかまいませんが、しかし、それ(型が一致しないアイテムを指定すること)は問題となりうるでしょう。同じスクリプトの中で、ランダムにクリップを生成したり、さまざまなバージョン(たとえば、title, preview, main、あるいはPAL, NTSC, FILM)を統御したりするために、indexには、Rand()関数を使って指定されることができます。((訳者註: [[Rand>#rand]]の欄を参照。))

***&aname(user_defined_functions);ユーザー定義関数: [#jeb5d893]

下の方で説明されているように、あなたは、あなた自身の関数を定義し、そして、それを呼び出すことができます。関数内の[[スクリプト文法>ScriptGrammar]]は、スクリプト全般のそれと同じです。関数は、あらゆるクリップや変数型((訳者註: ScriptVariablesを参照。))を返すことができます。そのフォーマットは、一般には、次のようになります:


 function 関数名([変数型 変数名 [,...])
 { 
 関数のコマンド
 
 . 
 . 
 . 
 
 return(結果) 
 } 

カールした括弧((訳者註: {と}))は、関数のコマンドを取り囲まなければなりませんが、関数のヘッダ、そして / あるいは、関数のコマンド全体と、行を共有することができます。下記のものは、1行書きの関数の例です:

 function rednum(clip c, int "num") { return subtitle(c,string(default(num,0)),text_color=$FF0000) } 

Variables passed to functions can be made optional by enclosing var_name in quotes (i.e., int "num" in the previous example). Within the function, you would include a Defined or Default function to determine if var_name was passed and set the default value or alter your processing accordingly. Optional parameters can also be called using the var_name=value syntax to skip over other optional parameters.
関数へ渡される変数は、変数名を引用符で囲むことによって(たとえば、前の例におけるint "num")、オプション扱いにすることができます。関数内部では、変数名が渡されたかどうかを決定し、デフォルト値を設定したり、それによって加工を変更したりするために、DefinedやDefault関数をインクルードするでしょう。オプションのパラメータは、他のオプションのパラメータをスキップするために、「変数名=値」というシンタックスを使って呼び出されることができます。

 function NTSC2PAL(clip c) {
 # Fairly good NTSC->PAL conversion.  Would be better with Smart Bob. :-)
 # かなり優れたNTSC->PAL変換。SmartBobを使うと、もっといいでしょう :-)
 Assert(c.height == 480, "NTSC2PAL: input clip must have 480 scan lines")
 Bob(c, height=576)
 ChangeFPS(50)
 SeparateFields.SelectEvery(4, 0, 3)
 return Weave
 }

 AviSource("ntsc.avi").NTSC2PAL

If you create anything cool, be sure to post it to ShareFunctions!
もし、何かクールな関数を作ったら、必ず[[ShareFunctions:http://www.avisynth.org/ShareFunctions]]に投稿してください!

''Back to AviSynthManual''
''AviSynthManualに戻る''

#hr
註: このページは、http://www.avisynth.org/ScriptFunctionsの日本語訳です。