Rikkymodule/ver1

* dll

種類
--

ここでは、Ver1時代のRikkyModuleの説明を保管している。

## 前書き

* このdllが対応しているAviutl本体のバージョンは0.99i6(バージョン表記までなら0.96g)から1.00までです
* 拡張編集exedit.aufのバージョンは0.89jから0.92までです
* 現在(2019/03/16)までの最新版には対応しています
* ただしAviUtl本体と拡張編集との対応の兼ね合いで拡張編集は0.89l以降が推奨環境です
* ちなみに0.89lとは2011年に発表されたバージョンなので、もう誰も使っていないと思われます
* このdllのバージョンは1.4bです
* またdllを使うにはrikky\_memory.aufが必要になります。aviutl.exeと同じ場所に置いてください。
	+ (※pluginsフォルダの中でもいけました)
* このプラグインは拙作の他のプラグインとも連携しているので必要になる場合があります

免責
--

* このDLLやAUFの機能を用いて起きたいかなる問題や損害に作者やスクリプトを作った制作者は一切の責任を負いません
* 自己の責任の上で使用して下さい

## 使い方

このdllはscriptフォルダかexedit.aufがあるフォルダに置いてください

* 全員がこのように置いてくれたならば、以下のようなことをする必要もなります

dllを使う方法として一般的にはrequire関数を用いてrequire("rikky\_module")とします

* しかしこれはrikky\_module.dllがないとエラーになりスクリプト全体が動かなくなります

作ったスクリプトにおいてこのdllの関数が必要なものならばrequireを用いても問題ないですがあると便利ですよ程度に用いるの場合は

```
local f=package.loadlib(path.."rikky\_module.dll","luaopen\_rikky\_module")

```

という一文を追加します

* このpathはobj.getinfo("script\_path")で得られる、そのスクリプトファイルがある階層の絶対パスです

このfがnilならばrikky\_module.dllがないことになるのでその処理をしなければいいだけになります

例としては

```
local path = obj.getinfo("script\_path")
local f = package.loadlib(path .. "rikky\_module.dll", "luaopen\_rikky\_module")
if f then
  f().file(1)
end

```

のようになります

* f().がrikky\_module.と同じ役割を担うのであとは具体的に使いたい関数を.(ピリオド)のあとにつけるだけです

もしくはcpathを用いて

```
if rikky\_module == nil then
  local CPATH = {}
  local cpath = package.cpath .. ";"
  local n
  while(1)do
    n = cpath:find(";")
    if n then
      CPATH[#CPATH + 1] = cpath:sub(1, n - 1)
      cpath = cpath:sub(n + 1, #cpath)
    else
      break
    end
  end
  if not CPATH[2]:find("script\\?.dll") then
    CPATH[3] = CPATH[2]:sub(1, CPATH[2]:find("\\script\\")) .. "script\\?.dll"
    package.cpath = package.cpath .. ";" .. CPATH[3]
  end
  for i = 1, #CPATH do
    local f = io.open(CPATH[i]:gsub("?", "rikky\_module"), "rb")
    if f then
      require("rikky\_module")
      f:close()
      break
    end
  end
end

```

のようにすれば、アニメーション効果ファイルと同じ階層にrikky\_module.dllがある必要はなく、単にscriptフォルダやpluginsフォルダあればいいことになります

他にもpcall(require, "rikky\_module")を実行してfalseが返ってくると、呼び出し失敗ということになります

歴史
--

* 20XX
	+ extension.dllとany\_key.dllとrikky\_get.dllをrikky\_module.dllに統合、この段階で実質ver0.3
* 2016 03 03
	+ ひな祭りにエラー報告をいただき、正しくライブラリリンクした
* 2016 03 11
	+ list関数とgetinfo関数とtype関数とglassdraw関数とconvert関数とmouse関数とaudiobuffer関数を追加、ver0.4
* 2016 03 17
	+ list関数とfont関数の共存エラーを修正、dllのバージョン0.4aに変更
* 2016 ?? ??
	+ dllのバージョン0.4bに変更
* 2016 05 17
	+ getinfo関数の種類追加、"filter"をカスタムオブジェクトで使う際のエラー訂正、rotation関数、dataload関数、image関数、setdialogparam関数の追加、dllのバージョン0.5に変更
* 2016 05 26
	+ setdialogparam関数の文字列操作の一部訂正、audiobufferの一部訂正、image関数に新要素の追加、dllのバージョン0.5aに変更 また　where\_is\_rikky\_module.dll.exeを開発
* 2016 06 03
	+ image関数に新要素追加、getinfo関数に新しくculling、force、antialias、billboardのフラグ取得の追加、convert関数でUTF-8が扱えるように改良、dllのバージョン0.5bに変更
* 2016 06 15
	+ setdialogparam関数でのカスタムオブジェクト挙動を一部修正と16進数表示追加、convert関数のunicodeの改行における処理を変更、getinfo関数のfocusとfilterの中点におけるエラーを修正、参照アドレスのオフセット値の見直し、where\_is\_rikky\_module.dll.exeのまとめた先が表示されない不具合を修正、dllのバージョン0.5cに変更
* 2016 07 09
	+ getinfo関数のtextの不具合を訂正、mouseのアドレス参照のエラーを訂正、dllのバージョン0.5dに変更
* 2016 08 13
	+ camerainfo関数とassign関数とcolorconvert関数とbordering関数とaxisconvert関数とaxisconvertEx関数とtextload関数を追加、
	+ getinfo関数に新しくgroupの情報取得を追加、frameでのシーン機能の現フレームと全体のフレーム数を訂正、audiobuffer関数の再生ウインドでの再生を修正、rotation関数の一部使い方変更、image関数の"i+"の仕様を変更
	+ dllのバージョン1.0に変更、不具合がない限りこれでおしまい
* 2016 12 24
	+ materialdraw関数とmaterialdraw\_init関数を追加、getinfo関数のgroupとcamerainfo関数で発生するエラー除去、bordering関数で間引きできるように改良、image関数でidに文字列やマイナスの数値を指定できるようにし、また引数なしで起こるエラーを修正、dllのバージョン1.1に変更
* 2017 01 28
	+ getinfo関数、camerainfo関数、materialdraw\_inti関数のグループ制御に関わる個所を訂正、試作版のreloadbuffer関数を追加、dllのバージョン1.1aに変更
* 2017 09 04
	+ 全体的に書きなおして、rikky\_memory.aufプラグインとの連携をとるようにした
	+ getinfo関数のgroupのエラーを修正、hwndのオプション3と4を4と5に改めて、3にはタイムラインのハンドルを取得できるようにした、バージョン取得で通し番号や連携するプラグインのバージョンも取得できるようにした
	+ image関数のmixで戻り値を通常だとピクセルデータ、横幅、縦幅にして+をつけたときは戻り値はブーリアンで合成した画像にオブジェクトがなるように変更
	+ glassdraw\_init関数で新しくrefractive、offsetZ、boundaryのパラメーターを設定できるようにし、描画方法をdrawとdrawpoly両方行えるようにした
	+ dllのバージョンを1.2に変更
* 2017 11 18
	+ 使い方を全体的にリライトした
	+ getinfo関数の"color"と、"path"の一部と、"text"の一部を"object"に統合した
	+ getinfo関数で新しく"dialog"を指定できるようにした
	+ dataload関数を廃止して、datasave関数のみでrikky\_memory.aufと連携をとるようにした
	+ bordering関数の第1引数に"pixel"を指定できるようにした、また内側の輪郭は時計回りになるように変更した
	+ camerainfo関数でオブジェクトの横軸のベクトルax、ay、azを取得できるようにした
	+ key関数でjoypadの情報を取得できるようにした
	+ file関数、fold関数、font関数、list関数をすべてボタン操作でダイアログが出るように変更した
	+ dllのバージョンを1.2aに変更
* 2018 02 10
	+ getinfo関数のcullingの不具合を修正、"object"でカメラ制御のzバッファを取得、テキストオブジェクトの太字や斜字などの状態を取得できるようにした
	+ またgetinfo関数の"text"の不具合と、別レイヤのテキストを取得する際に<??>を含む処理をできるようにした。ただし最新版でないとエラーになります次の更新では直します
	+ glassdraw関数にasyncとcullingのキーを追加
	+ dllのバージョンを1.2bに変更
* 2018 05 31
	+ materialdrawEx関数、pixelfunction関数、reloadbuffer関数、parameter関数、colordialog関数、checkbox関数、ObjectOrientFigure関数、textsplit関数、string2table関数を追加
	+ getinfo関数の"object"で特定の条件で正しく情報を取得できなかったことを修正
	+ "text"での指定レイヤの文字列取得を対応する拡張編集で行えるようにした
	+ image関数でIDを文字列にした際にエラーが起きる場合があって、それを改善
	+ また"u"を指定できるようにして、色情報を取得できるようにし、"p"が正しくなかったのでそれを修正
	+ bordering関数に第5引数を指定できるようにした
	+ glassdraw関数にzoomとlensのキーを追加
	+ materialdraw関数の処理計算方法をmaterialdrawEx関数に合せるために変更
	+ dllのバージョンを1.3に変更
* 2018 06 10
	+ この本文(※使い方)を(glassdrawのzoomなど)を一部書き直し
	+ getinfo関数でnilを渡したときに起きるエラーを除去
	+ reloadbuffer関数でのメモリーエラーを修正
	+ image関数でコピー指定をする際、userdataをコピーできるようにした
	+ materialdrawExでpositionおよびtextureで相対的にレイヤを指定できるようにした
	+ dllのバージョンを1.3aに変更
* 2018 06 16
	+ 内部の処理を一部変更
	+ dllのバージョンを1.3bに変更
* 2018 08 09
	+ file関数、font関数、fold関数、list関数、checkbox関数、colordialog関数、parameter関数、setdialogparam関数のカスタムオブジェクト用の関数を追加
	+ fileCS関数、fontCS関数、foldCS関数、listCS関数、checkboxCS関数、colordialogCS関数、parameterCS関数、setdialogparamCS関数の説明分を追加
	+ dllのバージョンを1.3cに変更
* 2019 03 15
	+ この文章(※使い方)の誤字脱字を修正
	+ clipboard関数、fillarea関数、effect関数、midiconverter関数、midiconverterEx関数、sceneload関数、soundregister関数、linedetection関数、trackbarwrite関数、settext関数、progressbar関数を追加
	+ getinfo関数で新しく"count"、"cache"、"groups"、"font"、"draw\_state"を指定できるようにした
	+ image関数で"u""u+"を指定する際に起こりそうなエラーを出なくした
	+ image関数でイメージクリアができない場合を修繕
	+ reloadbuffer関数の読み込み時に自身を再読み込みする場合はフレームバッファではなく、透明のイメージを返す仕様に変更
	+ またシーン内で使用するときの不具合も改善
		- その他、細かく処理を変更、改善など行った箇所があるが、詳細は失念
	+ なかったので、免責項目を追加
	+ 忘れてたライセンスを追加
	+ dllのバージョンを1.4に変更
* 2019 03 16
	+ getinfo関数の"blend"でオプション2を追加し損ねていたので追加
	+ settext関数でメモリーリークが発生していたので修正、戻り値も修正
	+ reloadbuffer関数、sceneload関数で全体の長さを取得する部分の不具合を修正
	+ fillarea関数を内部を一部変更
	+ dllのバージョンを1.4aに変更
* 2019 04 07
	+ soundregister関数で引数なしで音を取得しているかを確認できるようにした
	+ 説明文の一部の脱字を修正
	+ dllのバージョンを1.4bに変更