11 提交 / 0 new
最新文章
#1 2020-07-05 01:46

VR180° MMD Video converstion

How do I make MMD videos VR180°? I searched around and found no tutorial on how it is made. Any help, links, guides, tools or programs will be appreciated.

2020-07-06 02:50

Part 1

Here's the video I used to learn the process, though I haven't uploaded anything.
https://www.youtube.com/watch?v=kZdHV3XEew0
----------------------------------------------------------

Downloads

Download EquirectangularX.x - this is for a 180 camera in MMD
https://bowlroll.net/file/166172

AviUtl - This is used paste together multiple MMD renders. Instructions to change the program to English can be found at the link below
http://www.htasoft.com/aviutl/aviutl.htm

VR 180 Mask - This will mask the green in each render within AviUtl - Resize them to the same resolution as your MMD render. Keep them as a .png format for transparency.
*paint.net is free and can be found at ninite.com below
https://bowlroll.net/file/198513

HandBrake or preferred video editor
https://ninite.com/

2020-07-06 02:44

Part 2

MMD

Essentially. Plan ahead and make your motion/video with the idea that your camera position should be "x0, y(view height), z0" and rotation should be "x0, y0, z0" through the entire project.

Once the project is animated and ready to render, load your effects.
*note that some effects/shaders don't work well with EquirectangularX.x, SSAO for example. I'd suggest Ray if you know how to use it.

Set your resolution to be a square 1080x1080, 1440x1440 or 2160x2160 for example - the larger the resolution the more time the render will take.

Load EquirectangularX.x and set "Si" to 0.5 and register. This will allow you to rotate the camera for the 180 full render.

Set your camera view angle to 92.

Set your camera x position to half of the distance betwen your eyes.
1 MMD unit(U) = 3.15 in(I) or 8 cm(C)
X = (I/3.15)/2 for in
X = (C/8)/2 for cm
Right Eye = X
Left Eye = -X

I usually start with the left eye, the camera rotation should still be at 0, 0, 0.

Save your work in case it crashes during rendering. There will be 10 renders, 5 for left eye and 5 for right. Only the parts of the screen with motion need to be rendered as a video (A paizuri may only have movement in the center and botom portion from a first person view for example). The rest can be renderd as a picture file to save time. The Center should always be a video file.

Name each render so you can identify them; Lc, Rc, Ll, Rl for example.
L = left eye
R = right eye
c = center
l = left
r = right
b = bottom
t = top

Here's the camera rotation settings for each render. Save between renders
Left eye -X
c = 0, 0, 0
l = 0, 90, 0
r = 0, -90, 0
b = 90, 0, 0
t = -90, 0, 0
Right eye X
c = 0, 0, 0
l = 0, 90, 0
r = 0, -90, 0
b = 90, 0, 0
t = -90, 0, 0

2020-07-06 02:44

Part 3

AviUtl

You should have 2 or 3 windows when you open this program. Main window and "Advanced Editing" - Advanced Editing can be found under "Filter+" if it's hidden.

Advanced Editing window will have several layers listed. We'll be using 18 in total.

Drag and drop "Lc.avi" to Layer 1 and a "Create a new Project" window should pop up
Uncheck "Match imported file"
*Drag to the "Layer #" text to verify each layer starts at frame 1
Set Image Size to double the width of your project and the same height. 2160x1080 for example
Set the Frame Rate the the same you used in MMD

Opening the file this way will default to the correct render time and prevent extra work.

Layers 1-9 are the Left eye and Layers 10-18 are the right eye
Here's the file for each layer
Layer 1 = Lc
Layer 2 = 0_90_0.png - from the VR 180 Mask download
Layer 3 = Ll
Layer 4 = 0_-90_0.png
Layer 5 = Lr
Layer 6 = 90_0_0.png
Layer 7 = Lb
Layer 8 = -90_0_0.png
Layer 9 = Lt
Layer 10 = Rc
Layer 11 = 0_90_0.png
Layer 12 = Rl
Layer 13 = 0_-90_0.png
Layer 14 = Rr
Layer 15 = 90_0_0.png
Layer 16 = Lr
Layer 17 = -90_0_0.png
Layer 18 = Lb

You will notice that image files (.png and .bmp) will not be the same length as the video. Drag the right side each image file blue bar and it should snap to the end of the video length when you're near it.

With that done, there's another box that pops up when you select one of the blue bars on each layer

In that box for Layer 1-9 set X to "-1/2 of the MMD render resolution" and for Layer 10-18 set it to "1/2 of the MMD render resolution"
For a 1080p video this would be -540, 540

Next right click the layer button for layer's 3, 5, 7, 9, 12, 14, 16, 18 and check "Clip with the object above". This will mask the green portion of each layer.

Now you can render the video by going to File > Export as AVI - The file will be large as a heads up.

2020-07-06 02:45

Part 4

HandBrake

*In this part I have issues getting resolutions above 2160x1080, even when using presets for 4k. I'll use 2160x1080 as an example

Drag and drop the rendered video from AviUtl to the HandBrake window
You should see several tabs(Summary, Dimentions etc...)

Video tab
Set Framerate to "Same as source" or the fps you used the MMD render

Filters tab
Set Interlace Detetion to "Off"
Set Deinterlace to "Off"

Dimensions tab
Set Anamorphic to Custom
Set Modules to 2
Uncheck "Keep Aspect Ratio"
Set Width to 2160
Set Heigght to 1080
Display width should be 2160
PAR should be 1x1

Click "Save New Preset" and name/save

Click Browse and select where to save and what to name your file.
Click the Green Start Encode button.

----------------------------------------------------------

Bonus

Check out this forum for information to sync a fleshlight launch or compatible hardware with your video
http://realtouchscripts.com/viewforum.php?f=53&sid=88dcf0294c8d6bda6d388...

You can use JoyFunScripter to script the video using several different methods. The creator has since had their accounts posts deleted for an unknown reason so here's a copy with documentation included.
http://tstorage.info/lpe2jtibjvky

I use a mouse or Vive controller to create the scripts.

An alternative is this web based tool
http://realtouchscripts.com/viewtopic.php?f=59&t=10402
https://funscripter.herokuapp.com/

2020-07-06 02:53

I had a hell of a time finding this all and I'm sure others are as well. Hopefully this will help.

2020-07-08 05:33

Thank you! I spent hours looking for an explanation. Thank you for the step by step

2020-07-18 07:54

One thing that is helpful is that the EquirectangularX readme has some links to some mmd macros that you can use to automate the renders.
https://bowlroll.net/file/168099
https://dw.z5i.net/mmdm/

Unfortunately they are made for the Japanese version of MMD so if you're menu is in English you have to change the macro by replacing some words.
AVI出力 >> output AVI file
AVI出力設定 >> AVI-out

One other thing that tripped me up on this that I never saw explained is that if your model has a lot of physics the multiple renders might not line up. So like a ponytail might cut off at the seams or the ponytail will be in different positions for each eye. To avoid this you have to lock the physics. I'm not sure if there is an easier way to do this but I do this by using trace mode and registering the physics bones every 5th frame. Then render with physics turned off. But registering the physics manually would be madness so I made this macro to do it for me. First create two text files and put the following text in them.

PhysicsLock.txt
Physics Lock, Lock in Physics with Trace Mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;
;dialog to set amount of frames to loop through
input(1, repeat, How many frames)
calc(repeat, /, 5)
calc(repeat, ceil)
;set trace mode
menu(6, 3)
;select physics bones
menu(6, 15)

;loop through frames
loop(.\LockLoop.txt, repeat)

;set to no physics
menu(6, 4)

LockLoop.txt
Lock Loop, Loop for locking physics
;;;;;;;;;;;;;;;;;;;;
;progress to next frame
click(frame_next, 5)
;register bones
click(bone_reg)

Just select frame 0 of the model run the PhysicsLock macro and enter the number of frames your animation is.

2020-08-07 02:02

I'm getting double vision videos all renders. What is the recommended x and -x. Also how can I move the camera around without the render going crazy. I attached it to a dummy bone but it still messes up when I change rotation of the dummy bone.

2020-08-08 04:51

If you have the camera attached to a dummy bone to allow camera movement then use the following settings.

-Center
Camera angle
X 0, Y 0, Z 0
Equirectangular
Rx 0, Ry 0, Rz 90
Si 1, Tr 1

-Left
Camera angle
X 0, Y 90, Z 0
Equirectangular
Rx 0, Ry -90, Rz 90
Si 1, Tr 1

-Right
Camera angle
X 0, Y -90, Z 0
Equirectangular
Rx 0, Ry 90, Rz 90
Si 1, Tr 1

-Top
Camera angle
X -90, Y 0, Z 0
Equirectangular
Rx -90, Ry 0, Rz 90
Si 1, Tr 1

-Bottom
Camera angle
X 90, Y 0, Z 0
Equirectangular
Rx 90, Ry 0, Rz 90
Si 1, Tr 1

2020-08-08 17:56

Thank you very much!