93のブロマガ

ディレイ動画補足

2018/06/24 11:53 投稿

コメント:2

  • タグ:
  • 登録タグはありません
  • タグ:
  • 登録タグはありません
ディレイ sm26789854 の補足です


テキストに追従するメッシュ状の線と面を描画します。
こういうやつ。スクリプト制御にコピペです。



  • テキスト等の個別オブジェクトに面を張るスクリプト
これは個別オブジェクト本体につけます
全ての行の字数が同じでないとうまくいきません。

TA-Arrange等の使用後にでもつけるといいかも
https://www.dropbox.com/s/5ok3w90t1vtgoha/%40TA-Track.anm?dl=0

local l = 10 -- 横分割数と合わせる(設定必須)
local col = 0xffffff -- 色
local alp = 0.8 -- 透明度
--local w,h = obj.getpixel() --オブジェクトの色を使いたい場合はこの二行を有効に
--col,alp = obj.getpixel((w-1)/2,(h-1)/2)
if(obj.index==0)then Q = {} end
Q[obj.index]={obj.x+obj.ox,obj.y+obj.oy,obj.z+obj.oz,obj.alpha*alp,col}
if(obj.index==obj.num-1)then
obj.draw()
obj.load("figure","四角形",0,1)
obj.rz=0
obj.ox,obj.oy,obj.oz = obj.ox-obj.x, obj.oy-obj.y, obj.oz-obj.z
for i=0,#Q-l do
if(i%l~=l-1)then --右端と左端の接続を回避
local a,b,c,d=Q[i],Q[i+1],Q[i+1+l],Q[i+l]
obj.putpixel(0,0,a[5],a[4]*b[4]*c[4])
obj.drawpoly(a[1],a[2],a[3],a[1],a[2],a[3],b[1],b[2],b[3],c[1],c[2],c[3])
obj.putpixel(0,0,d[5],a[4]*c[4]*d[4])
obj.drawpoly(a[1],a[2],a[3],a[1],a[2],a[3],c[1],c[2],c[3],d[1],d[2],d[3])
end
end
end


  • 点線を描画するスクリプト
テツさんの格子線スクリプトと大体同じ物です。
上記のオブジェクトより下のレイヤーで使います
サイズの小さい図形に使用します。

TA-Arrangeを使用している場合は
格子線スクリプトの座標欄に POS と入れると点描画されます。

local num = -15 --マイナスだと描画間隔、プラスだと描画数指定
local fade = 300 -- この距離より離れると消えていく
local ln = 0 --1にすると元のオブジェクトの位置に描画しない

local function clamp(x)
return (x<=0 and 0) or (x>=1 and 1) or x
end

local function draw_dot(a,b,num,fade)
local v = {b[1]-a[1],b[2]-a[2],b[3]-a[3]}
local l = math.sqrt(v[1]*v[1]+v[2]*v[2]+v[3]*v[3])
local alp = 1-clamp((l-fade)/(fade/2))
if l<100 then alp = 1-clamp((l-100)/(50-100)) end
if (alp<=0) then return end
local n = (num<0 and l / -num) or num
v = {v[1]/n,v[2]/n,v[3]/n}
for i=ln,n-ln do
obj.draw(a[1]+v[1]*i,a[2]+v[2]*i,a[3]+v[3]*i,alp,alp)
end
end
obj.setoption("billboard",3)
for i=0,#Q-1 do
for j=i+1,#Q do
draw_dot(Q[i],Q[j],num,fade)
end
end


コメント

Zu
No.1 (2018/08/02 12:44)
93さんはじめまして。
記事と関係がございませんが、
ちょっとお伺いしたいことがありまして
コメントさせていただきます。

93さんが作られる@DelayMoveというスクリプト
使おうと思いまして、その前「オブジェクト分割」をかけるとき
分割できないようで、どうしたら良いのでしょうか
93 (著者)
No.2 (2018/08/17 16:39)
オブジェクト分割が出来ない、という状況は中々ないので特殊な環境に思えますが
一部の描画処理をしてしまうタイプのスクリプトの後にオブジェクト分割を使うと分割されないかも知れません。
もちろん分割数が1だと分割されません。
またスクリプト制御での obj.effect("オブジェクト分割")は正しく動作しません。(拡張編集の仕様です)

とりあえず拡大率や透明度を変更すると分割できているかどうかはすぐ分かるはずです。

DelayMoveスクリプトは先にオブジェクト分割を掛けてから、
またはテキストの「文字ごとに個別オブジェクト」にチェックがついている状態でないと
効果が現れませんのでご注意ください。
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事