Here are the scripts and code necessary to create your own 3D holograms within Autodesk Maya. Please make sure that you read the README text file before trying it out.
Here you go:
https://www.dropbox.com/sh/yte9czol0p99gs7/kDnSKusKGc
Sunday, December 15, 2013
Update
Just a quick update
Scipts- 100% complete
-Written, play-tested, and converted into proper file format.
Rig- 80% complete
-Pyramid made. Just needs a effective and sustainable display source.
Files will be uploaded here within the hour.
Monday, November 25, 2013
Update
Over the last week, I have been working on the actual hologram rig. Due to the open sculpture studio hours, the adhesive taking a day to dry, and releasing ammonia it has been a very slow task. As of right now the final adhesive is curing and should be complete and installed onto the pedestal by today.
Sunday, November 10, 2013
Hologram Rig V4
So after I got my computer back I was able to work more on my script. Last night I had a dream that made me realize a fault in my script. If someone is planning on using the rig with the display above the pyramid, then the images wont sync up correctly when it is displayed on the hologram pyramid. With that in mind I rewrote part of my script, almost doubling it in size. There is now a beginning dialog box that allows the user to choose ahead of time which rig to use that suits their needs. All I had to do was recreate the rig with a different type of camera to achieve the desired results. Thusly Hologram Rig Version 4 has been written and completed.
Friday, November 8, 2013
weekend update...or lack there of.
Sadly I will not be able to get any work done this weekend because tcnj internet broke my laptop. It is currently being worked on at the apple store and I will hopefully be able to get it fixed this weekend.
Sunday, November 3, 2013
Update
Sadly through my research and with the help of Prof. Kim, we were unable to find a solution to the problem I am having with combining the two scripts. It seems that the MEL scripting language and Maya in general does not like playing with the combination of MEL, Bash, and PHP scripts. As of right now, until I find a work around I will have to leave it as two separate scripts, which isn't a deal breaker. I have also acquired a old LCD monitor that I am going to use to make a installation rig for the thesis. The bad news is that it is broken, so I will have to take a look on the inside to see if there is anything I can do to fix it.
Tuesday, October 22, 2013
Update
As of right now, the MEL Script and the PHP are done. I have gotten Maya to call the PHP through it's own terminal/ The only problem I am currently having is that I am having trouble polishing up the code in a way that we can have it cleanly be called with ease. I have tried linking the PHP to the MEL Script, and that just ended up erroring out or just initiating the code too quickly. This weekend I plan on grabbing an old monitor to try to start planning out a new rig.
Wednesday, October 16, 2013
Code Update
As of now the rig code is almost 100% complete, aside from tweaking.
The PHP code is also done, but it needs to be polished up a bit. Having Maya call the file and the set up for it is a bit tedious and confusing especially for a new user.
The camera rig has been changed from a simple camera to a camera with aiming. It had to be changed due to the fact that renders wont look good with my original hologram idea so this is the closest thing to a fix for it for now.
The PHP code is also done, but it needs to be polished up a bit. Having Maya call the file and the set up for it is a bit tedious and confusing especially for a new user.
The camera rig has been changed from a simple camera to a camera with aiming. It had to be changed due to the fact that renders wont look good with my original hologram idea so this is the closest thing to a fix for it for now.
Monday, October 14, 2013
Sunday, October 13, 2013
Initial Thesis Porposal
Abstract
My
goal for this thesis is to explore tools and techniques in
order to create a different style in the way animation is created and
viewed. Through the
use of the MEL Scripting language, within Autodesk Maya, various
plugins will be created in order to render images for a rig, which
will also be built, that will produce holographic video.
Introduction
Imagine,
if you will, watching an animation or any movie. You see what the
director or creator of said film wants you to see, because it is the
main focus. What you sometimes don't see, is the details that are
painstakingly put into a film that only appear for a brief second,
never to be seen again. With my project I would like to change that.
Imagine watching something and then having the ability to control the
viewpoint as to what you are watching. The film still has it's main
focus, but you are given the ability to see things that you would not
normally see. I've seen a few examples of holograms, but very few
implement such an idea and because of that I would like to see why
they don't give this form a try by showing it first hand.
Thesis
Statement and Goals
- To research and utilize MEL Scripting, a scripting language that allows the user to create new tools for the Autodesk Maya application.
- To learn how to not only create my own camera rig tool within the application, but a different style of rendering as well.
- To explore different ways to show user content that may increase the vision of ones animation.
Approach
With
the use of Autodesk Maya and other software, I plan on creating a
series of scripts, that work together in aiding in the production of
holographic films. I will also create a rig out of plexiglass that
will be the main catalyst for showing my 3D Holograms along with the
creation of either short demonstration animations and/or a animated
short.
Preliminary
Results
After
conducting some tests over the summer, I was able to create an
animation and rig that showed off a very basic idea of my thesis
project. From that, I was able to see what I needed to do in order to
make a version that was more readily available to other animators. I
also learned what to do and what not to do when making the physical
rig.
Work
Plan
(Based
Off of Independent Study Schedule)
Week
1
|
August
27 - 31
|
|
Week
2
|
September
3 - 7
|
|
Week
3
|
September
10 - 14
|
|
Week
4
|
September
17 - 21
|
|
Week
5
|
September
24 - 28
|
|
Week
6
|
October
1 - 5
|
|
Week
7
|
October
8 - 12
|
|
Week
8
|
October
15 - 19
|
|
Week
9
|
October
22 - 26
|
|
Week
10
|
October
29 - November 2
|
|
Week
11
|
November
5 - 9
|
|
Week
12
|
November
12 - 16
|
|
Week
13
|
November
19 - 23
|
|
Week
14
|
November
26 - 30
|
|
Week
15
|
December
3 - 7
|
|
Week
16
|
December
10 - 14
|
|
Relevant
Prior Coursework
- TST 161: Creative Design
- IMM 210: Animtaion I
- IMM 310: Animation II
- CSC 365: Games I: Design & Architecture
- CSC 465: Games II: Implementation
Implications
of Research
What
I plan to achieve from this is to show a new way of viewing
animations and film that hasn't been done before and to make the
tools created for it available for all who wish to use it.
Monday, September 30, 2013
Possible Call File Script
I'm not quite sure if Ed has written this already, but I came up with a short script to call a new file. I just cant seem to get the file to execute once selected.
proc int onOpen(string $filename,string $type) {
print($filename+"\n");
print($type+"\n");
return true;
}
fileBrowser( "onOpen", "Open", "", 0 );
Holo Camera Rig Script V2
I have done a very minor update to the camera rig script I've been working on. This update adds a short dialog box telling the user to not adjust the camera angles and tells them how they should set up the render. This new version also locks the cameras from moving.
//Dialog Box
{
// create a confirm dialog with a yes and no button. Specif
$response = `confirmDialog -title "Hologram Creator"
-message "I will now make the rig for you to create holograms. Please do not adjust the angles of the camera. Feel free to parent the rig to the main focus of your animation. Be sure to render out every camera separately within the render settings and be sure to render it out as a square resolution. Got That?"
-button "Yes"
-button "No"
-defaultButton "Yes"
-cancelButton "No"
-dismissString "No"`;
// check response
if( $response == "Yes" ) {
print("User says yes\n");
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera1 //
displaySmoothness -divisionsU 1 -divisionsV 1 -pointsWire 8 -pointsShaded 2 -polygonObject 2;
setAttr "camera1.translateZ" 27;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera2 //
setAttr "camera2.translateX" 27;
setAttr "camera2.rotateY" 90;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera3 //
setAttr "camera3.translateZ" -27;
setAttr "camera3.rotateY" 180;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera4 //
setAttr "camera4.translateX" -27;
setAttr "camera4.rotateY" -90;
circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 1 -tol 0.01 -s 8 -ch 1; objectMoveCommand;
setAttr "nurbsCircle1.scaleZ" 27;
setAttr "nurbsCircle1.scaleX" 27;
setAttr "nurbsCircle1.scaleY" 27;
select -r camera1 ;
select -tgl camera2 ;
select -tgl camera3 ;
select -tgl camera4 ;
select -tgl nurbsCircle1 ;
parent;
// camera1 camera2 camera3 camera4 //
select -r nurbsCircle1 ;
rename "nurbsCircle1" "CameraRig";
// CameraRig //
// Lock Camera Movement //
select -r camera1 ;
setAttr -lock true "camera1.rx";
setAttr -lock true "camera1.ry";
setAttr -lock true "camera1.rz";
setAttr -lock true "camera1.tx";
setAttr -lock true "camera1.ty";
setAttr -lock true "camera1.tz";
select -r camera2 ;
setAttr -lock true "camera2.tx";
setAttr -lock true "camera2.ty";
setAttr -lock true "camera2.tz";
setAttr -lock true "camera2.rx";
setAttr -lock true "camera2.ry";
setAttr -lock true "camera2.rz";
select -r camera3 ;
setAttr -lock true "camera3.tx";
setAttr -lock true "camera3.ty";
setAttr -lock true "camera3.tz";
setAttr -lock true "camera3.rx";
setAttr -lock true "camera3.ry";
setAttr -lock true "camera3.rz";
select -r camera4 ;
setAttr -lock true "camera4.tx";
setAttr -lock true "camera4.ty";
setAttr -lock true "camera4.tz";
setAttr -lock true "camera4.rx";
setAttr -lock true "camera4.ry";
setAttr -lock true "camera4.rz";
} else if( $response == "No" ) {
print("User says no\n");
}
}
//End Dialog Box
Sunday, September 22, 2013
Random Study
On a completely unrelated study I conducted out of procrastination from doing homework:
How music effects the users gameplay.
Game used: Call of Duty: Black Ops 2
Music: The xx and coexist album from the indie band, The XX.
Findings:
After playing for an hour online with my friend while listening to these more relaxing tracks than the in game audio we concluded that the music doesn't aid in the way we perform throughout the game, but it did keep us calmer than we normally would be whilst playing.
How music effects the users gameplay.
Game used: Call of Duty: Black Ops 2
Music: The xx and coexist album from the indie band, The XX.
Findings:
After playing for an hour online with my friend while listening to these more relaxing tracks than the in game audio we concluded that the music doesn't aid in the way we perform throughout the game, but it did keep us calmer than we normally would be whilst playing.
Tuesday, September 17, 2013
Minor Updates
Due to my lack of finding out how to have a solution to my render problem, I have been looking into different aspects of the project to pass the time.
Things I may want to do to the camera rig:
-Lock down some of the controls in order to prevent any ways to mess up the hologram set up.
-Consider allowing a camera point, but I must first run a test to see if it works.
-Allow the ability to add a 5th camera. This would be something saved for toward the end, since it basically changes a lot of the process.
Ideas for interactivity:
-Add interactivity with the use of Unity and Leap motion. This would most likely be a stretch goal if I for some reason have a lot of extra time.
I do want to figure out what animations I want to do to show off the hologram which may include either a reel of short animations or maybe a longer one.
Things I may want to do to the camera rig:
-Lock down some of the controls in order to prevent any ways to mess up the hologram set up.
-Consider allowing a camera point, but I must first run a test to see if it works.
-Allow the ability to add a 5th camera. This would be something saved for toward the end, since it basically changes a lot of the process.
Ideas for interactivity:
-Add interactivity with the use of Unity and Leap motion. This would most likely be a stretch goal if I for some reason have a lot of extra time.
I do want to figure out what animations I want to do to show off the hologram which may include either a reel of short animations or maybe a longer one.
Saturday, August 31, 2013
Basic Camera Rig Mel Script Test 1
After studying the options and deciding on where to start writing my script, I came up with a basic test model for what I want to get done. This script basically does everything I did with my prototype test, except it makes it a bit easier and less time consuming to set up. I am still deciding on where I should move on from here.
Here is the basic set up of my script:
Here is the basic set up of my script:
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera1 //
displaySmoothness -divisionsU 1 -divisionsV 1 -pointsWire 8 -pointsShaded 2 -polygonObject 2;
setAttr "camera1.translateZ" 27;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera2 //
setAttr "camera2.translateX" 27;
setAttr "camera2.rotateY" 90;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera3 //
setAttr "camera3.translateZ" -27;
setAttr "camera3.rotateY" 180;
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 0.4036 -horizontalFilmAperture 1.4173 -horizontalFilmOffset 0 -verticalFilmAperture 0.9449 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.1 -farClipPlane 10000 -orthographic 0 -orthographicWidth 30 -panZoomEnabled 0 -horizontalPan 0 -verticalPan 0 -zoom 1; objectMoveCommand; cameraMakeNode 1 "";
// camera4 //
setAttr "camera4.translateX" -27;
setAttr "camera4.rotateY" -90;
circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 1 -tol 0.01 -s 8 -ch 1; objectMoveCommand;
setAttr "nurbsCircle1.scaleZ" 27;
setAttr "nurbsCircle1.scaleX" 27;
setAttr "nurbsCircle1.scaleY" 27;
select -r camera1 ;
select -tgl camera2 ;
select -tgl camera3 ;
select -tgl camera4 ;
select -tgl nurbsCircle1 ;
parent;
// camera1 camera2 camera3 camera4 //
select -r nurbsCircle1 ;
rename "nurbsCircle1" "CameraRig";
// CameraRig //
Subscribe to:
Posts (Atom)