current setup:
Camera NMKIN1: pos:[5056.133,-1003.658,4510.261]
Camera SMKIN1: pos:[-2458.205,5119.068,2236.561]
and no, the walkmeshes or not located at the origin.
blender script (never mind the cam-lens)
NMKIN1
# -------------------------------------------------------------------
# NMKIN_1 walkmesh (and cam) Blender Python script generated by SpooX
# -------------------------------------------------------------------
import bpy
import math
import mathutils
def createMesh(name, verts, edges, faces):
me = bpy.data.meshes.new(name+'Mesh')
ob = bpy.data.objects.new(name, me)
ob.show_name = True
bpy.context.scene.objects.link(ob)
me.from_pydata(verts, edges, faces)
me.update(calc_edges=True)
return ob
def putCam():
# Create a camera and get the shape name.
data = bpy.data.cameras.new('NMKIN_1Cam')
vcam = bpy.data.objects.new('NMKIN_1Cam', data)
vcam.location = (5056.133,4510.261,-1003.658)
vcam.rotation_euler = (0.0, 0.0, 0.0)
dx = 5055.429 - 5056.133
dy = 4509.716 - 4510.261
dz = -1003.203 - -1003.658
xRad = (3.14159/2.) + math.atan2(dz, math.sqrt(dy**2 + dx**2))
zRad = math.atan2(dy, dx) - (3.14159256 / 2.)
vcam.rotation_euler = mathutils.Euler((xRad, 0, zRad), 'XYZ')
vcam.scale = (1.0, 1.0, 1.0)
data.lens = 143.394
data.draw_size = 100
bpy.context.scene.objects.link(vcam)
def run():
verts1 = (
(-221.0,-272.0,3803.0),
(142.0,-272.0,3658.0),
(-205.0,-272.0,3660.0),
(153.0,-272.0,3808.0),
(-1065.0,-273.0,2610.0),
(-940.0,-273.0,2585.0),
(-1059.0,-273.0,2421.0),
(216.0,-272.0,3590.0),
(-530.0,-410.0,1217.0),
(-863.0,-412.0,1215.0),
(-530.0,-410.0,1404.0),
(427.0,-272.0,3484.0),
(428.0,-272.0,3543.0),
(-174.0,-272.0,2817.0),
(-498.0,-272.0,3027.0),
(-418.0,-272.0,3093.0),
(-959.0,-273.0,2470.0),
(-532.0,-412.0,1100.0),
(-864.0,-412.0,1100.0),
(-893.0,-279.0,2474.0),
(-928.0,-273.0,3058.0),
(-530.0,-412.0,899.0),
(-858.0,-412.0,897.0),
(-831.0,-411.0,1600.0),
(-575.0,-410.0,1560.0),
(-831.0,-410.0,1560.0),
(-575.0,-410.0,1600.0),
(-831.0,-411.0,1727.0),
(-575.0,-411.0,1727.0),
(-831.0,-278.0,1856.0),
(-575.0,-278.0,1856.0),
(-573.0,-274.0,1983.0),
(153.0,-272.0,3867.0),
(-831.0,-278.0,1983.0),
(-573.0,-274.0,2023.0),
(-831.0,-274.0,2023.0),
(-894.0,-274.0,2021.0),
(-1491.0,-273.0,3837.0),
(-914.0,-273.0,3141.0),
(-1257.0,-273.0,3281.0),
(-1644.0,-273.0,3281.0),
(-535.0,-274.0,2023.0),
(-652.0,-279.0,2672.0),
(-534.0,-274.0,2695.0),
(-972.0,-273.0,2328.0),
(-1434.0,-273.0,2332.0),
(-652.0,-279.0,2699.0),
(-887.0,-279.0,2587.0),
(-884.0,-279.0,2670.0),
(-1292.0,-273.0,3058.0),
(-1969.0,-273.0,3152.0),
(-1597.0,-273.0,3167.0),
(-1598.0,-273.0,3060.0),
(-1775.0,-273.0,2428.0),
(-1777.0,-273.0,3059.0),
(-1685.0,-273.0,2228.0),
(-1438.0,-273.0,2230.0),
(-1851.0,-273.0,2390.0),
(-1853.0,-273.0,2428.0),
(-1303.0,-273.0,3137.0),
(-1973.0,-273.0,4246.0),
(-1797.0,-273.0,4422.0),
(-1649.0,-273.0,4422.0),
(-1827.0,-273.0,4452.0),
(-2011.0,-273.0,4258.0),
(-1617.0,-273.0,4452.0),
(-1379.0,-273.0,4450.0),
(-1567.0,-273.0,4486.0),
(-1417.0,-273.0,4507.0),
(-1169.0,-273.0,4396.0),
(-903.0,-272.0,4202.0),
(-910.0,-272.0,3369.0),
(-910.0,-272.0,3287.0),
(-1568.0,-271.0,4559.0),
(-1420.0,-271.0,4559.0),
(-1568.0,-271.0,4664.0),
(-1415.0,-271.0,4665.0),
(-533.0,-272.0,3287.0),
(-533.0,-272.0,3369.0),
(-205.0,-272.0,3372.0),
(-204.0,-272.0,3309.0),
(-184.0,-272.0,3246.0),
(-531.0,-272.0,3063.0),
(-161.0,-272.0,2828.0),
(-143.0,-272.0,3248.0),
(-22.0,-272.0,3248.0),
(-141.0,-272.0,3304.0),
(-24.0,-272.0,3306.0),
(15.0,-272.0,3168.0),
(15.0,-272.0,3246.0),
(132.0,-272.0,2777.0),
(62.0,-272.0,3166.0),
(120.0,-272.0,3243.0),
(95.0,-272.0,3257.0),
(60.0,-272.0,3295.0),
(97.0,-272.0,3299.0),
(427.0,-272.0,3142.0),
(159.0,-272.0,3257.0),
(148.0,-272.0,2730.0),
(428.0,-272.0,3054.0),
(167.0,-272.0,3403.0),
(217.0,-272.0,3548.0),
(142.0,-272.0,3529.0),
(-27.0,-272.0,3476.0),
(-207.0,-272.0,3478.0),
(-529.0,-272.0,3484.0),
(-365.0,-272.0,3635.0),
(-863.0,-410.0,1404.0),
(-864.0,-410.0,1560.0),
(-530.0,-410.0,1560.0))
faces1 = (
(0,1,2),
(3,1,0),
(4,5,6),
(3,7,1),
(8,9,10),
(7,3,11),
(3,12,11),
(13,14,15),
(6,5,16),
(17,18,9),
(5,19,16),
(20,5,4),
(21,18,17),
(21,22,18),
(23,24,25),
(23,26,24),
(27,26,23),
(27,28,26),
(29,28,27),
(29,30,28),
(31,30,29),
(32,12,3),
(29,33,31),
(33,34,31),
(35,34,33),
(35,19,34),
(36,19,35),
(37,38,39),
(40,37,39),
(34,19,41),
(42,41,19),
(41,42,43),
(6,16,44),
(45,6,44),
(43,42,46),
(47,42,19),
(47,48,42),
(47,19,5),
(45,4,6),
(45,49,4),
(49,20,4),
(40,50,37),
(51,50,40),
(52,49,45),
(53,52,45),
(53,54,52),
(55,53,45),
(56,55,45),
(55,57,53),
(53,57,58),
(49,52,59),
(59,52,51),
(40,59,51),
(40,39,59),
(50,60,37),
(37,60,61),
(62,37,61),
(63,61,60),
(64,63,60),
(62,65,37),
(37,65,66),
(66,65,67),
(66,67,68),
(66,69,37),
(69,70,37),
(70,71,37),
(71,72,37),
(37,72,38),
(39,38,59),
(73,68,67),
(73,74,68),
(75,74,73),
(75,76,74),
(71,77,72),
(77,71,78),
(78,79,77),
(77,79,80),
(81,77,80),
(81,15,77),
(15,82,77),
(14,82,15),
(83,15,81),
(83,13,15),
(84,83,81),
(84,85,83),
(86,85,84),
(86,87,85),
(85,88,83),
(89,88,85),
(88,90,83),
(91,90,88),
(91,92,90),
(93,92,91),
(94,93,91),
(94,95,93),
(92,96,90),
(97,96,92),
(97,11,96),
(8,17,9),
(98,90,96),
(99,98,96),
(100,11,97),
(100,101,11),
(101,7,11),
(102,101,100),
(103,102,100),
(79,103,100),
(79,104,103),
(105,79,78),
(105,104,79),
(106,104,105),
(106,2,104),
(0,2,106),
(24,107,25),
(107,108,25),
(10,107,24),
(109,10,24),
(10,9,107))
ob1 = createMesh('NMKIN_1WalkMesh', verts1, [], faces1)
putCam()
return
if __name__ == "__main__":
run()
SMKIN1 script:
# -------------------------------------------------------------------
# SMKIN_1 walkmesh (and cam) Blender Python script generated by SpooX
# -------------------------------------------------------------------
import bpy
import math
import mathutils
def createMesh(name, verts, edges, faces):
me = bpy.data.meshes.new(name+'Mesh')
ob = bpy.data.objects.new(name, me)
ob.show_name = True
bpy.context.scene.objects.link(ob)
me.from_pydata(verts, edges, faces)
me.update(calc_edges=True)
return ob
def putCam():
# Create a camera and get the shape name.
data = bpy.data.cameras.new('SMKIN_1Cam')
vcam = bpy.data.objects.new('SMKIN_1Cam', data)
vcam.location = (-2458.205,2236.561,5119.068)
vcam.rotation_euler = (0.0, 0.0, 0.0)
dx = -2457.866 - -2458.205
dy = 2235.799 - 2236.561
dz = 5118.516 - 5119.068
xRad = (3.14159/2.) + math.atan2(dz, math.sqrt(dy**2 + dx**2))
zRad = math.atan2(dy, dx) - (3.14159256 / 2.)
vcam.rotation_euler = mathutils.Euler((xRad, 0, zRad), 'XYZ')
vcam.scale = (1.0, 1.0, 1.0)
data.lens = 143.394
data.draw_size = 100
bpy.context.scene.objects.link(vcam)
def run():
verts1 = (
(-1291.0,-277.0,3021.0),
(-1654.0,-277.0,3208.0),
(-1291.0,-277.0,3209.0),
(-1652.0,-277.0,3021.0),
(-1784.0,-277.0,2403.0),
(-1784.0,-277.0,3021.0),
(-1860.0,-277.0,2365.0),
(-1860.0,-277.0,2408.0),
(-1676.0,-277.0,2292.0),
(-1681.0,-277.0,2190.0),
(-1626.0,-277.0,2378.0),
(-1636.0,-277.0,2292.0),
(-967.0,-277.0,2340.0),
(-1137.0,-277.0,2340.0),
(-1141.0,-277.0,2378.0),
(-966.0,-277.0,2540.0),
(-853.0,-277.0,2434.0),
(-967.0,-277.0,2434.0),
(-966.0,-277.0,2626.0),
(-935.0,-277.0,2828.0),
(-935.0,-277.0,2626.0),
(-967.0,-277.0,2830.0),
(-512.0,-433.0,915.0),
(-875.0,-433.0,1156.0),
(-512.0,-433.0,1156.0),
(-875.0,-433.0,915.0),
(-967.0,-277.0,2898.0),
(-934.0,-277.0,3021.0),
(-934.0,-277.0,2899.0),
(-853.0,-277.0,2540.0),
(-1275.0,-277.0,2698.0),
(-557.0,-277.0,2307.0),
(-534.0,-277.0,2540.0),
(-534.0,-277.0,2310.0),
(-556.0,-277.0,2218.0),
(-802.0,-277.0,2037.0),
(-563.0,-277.0,2037.0),
(-853.0,-277.0,2037.0),
(-802.0,-264.0,1995.0),
(-563.0,-264.0,1995.0),
(-802.0,-264.0,1845.0),
(-563.0,-264.0,1845.0),
(-537.0,-277.0,2036.0),
(-537.0,-277.0,2217.0),
(-537.0,-277.0,1995.0),
(-786.0,-433.0,1513.0),
(-541.0,-433.0,1513.0),
(-512.0,-433.0,1513.0),
(-875.0,-433.0,1513.0),
(-541.0,-433.0,1624.0),
(-783.0,-433.0,1624.0),
(-244.0,-274.0,3874.0),
(182.0,-274.0,3874.0),
(117.0,-274.0,3808.0),
(-1347.0,-277.0,4415.0),
(-1984.0,-277.0,3208.0),
(-1985.0,-277.0,4235.0),
(273.0,-274.0,2959.0),
(339.0,-274.0,3106.0),
(394.0,-274.0,3061.0),
(-1396.0,-277.0,4783.0),
(-1575.0,-277.0,4470.0),
(-1574.0,-277.0,4783.0),
(-506.0,-274.0,3073.0),
(-270.0,-274.0,3091.0),
(-290.0,-274.0,2776.0),
(146.0,-274.0,3089.0),
(130.0,-274.0,2778.0),
(-1345.0,-273.0,3775.0),
(-929.0,-273.0,3388.0),
(-507.0,-273.0,3314.0),
(347.0,-274.0,3337.0),
(-272.0,-273.0,3235.0),
(-507.0,-273.0,3388.0),
(-914.0,-273.0,3314.0),
(394.0,-274.0,3474.0),
(393.0,-274.0,3336.0),
(-984.0,-277.0,4049.0),
(-984.0,-277.0,4141.0),
(396.0,-274.0,3176.0),
(347.0,-274.0,3265.0),
(396.0,-274.0,3265.0),
(346.0,-274.0,3169.0),
(-928.0,-277.0,4049.0),
(-929.0,-277.0,4207.0),
(-928.0,-277.0,4141.0),
(-508.0,-274.0,3536.0),
(148.0,-274.0,3231.0),
(-1395.0,-277.0,4470.0),
(-1628.0,-277.0,4416.0),
(-1787.0,-277.0,4416.0),
(-1139.0,-277.0,4415.0),
(-913.0,-277.0,3208.0))
faces1 = (
(0,1,2),
(1,0,3),
(4,5,3),
(4,6,7),
(6,8,9),
(8,10,11),
(6,10,8),
(10,6,4),
(12,13,14),
(15,16,17),
(3,10,4),
(18,19,20),
(19,18,21),
(22,23,24),
(23,22,25),
(26,27,28),
(0,27,26),
(16,15,29),
(14,17,12),
(30,14,10),
(3,30,10),
(30,3,0),
(26,30,0),
(30,26,21),
(18,30,21),
(18,15,30),
(14,15,17),
(15,14,30),
(31,29,32),
(29,31,16),
(31,32,33),
(16,31,34),
(35,16,34),
(36,35,34),
(16,35,37),
(38,36,39),
(36,38,35),
(40,38,39),
(41,40,39),
(42,34,43),
(34,42,36),
(36,42,44),
(39,36,44),
(24,45,46),
(45,24,23),
(24,46,47),
(45,23,48),
(49,45,50),
(45,49,46),
(41,50,40),
(50,41,49),
(51,52,53),
(54,55,56),
(57,58,59),
(60,61,62),
(63,64,65),
(66,65,64),
(65,66,67),
(54,68,55),
(68,54,69),
(70,64,63),
(71,72,73),
(66,57,67),
(64,70,72),
(73,72,70),
(74,68,69),
(68,74,2),
(1,68,2),
(71,75,76),
(77,69,54),
(78,77,54),
(79,80,81),
(80,79,82),
(69,77,83),
(84,78,54),
(78,84,85),
(70,69,73),
(51,73,86),
(53,73,51),
(71,53,75),
(53,71,73),
(87,72,71),
(80,87,71),
(69,70,74),
(58,66,82),
(82,66,87),
(61,88,89),
(89,88,54),
(89,56,90),
(54,56,89),
(84,54,91),
(68,1,55),
(2,74,92),
(61,60,88),
(58,57,66),
(80,82,87))
ob1 = createMesh('SMKIN_1WalkMesh', verts1, [], faces1)
putCam()
return
if __name__ == "__main__":
run()
you could also send me the script to export the whole scene from max to blender