Tuesday, October 30

World Famous Starship Captain

I decided to create an animation of Snoopy as Captain Kirk combined with the sound of warp drive acceleration. I used this picture as a base.
Image result for world famous starship captain

I removed Woodstock from it and darkened the background.

The next step was to cut Snoopy and the doghouse out of the background and fill in the background.
 




Next, I used MS Paint to skew Snoopy to about 20 degrees. The sound file was 30 seconds long, and at 24 frames per second made for 720 total frames. Dividing that out came to about a degree every 20 frames.























Each of these were combined with the background. Then I used a Java program to fill in the gaps.

/**
 * @author Tim Madden
 *
 */

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;

public class CopyFile {

public static void main(String[] args) {
int[] skew = {0, 1, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480, 512, 544, 576, 608,
640, 672, 704, 720, 721 };
// String src = "D:/Shared/My Pictures/1 Blender Models/Snoopy/Sequence";
File source;
File dest;
String destString, sourceString;

try {
for (int x = 1; x < skew.length; x++) {
sourceString = String.format("D:/Shared/My Pictures/1 Blender Models/Snoopy/Sequence/%04d.png", skew[x]);
System.out.println(sourceString);
source = new File(sourceString);
for (int i = skew[x]; i < skew[x + 1]; i++) {
destString = String.format("D:/Shared/My Pictures/1 Blender Models/Snoopy/Output/%04d.png", i);
System.out.println("\t" + destString);
dest = new File(destString);
Files.copy(source.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

/*
* try { for (int i = 1; i < 281; i++) { destString =
* String.format("/Users/tjmad/OneDrive/Pictures/Cloak/Image Sequence/%04d.png",
* i); dest = new File(destString); Files.copy(source.toPath(), dest.toPath(),
* StandardCopyOption.REPLACE_EXISTING); } } catch (IOException e) { // TODO
* Auto-generated catch block e.printStackTrace(); }
*/
}

}

I then thought it would be good to have a title card. 
Blender was used to put the sequences together with the sound file.

And the end result:


Sunday, June 17

UWP Support for .NET Standard 2.0, fixing the NU120 message

To fix the NU1201 for Universal Windows Program such as:
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586). Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-arm. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-arm-aot. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x64. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x64-aot. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x86. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)
NU1201: Project WeatherApp is not compatible with uap10.0.10586 (UAP,Version=v10.0.10586) / win10-x86-aot. Project WeatherApp supports: netstandard2.0 (.NETStandard,Version=v2.0)


You need to set the Minimum Version in the Project properties to Windows 10 Fall Creator Update (10.0; Build 16299).


Thursday, February 1

Procedural star field in Blender

In the right-hand panel, turn off Reflective Caustics and Refractive Caustics under Scene.



Go to the World setting in the right-hand panel

Move mouse cursor to bottom of menu on the window at the line, until it changes to a double ended arrow.

Slide the window up to make it larger.

Change the bottom view to the node editor.

Switch to World at the bottom.

Click on the Use Nodes in the right-hand panel.

Add a Noise Texture

Set the Scale of the Noise Texture to 500 or so.


Add a ColorRamp

Add a MixRGB node.

Set the top color of the MixRGB node to black


Connect the Color output of the Noise Texture to the Color2 input of the MixRGB node.

Connect the Color output of the Noise Texture to the Fac input of the ColorRamp.

Connect the Color output of the ColorRamp to the Fac of the MixRGB node.

Connect the Color output of the MixRGB node to the Color input of the Background node.

Change the upper window to Rendered

Adjust the sliders on the ColorRamp to get the look you want.

The further to the right the black slider is, the more black the background. The further to the left the white 
slider is the more stars.

And use the Detail in to Noise Texture to control the number of stars.

To add different size stars, hold Shift and select the Noise Texture and the ColorRamp, then press Shift-D to Duplicate.

Change the scale of the second Noise Texture to a lower value.

Add another MixRGB node between the first one and the first ColorRamp node.


Connect the Color output of the top ColorRamp to the top Color input of the new MixRGB node. Connect the Color output of the bottom ColorRamp to the bottom Color input of the new MixRGB node.


Change the new MixRGB to Add.