Blockland Forums > Modification Help

[DLL] Large Orthographic Screenshots


Here is a DLL I made a long time ago to take large orthographic screenshots. It can be useful for generating maps, pretty looking isometric screenshots, or super crisp renders of models.

Large screenshot of the Golden Gate Bridge:

Crispy screenshot of the Blockhead (large screenshot downscaled):

This DLL also fixes the size limitation of $megaShotScaleFactor.

Usage: enter "setOrthoCamera(true, <scale>);" into the console, position your camera to your liking, then enter "doHUDOrthographicScreenshot(<divisions>);". The higher the scale, the more zoomed out you will be. The higher the divisions, the more the frustum will split and increase the resolution of your screenshot. The resulting file will be written to your game directory as orthoScreenshot.png.

NOTE: does not work with shadows yet. It's planned to support them later.

Enjoy! As usual, you can DM me for a build or instructions.

Source: (github)

I made a quick script to snap your view to a certain vector to make it easier to take isometric shots (adapted from old aimbot script):

--- Code: ---function snapAimToVec(%obj, %target)
    %ev = %obj.getEyeVector();

    %x = getWord(%ev, 0);
    %y = getWord(%ev, 1);
    %z = getWord(%ev, 2);

    %xx = getWord(%target, 0);
    %yy = getWord(%target, 1);
    %zz = getWord(%target, 2);

    $mvYaw   = mATan(%xx, %yy) - mATan(%x, %y);
    $mvPitch = mATan(%z, mSqrt(%x * %x + %y * %y)) - mATan(%zz, mSqrt(%xx * %xx + %yy * %yy));
    if ($mvYaw > $pi)
        $mvYaw -= $pi * 2;
    if ($mvYaw < -$pi)
        $mvYaw += $pi * 2;

--- End code ---

Try "snapAimToVec(findclientbyname("namehere").getControlObject(), "0.57735 -0.57735 -0.57735");"! You can also do "0 0 -1" for %target and then use "$mvYaw = $pi / 2;" for top-down shots.

Edit: Someone wanted to make a 360 view of a build, so I wrote a quick script for that too:

--- Code: ---function snapAimCircle(%obj, %angle, %center, %height, %width)
    %circle = vectorScale(mCos(%angle) SPC mSin(%angle) SPC 0, %width);
    %pos    = getWords(vectorAdd(%center, %circle), 0, 1) SPC (getWord(%center, 2) + %height);
    %obj.setTransform(%pos SPC getWords(%obj.getTransform(), 3, 6));
    snapAimToVec(%obj, vectorNormalize(vectorSub(%center, %pos)));

--- End code ---

"snapAimCircle(findclientbyname("namehere").getControlObject(), <angle in radians>, <center of build xyz>, <height>, <width>);" to move your control object (camera works best) and snap its view to the center around a circle.


(I'm really terrible at making GIFs, but more skilled people can use this to make something better!)


[0] Message Index

Go to full version