描画位置以外の値を変更する
このページは映像エフェクトプラグイン作成入門の一部です。
/icons/-.icon
これまでは描画位置のみを扱っていました。
今回は拡大率や不透明度などの扱い方を解説します。
不透明度
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var opacity = 0.5;
return effectDescription.DrawDescription with
{
Opacity = effectDescription.DrawDescription.Opacity * opacity
};
}
これは不透明度50%のエフェクトとして機能します。
50%は50ではなく0.5と書くことに注意してください。
拡大率
XYまとめて
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var zoom = 0.5;
return effectDescription.DrawDescription with
{
Zoom = effectDescription.DrawDescription.Zoom * (float)zoom
};
}
XY個別
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var zoomX = 0.5;
var zoomY = 2.1;
return effectDescription.DrawDescription with
{
Zoom = new(
effectDescription.DrawDescription.Zoom.X * (float)zoomX,
effectDescription.DrawDescription.Zoom.Y * (float)zoomY)
};
}
回転角
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var rotationX = 50.5;
var rotationY = -30.6;
var rotationZ = 95.6;
return effectDescription.DrawDescription with
{
Rotation = new(
effectDescription.DrawDescription.Rotation.X + (float)rotationX,
effectDescription.DrawDescription.Rotation.Y + (float)rotationY,
effectDescription.DrawDescription.Rotation.Z + (float)rotationZ)
};
}
単位は度数法です。(360°で一回転)
左右反転
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var invert = true;
return effectDescription.DrawDescription with
{
Invert = invert ? !effectDescription.DrawDescription.Invert : effectDescription.DrawDescription.Invert
};
}
〇〇 ? 〇〇 : 〇〇という書き方は三項条件演算子と言います。
複数書ける
,で区切って複数書けます。
code:cs
public DrawDescription Update(EffectDescription effectDescription)
{
var opacity = 0.5;
var zoom = 1.2;
var rotationZ = 95;
return effectDescription.DrawDescription with
{
Opacity = opacity,
Zoom = effectDescription.DrawDescription.Zoom * (float)zoom,
Rotation = new(
effectDescription.DrawDescription.Rotation.X,
effectDescription.DrawDescription.Rotation.Y,
effectDescription.DrawDescription.Rotation.Z + rotationZ)
};
}
/icons/-.icon