From 2cefd0ee10c535c8ed0a1f93f2eef412d5f4d53c Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:55:28 +0300 Subject: [PATCH] Displacement Map Visualizer QoL (#27392) * Update Displacement Map Visualizer.lua * Add files via upload * Fix background layer being offset This was caused by not taking the cel's own bounds into account. Aseprite doesn't make an image layer "full size" if it only covers a small part of the sprite. --------- Co-authored-by: Pieter-Jan Briers --- .../Displacement Map Visualizer.lua | 38 +++++++++++++++++- .../Displacement Map.png | Bin 0 -> 1212 bytes 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 Tools/SS14 Aseprite Plugins/Displacement Map.png diff --git a/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua b/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua index b16ab797e7..468636c07d 100644 --- a/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua +++ b/Tools/SS14 Aseprite Plugins/Displacement Map Visualizer.lua @@ -88,17 +88,45 @@ dialog:canvas{ local layerDisplacement = findLayer(sprite, dialog.data["displacement-select"]) local layerTarget = findLayer(sprite, dialog.data["reference-select"]) + local layerBackground = findLayer(sprite, dialog.data["background-select"]) -- print(layerDisplacement.name) -- print(layerTarget.name) + local celDisplacement = layerDisplacement:cel(1) local celTarget = layerTarget:cel(1) + local celBackground = layerBackground:cel(1) + + -- Draw background + context:drawImage( + -- srcImage + celBackground.image, + -- srcPos + 0, 0, + -- srcSize + celBackground.image.width, celBackground.image.height, + -- dstPos + celBackground.position.x * scale, celBackground.position.y * scale, + -- dstSize + celBackground.image.width * scale, celBackground.image.height * scale) + + -- Apply displacement map and draw local image = applyDisplacementMap( sprite.width, sprite.height, dialog.data["size"], celDisplacement.image, celDisplacement.bounds, celTarget.image, celTarget.bounds) - context:drawImage(image, 0, 0, image.width, image.height, 0, 0, image.width * scale, context.width, context.height) + context:drawImage( + -- srcImage + image, + -- srcPos + 0, 0, + -- srcSize + image.width, image.height, + -- dstPos + 0, 0, + -- dstSize + image.width * scale, image.height * scale) end } @@ -120,6 +148,14 @@ dialog:combobox{ end } +dialog:combobox{ + id = "background-select", + label = "background layer", + options = layers, + onchange = function(ev) + dialog:repaint() + end +} dialog:slider{ id = "size", diff --git a/Tools/SS14 Aseprite Plugins/Displacement Map.png b/Tools/SS14 Aseprite Plugins/Displacement Map.png new file mode 100644 index 0000000000000000000000000000000000000000..50744cef601c4226b24eba32f33de2c185de3471 GIT binary patch literal 1212 zcmV;t1Vj6YP)Px(c1c7*RCt{2*tw1zRT#zbW5k0X5@(LC{3N)m>h4Qb^^8MOVp3x8T7`F;CqXA7 z<7I%L57O93*2v2YlJALrYE5f;THjylo*UnOWB$e$ysxhFm&dzAyvyr+3D^4u{2z9s zCve3}=R`U`oqaqfq8!eNaDMeU^aOeWSFn6W5TJ{$Z|RoNsdP%%Hc=^*&hinyCdO_pD%}=Ku_QkuC7E~Pv=@zqR4qA zvYb{T$#Es399AO8ekHu@R>H}4CG7fXbLa{51U_NgiinoIfmwol_+wqM3z$}k{l}$=(5>}onG09^kMtP{jARj7m zsPE6AC(sjkXU9Su%js;^Lag#qh((?YG0UwGO|FHgaw$ZSb0M;v3X$Ykh$x3b1lbqD z%dQYkwuP|rRES9)3o*(=AqM$Sh=Y8m5O>OdbLa_NR|0?j@%DRv^VVP2@iOo=0G#F1 zY5cqy9OYj&gH^t_87%Vs&0v-vYz9q!xEWOW(PmKO$D2Wxx6L5sf6wqXe*Eco0KgC5 z-$u~mPc{QDKiv$R{A@F@^7GALl3#2Fqx^C+801%*!9jk#8QhWIYzE)Szip-`&=Yv~ zfn!nvyTK~o+YJ`^{%$bK4|anlKimzf{Af2Q^5fkg%iC^{Fo`Km^$b!pklYPPT!t@)U?k z9s@DTLm-CG|08ti^#nfTNwX(ruLL~N^$LQ z>j^7Qo|xp(6QjTU*vLyM3SQ;q8uC%WbX(sJ4ZO# zI>O46BPRD@XMb@$fu6u8T(v~CO286D&X&k>vP6=jC88WG5oB)(FFQ*(*;>Ndk3aj1 z>k0G(KGVuXlt~FpM3&P;Bsoq*l*2>>*-wO*-9)(Q)1Ljs^#pnXSFk)1c~k-;k>ofM zQ4S*!WIqyq{CsDBaXo>az!fhIL>iR9KtwqVL>R8->@Th-&=a`E#RCx!SAX^w*Aw{C a6Zi)qOv$-@EJcU_0000