# Role (角色) 你是一个专业的 Unity 场景原型搭建专家。你的任务是根据用户的文本描述...

創建於:2026年2月24日

使用 GPT-5.2 Thinking 回答 Chat01

問題

Role (角色)

你是一个专业的 Unity 场景原型搭建专家。你的任务是根据用户的文本描述,使用最基础的几何体,在三维空间中搭建出符合真实物理比例的场景原型,尽可能的细致,并严格以JSON格式输出搭建结果。

Core Rules (核心规则)

  1. 可用元素:你只能调用两种基础几何体来进行搭建:
        - cube (正方体):用于搭建绝大多数具有厚度或体积的物体(如墙壁、桌面、桌腿、沙发块)。
        - panel (平面):用于搭建极薄的表面(如地板、地毯、墙纸)。
  2. 坐标系与原点:
        - 遵循 Unity 左手坐标系:Y轴向上(高度),X轴左右(宽度),Z轴前后(深度)。
        - 场景的绝对原点固定为 (0, 0, 0),通常代表房间地面的正中心。
  3. 尺寸与位置 (Size & Position):
        - 所有的数值均以米 (m) 为单位。
        - position 指的是物体的中心点坐标(Pivot居中)。例如,一个高度(Y)为 1m 的 cube 放在地面(Y=0)上,它的中心点 Y 坐标应为 0.5。
  4. 旋转 (Rotation):
        - 使用欧拉角(Euler Angles),数值代表角度(Degrees),范围通常为 0 到 360。
        - 比如围绕 Y 轴旋转 90 度,表示为 {"x": 0, "y": 90, "z": 0}
  5. 颜色 (Color):
        - 必须使用标准的 6 位十六进制颜色码(HEX),并以 # 开头(例如:红色为 #FF0000,木头色可以为 #8B5A2B)。
        - 请根据真实世界中该物体的常规颜色来合理分配色值。
  6. 物体拆解逻辑:
        - 面对复杂物体(如椅子、桌子),你必须将其拆解为多个基础几何体的组合,并分别计算它们在空间中的正确坐标。

Output Format (输出格式)

你必须且只能输出一个合法的 JSON 对象,不要包含任何多余的解释性文本或Markdown代码块标记之外的文字。JSON结构必须严格遵守以下范式:

 [
{
"name": "物体中文",
"type": "只能是 cube 或 panel",
"description": "物体的中文简短描述",
"position": {"x": float, "y": float, "z": float},
"rotation": {"x": float, "y": float, "z": float},
"size": {"x": float, "y": float, "z": float},
"color": "#RRGGBB"
}
// ... 更多物体
]

Execution (执行指令)

请等待用户输入场景需求。接收需求后,请先在脑海中进行空间布局和坐标计算,然后直接输出构建该场景的完整 JSON 数据(尽可能细致)。

指令

搭建一个海边度假场景

思考

import math, json, itertools, pandas as pd def rot_y(offset, deg): x,y,z=offset r=math.radians(deg) cos=math.cos(r); sin=math.sin(r) return (xcos + zsin, y, -xsin + zcos) # wait Unity left-handed? In Unity, yaw positive rotates around Y clockwise when looking down? Actually Unity uses left-handed but rotation is same right-hand? Hmm. But for placement we just need approximate.

Ensuring chair component placement

I need to ensure proper coordinate transformation. In Unity, positive yaw rotates forward (Z+) to right (X+), and the yaw matrix seems correct for transforming points. For the chair, I’ll use seat center at (6, 0.33, -8), with legs offset by (±0.32, -0.175) from there.

Calculating chair component alignment

The leg center is at y=0.155, and the seat center at y=0.33, so the leg's local y-offset is -0.175. For the legs, the positions are: x=±0.32, z=±0.62, y=-0.175. The backrest center is at y=0.68 with a difference of +0.35. Now, let’s calculate the world positions.

def chair_components(base_pos, yaw, name_prefix): cx,cy,cz=base_pos objs=[] # seat objs.append((f"{name_prefix}-座面",(0,0,0), (0,0,0))) # backrest objs.append((f"{name_prefix}-靠背",(0,0.35,-0.95), (-60,0,0))) # tilt # legs for i,(sx,sz) in enumerate([(-0.32,-0.62),(0.32,-0.62),(-0.32,0.62),(0.32,0.62)], start=1): objs.append((f"{name_prefix}-桌腿{i}",(sx,-0.175,sz),(0,0,0))) # armrests (two) objs.append((f"{name_prefix}-扶手左",(-0.37,0.05,0.0),(0,0,0))) objs.append((f"{name_prefix}-扶手右",(0.37,0.05,0.0),(0,0,0))) return objs def transform(base, yaw, local): ox,oy,oz=rot_y(local, yaw) return (base[0]+ox, base[1]+oy, base[2]+oz) base=(6,0.33,-8) yaw=20 comps=chair_components(base,yaw,"躺椅1") world=[] for n,local,rot in comps: wp=transform(base,yaw,local) world.append((n,wp,rot)) world[:3], len(world)

Computing chair 2 positions

For chair 2, the seat is at (10, 0.33, -10) with a yaw of 30. I'll calculate the new positions for the components, such as the armrests and backrest, based on this setup. I’ll apply the yaw and double-check the placement as I go.

base2=(10,0.33,-10) yaw2=30 comps2=chair_components(base2,yaw2,"躺椅2") world2=[(n,transform(base2,yaw2,local),rot) for n,local,rot in comps2] world2[:3]

Adjusting size and position for objects

I need to rename the "legs" to "椅腿" instead of "桌腿," and adjust a few other components, like armrests. The seat will be a 0.7 x 0.08 x 1.4 cube, rotating around the yaw axis. I'll set the towel panel at (6.5, 0.025, -8.2), adjusted for size and rotated accordingly, with two towels for the chairs.

Adjusting towel and chair positions

To avoid overlap, the towel should be moved slightly deeper into the sand, with a thickness of 0.002. The center for the towel should be at y=0.021. The chair legs are at y=0.02, so raising the chair by 0.01 or adjusting the towel’s thickness will help avoid intersection.

Adjusting chair height and position

I’ll raise the chairs by 0.005, so the chair legs’ bottom is at y=0.025. That means the seat center will now be at y=0.335 and leg centers at y=0.16. I'll update all calculations based on this new base y position to ensure everything aligns correctly.

def chair_world(base_xy, yaw, prefix, base_bottom=0.025): # base refers to seat center; compute based on bottom at base_bottom. # seat thickness 0.08, leg height 0.27, so seat bottom at base_bottom+0.27, seat center y: seat_center_y=base_bottom+0.27+0.04 base=(base_xy[0], seat_center_y, base_xy[1]) comps=[] comps.append((f"{prefix}-座面",(0,0,0),(0,0,0),"cube",{"x":0.7,"y":0.08,"z":1.4})) comps.append((f"{prefix}-靠背",(0,0.35,-0.95),(-60,0,0),"cube",{"x":0.7,"y":0.08,"z":0.9})) for i,(sx,sz) in enumerate([(-0.32,-0.62),(0.32,-0.62),(-0.32,0.62),(0.32,0.62)], start=1): comps.append((f"{prefix}-椅腿{i}",(sx,-0.175,sz),(0,0,0),"cube",{"x":0.06,"y":0.27,"z":0.06})) comps.append((f"{prefix}-扶手左",(-0.37,0.05,0.0),(0,0,0),"cube",{"x":0.06,"y":0.06,"z":1.4})) comps.append((f"{prefix}-扶手右",(0.37,0.05,0.0),(0,0,0),"cube",{"x":0.06,"y":0.06,"z":1.4})) out=[] for n,local,rot_local,typ,size in comps: wp=transform(base,yaw,local) out.append((n,wp,{"x":rot_local[0],"y":yaw+rot_local[1],"z":rot_local[2]}, typ,size)) return out

chair1=chair_world((6,-8),20,"躺椅1",0.025) chair2=chair_world((10,-10),30,"躺椅2",0.025) chair1[0], chair1[2]

Adjusting towel and object positioning

I’ll keep towel thickness at 0.005, placing the towel’s bottom at y=0.02 and center at y=0.0225, top at y=0.025 to avoid any intersection with the chair. For towel1, I'll position it at (6, 0.0225, -8) with a size of 2.1x0.005x1.2, rotated y=20. Similarly, I’ll adjust towel2 for chair2. For the beach table, I'll set its base at y=0.02 and center at y=0.245, positioning it at (8.4, 0.245, -9) with a y=0 rotation. The cooler is located at (8.8, 0.22, -6.2) with a color of #E0F7FF.

Beach scene details and additions

For the beach scene, I’m placing a golden beach ball (0.25 cube) at position (7.6, 0.145, -6.8), with color #FFD700. I'll also add a sandcastle with cubes, a surfboard near the water, and a wooden deck walkway near the cabana. The palm tree will have three trunk segments with leaves at y=6.02, creating a tropical feel. I'll add some coconuts and possibly a beach fence too. The second palm tree will have a slight lean and rotated trunk segments.

Crafting the beach environment objects

For the environment, I'm adding a small fire pit using cubes, and for ocean waves, I’ll use three thin panels slightly above the water to represent foam stripes. A smaller pier can be included, keeping it realistic. I’ll place objects on the sand (z negative), with the shoreline at z=28. I’ll create a list of object details in JSON format, ensuring correct positioning and rotation for realism. Everything will be saved with the right size, color, and format.

Creating the JSON output for objects

I’m going to generate the JSON list using Python to ensure it's valid. Once I build the list with dictionaries for the objects, I’ll dump it into a proper JSON array format. Then, I'll paste the final output as raw JSON for use without any additional formatting. Let's get that handled!

import math, json objs=[]

def add(name, typ, desc, pos, rot, size, color): objs.append({ "name": name, "type": typ, "description": desc, "position": {"x": float(pos[0]), "y": float(pos[1]), "z": float(pos[2])}, "rotation": {"x": float(rot[0]), "y": float(rot[1]), "z": float(rot[2])}, "size": {"x": float(size[0]), "y": float(size[1]), "z": float(size[2])}, "color": color })

Ground

add("沙滩地面","panel","大面积沙滩地面基底",(0,0.01,0),(0,0,0),(60,0.02,60),"#D2B48C") add("湿沙带","panel","靠近海水的湿沙过渡带",(0,0.011,24),(0,0,0),(60,0.022,12),"#C2A27A") add("海水面","panel","平静海面水体",(0,0.01,75),(0,0,0),(60,0.02,80),"#1E90FF") add("浪花1","panel","近岸浪花泡沫条带",(0,0.012,34),(0,0,0),(60,0.01,2.5),"#E6F7FF") add("浪花2","panel","近岸浪花泡沫条带",(0,0.012,46),(0,0,0),(60,0.01,2.5),"#E6F7FF") add("浪花3","panel","远处浪花泡沫条带",(0,0.012,60),(0,0,0),(60,0.01,2.5),"#E6F7FF")

Sun

add("太阳","cube","远处天空中的太阳参照物",(0,80,150),(0,0,0),(8,8,2),"#FFD54A")

Wooden deck walkway near cabana

add("木栈道","panel","通往遮阳棚的木栈道",( -12,0.04,-16),(0,0,0),(2.2,0.04,7.0),"#8B5A2B") add("木栈道台阶1","cube","栈道前端一级台阶",(-12,0.03,-19.8),(0,0,0),(2.2,0.06,0.6),"#7A4E26") add("木栈道台阶2","cube","栈道前端二级台阶",(-12,0.015,-20.25),(0,0,0),(2.2,0.03,0.3),"#7A4E26")

Cabana structure

floor_top=0.02+0.05 add("遮阳棚地台","panel","木质遮阳棚地台",(-12,0.045,-10),(0,0,0),(4.0,0.05,3.0),"#A67C52")

Posts

post_size=(0.15,2.5,0.15) post_y= floor_top + post_size[1]/2 for idx,(px,pz) in enumerate([(-14,-11.5),(-10,-11.5),(-14,-8.5),(-10,-8.5)], start=1): add(f"遮阳棚立柱{idx}","cube","遮阳棚支撑立柱",(px,post_y,pz),(0,0,0),post_size,"#8B5A2B")

Roof

roof_size=(4.6,0.12,3.6) roof_bottom=floor_top+post_size[1] roof_y=roof_bottom+roof_size[1]/2 add("遮阳棚顶","panel","遮阳棚顶部遮阳篷布",(-12,roof_y,-10),(0,0,0),roof_size,"#F5F0E6")

Back wall curtain

add("遮阳棚后帘","panel","后侧半透遮挡帘",(-12,1.07,-11.525),(0,0,0),(4.0,2.0,0.05),"#FFF7E0")

Side curtains

add("遮阳棚左帘","panel","左侧半透遮挡帘",(-14.025,1.07,-10),(0,0,0),(0.05,2.0,3.0),"#FFF7E0") add("遮阳棚右帘","panel","右侧半透遮挡帘",(-9.975,1.07,-10),(0,0,0),(0.05,2.0,3.0),"#FFF7E0")

Hammock

add("吊床布","panel","遮阳棚内的吊床布面",(-12,0.75,-9.8),(0,15,0),(2.2,0.06,0.9),"#E6FFE6")

Hammock supports ropes (thin cubes)

add("吊床绳左","cube","吊床左侧连接绳",(-13.7,1.2,-9.9),(0,15,20),(0.05,1.0,0.05),"#C8C8C8") add("吊床绳右","cube","吊床右侧连接绳",(-10.3,1.2,-9.7),(0,15,-20),(0.05,1.0,0.05),"#C8C8C8")

Umbrella

add("遮阳伞底座","cube","遮阳伞的重型底座",(8,0.07,-5),(0,0,0),(0.4,0.1,0.4),"#666666") add("遮阳伞杆","cube","遮阳伞金属伞杆",(8,1.27,-5),(0,0,0),(0.08,2.3,0.08),"#B0B0B0") add("遮阳伞伞面","panel","遮阳伞伞面(略微倾斜)",(8,2.445,-5),(15,0,0),(2.4,0.05,2.4),"#FF4D4D") add("遮阳伞伞边","panel","伞边装饰条",(8,2.40,-5),(15,0,0),(2.55,0.02,2.55),"#FFFFFF")

Side table

add("沙滩小桌","cube","伞下小边桌",(8.4,0.245,-7.0),(0,25,0),(0.55,0.45,0.55),"#D9C2A5")

Cooler and items

add("冰箱冷藏箱","cube","便携冷藏箱",(8.9,0.22,-6.2),(0,10,0),(0.6,0.4,0.35),"#E0F7FF") add("饮料罐1","cube","冷藏箱旁的饮料罐",(8.55,0.12,-6.05),(0,0,0),(0.07,0.12,0.07),"#FFCC00") add("饮料罐2","cube","冷藏箱旁的饮料罐",(8.62,0.12,-6.15),(0,20,0),(0.07,0.12,0.07),"#00CC66") add("水果盘","cube","小桌上的水果盘",(8.4,0.50,-7.0),(0,0,0),(0.35,0.03,0.35),"#F2E6C9") add("水果1","cube","盘里的水果",(8.32,0.535,-7.04),(0,0,0),(0.10,0.10,0.10),"#FF6347") add("水果2","cube","盘里的水果",(8.46,0.535,-6.92),(0,0,0),(0.09,0.09,0.09),"#FFD700") add("水果3","cube","盘里的水果",(8.46,0.535,-7.08),(0,0,0),(0.08,0.08,0.08),"#8BC34A")

Beach ball

add("沙滩球","cube","沙滩玩具球(用立方体近似)",(7.6,0.145,-6.8),(0,0,0),(0.25,0.25,0.25),"#FFD700")

Surfboard

add("冲浪板","panel","平放在沙滩上的冲浪板",(2.0,0.04,12.0),(5,25,0),(0.55,0.03,2.1),"#FFFFFF") add("冲浪板条纹","panel","冲浪板上的装饰条纹",(2.0,0.055,12.0),(5,25,0),(0.12,0.01,2.05),"#00AEEF")

Sandcastle near shore

add("沙堡底座","cube","沙堡底座",( -3.0,0.12,18.5),(0,0,0),(1.2,0.2,1.2),"#CDB38B") add("沙堡塔1","cube","沙堡主塔",(-3.4,0.40,18.5),(0,0,0),(0.45,0.36,0.45),"#CDB38B") add("沙堡塔2","cube","沙堡副塔",(-2.6,0.33,18.5),(0,0,0),(0.35,0.30,0.35),"#CDB38B") add("沙堡门洞","cube","沙堡门洞凹陷表现(浅色占位)",(-3.0,0.20,19.05),(0,0,0),(0.40,0.18,0.10),"#E6D5B8") add("沙堡小旗杆","cube","沙堡小旗杆",(-3.4,0.70,18.5),(0,0,0),(0.03,0.50,0.03),"#8B5A2B") add("沙堡小旗","panel","沙堡小旗面",(-3.33,0.88,18.5),(0,0,0),(0.25,0.02,0.18),"#FF6B6B")

Chairs and towels

Towels under chairs

add("沙滩毛巾1","panel","躺椅1下方的毛巾",(6.0,0.0225,-8.0),(0,20,0),(1.2,0.005,2.1),"#4FC3F7") add("沙滩毛巾2","panel","躺椅2下方的毛巾",(10.0,0.0225,-10.0),(0,30,0),(1.2,0.005,2.1),"#FFB74D")

Add chair components from computed world positions

def add_chair(world_list, fabric_color="#F5F5F5", frame_color="#C0C0C0"): for n,(x,y,z),rot,typ,size in world_list: if "座面" in n or "靠背" in n: color=fabric_color desc="沙滩躺椅布面" if "座面" in n else "沙滩躺椅靠背布面" elif "扶手" in n: color=frame_color desc="沙滩躺椅侧向扶手/边框" else: color=frame_color desc="沙滩躺椅支撑腿" add(n, typ, desc, (x,y,z), (rot["x"],rot["y"],rot["z"]), (size["x"],size["y"],size["z"]), color)

add_chair(chair1, fabric_color="#F7F7F7", frame_color="#BDBDBD") add_chair(chair2, fabric_color="#F7F7F7", frame_color="#BDBDBD")

Extra beach chair (simple stool) near cabana

add("折叠椅座面","cube","遮阳棚外的折叠椅座面",(-10.0,0.42,-7.5),(0,120,0),(0.45,0.05,0.45),"#2E7D32") for i,(dx,dz) in enumerate([(-0.18,-0.18),(0.18,-0.18),(-0.18,0.18),(0.18,0.18)], start=1): add(f"折叠椅腿{i}","cube","折叠椅支撑腿",(-10.0+dx,0.22,-7.5+dz),(0,120,0),(0.04,0.40,0.04),"#444444")

Palm trees

def add_palm(base_x, base_z, prefix, yaw=0, lean_z=0): # trunk segments trunk_color="#A9744F" leaf_color="#2E8B57" y0=0.02 segs=[((0.55,2.0,0.55),1.0), ((0.50,2.0,0.50),3.0), ((0.45,2.0,0.45),5.0)] for j,(size,cy) in enumerate(segs, start=1): add(f"{prefix}树干段{j}","cube","棕榈树树干段",(base_x, y0+cy, base_z),(0,yaw,lean_z),(size[0],size[1],size[2]),trunk_color) # coconuts cluster add(f"{prefix}椰子1","cube","树冠处椰子",(base_x+0.15,6.05,base_z+0.10),(0,0,0),(0.22,0.22,0.22),"#5B3A29") add(f"{prefix}椰子2","cube","树冠处椰子",(base_x-0.12,6.00,base_z-0.08),(0,0,0),(0.20,0.20,0.20),"#5B3A29") add(f"{prefix}椰子3","cube","树冠处椰子",(base_x+0.05,5.95,base_z-0.15),(0,0,0),(0.18,0.18,0.18),"#5B3A29") # leaves (6 panels radial) leaf_len=2.2 leaf_w=0.45 for k,ang in enumerate([0,60,120,180,240,300], start=1): add(f"{prefix}棕榈叶{k}","panel","树冠棕榈叶片",(base_x,6.25,base_z),(25,yaw+ang,0),(leaf_w,0.04,leaf_len),leaf_color)

add_palm(-20,5,"棕榈树1",yaw=15,lean_z=2) add_palm(18,10,"棕榈树2",yaw=200,lean_z=-3)

Beach rocks

add("礁石1","cube","沙滩上的大礁石",( -22,0.35,-2),(0,35,0),(1.6,0.7,1.2),"#7D7D7D") add("礁石2","cube","沙滩上的小礁石",( -19.5,0.22,1.2),(0,10,0),(0.9,0.45,0.7),"#8A8A8A") add("礁石3","cube","靠近海边的礁石",( 14,0.30,20.5),(0,80,0),(1.2,0.6,1.0),"#7A7A7A")

Beach fire pit

add("篝火坑外圈","cube","沙滩篝火坑外圈",( -6.5,0.09,-2.5),(0,0,0),(1.2,0.18,1.2),"#9E9E9E") add("篝火坑内坑","cube","篝火坑内坑",( -6.5,0.07,-2.5),(0,0,0),(0.8,0.14,0.8),"#616161") add("木柴1","cube","篝火坑内的木柴",( -6.5,0.12,-2.5),(0,35,0),(0.10,0.10,0.70),"#6D4C41") add("木柴2","cube","篝火坑内的木柴",( -6.5,0.12,-2.5),(0,125,0),(0.10,0.10,0.70),"#6D4C41")

Lifebuoy stand near shore

add("救生圈支架","cube","救生圈支架立柱",( -1.5,0.95,16.0),(0,0,0),(0.10,1.8,0.10),"#B0B0B0") add("救生圈横杆","cube","救生圈支架横杆",( -1.5,1.70,16.0),(0,0,0),(0.90,0.08,0.08),"#B0B0B0") add("救生圈","cube","救生圈(用立方体占位)",( -1.5,1.55,16.0),(0,0,0),(0.55,0.55,0.12),"#FF6B6B") add("救生圈白条","cube","救生圈白色装饰条",( -1.5,1.55,16.0),(0,45,0),(0.60,0.10,0.14),"#FFFFFF")

len(objs)

Finalizing panel sizes and rounding decimals

Okay, I need to make sure the panel sizes are correct, especially with small thickness. The JSON will have lots of numbers with many decimals because of calculations. I'll round these floats to 3 decimal places for readability. I'll also print it in a pretty format for the user with no extra sorting or indenting. Time to finalize these!

def round_dict(d): for k,v in d.items(): if isinstance(v,float): d[k]=round(v,3) return d

for o in objs: o["position"]=round_dict(o["position"]) o["rotation"]=round_dict(o["rotation"]) o["size"]=round_dict(o["size"])

json_text=json.dumps(objs, ensure_ascii=False, indent=2) json_text[:1000]

Handling rotations and ensuring JSON format

First, I need to ensure no trailing spaces and follow the correct output format — which should be a JSON array, not just an object. I'll adjust rotations: for any negative values (like -60 for the backrest's x rotation), I’ll convert them to positive values within the 0-360 range. Let's implement this in the final objects!

for o in objs: for axis in ["x","y","z"]: v=o["rotation"][axis] if v<0: o["rotation"][axis]=round(v%360,3)

Re-dump

json_text=json.dumps(objs, ensure_ascii=False, indent=2)

find any negative

neg=[] for o in objs: for axis in ["x","y","z"]: if o["rotation"][axis]<0: neg.append((o["name"],axis,o["rotation"][axis])) neg[:5], len(neg)

Thought for 5m 20s

回答

[ { "name": "沙滩地面", "type": "panel", "description": "大面积沙滩地面基底", "position": { "x": 0.0, "y": 0.01, "z": 0.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.02, "z": 60.0 }, "color": "#D2B48C" }, { "name": "湿沙带", "type": "panel", "description": "靠近海水的湿沙过渡带", "position": { "x": 0.0, "y": 0.011, "z": 24.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.022, "z": 12.0 }, "color": "#C2A27A" }, { "name": "海水面", "type": "panel", "description": "平静海面水体", "position": { "x": 0.0, "y": 0.01, "z": 75.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.02, "z": 80.0 }, "color": "#1E90FF" }, { "name": "浪花1", "type": "panel", "description": "近岸浪花泡沫条带", "position": { "x": 0.0, "y": 0.012, "z": 34.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.01, "z": 2.5 }, "color": "#E6F7FF" }, { "name": "浪花2", "type": "panel", "description": "近岸浪花泡沫条带", "position": { "x": 0.0, "y": 0.012, "z": 46.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.01, "z": 2.5 }, "color": "#E6F7FF" }, { "name": "浪花3", "type": "panel", "description": "远处浪花泡沫条带", "position": { "x": 0.0, "y": 0.012, "z": 60.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 60.0, "y": 0.01, "z": 2.5 }, "color": "#E6F7FF" }, { "name": "太阳", "type": "cube", "description": "远处天空中的太阳参照物", "position": { "x": 0.0, "y": 80.0, "z": 150.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 8.0, "y": 8.0, "z": 2.0 }, "color": "#FFD54A" }, { "name": "木栈道", "type": "panel", "description": "通往遮阳棚的木栈道", "position": { "x": -12.0, "y": 0.04, "z": -16.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 2.2, "y": 0.04, "z": 7.0 }, "color": "#8B5A2B" }, { "name": "木栈道台阶1", "type": "cube", "description": "栈道前端一级台阶", "position": { "x": -12.0, "y": 0.03, "z": -19.8 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 2.2, "y": 0.06, "z": 0.6 }, "color": "#7A4E26" }, { "name": "木栈道台阶2", "type": "cube", "description": "栈道前端二级台阶", "position": { "x": -12.0, "y": 0.015, "z": -20.25 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 2.2, "y": 0.03, "z": 0.3 }, "color": "#7A4E26" }, { "name": "遮阳棚地台", "type": "panel", "description": "木质遮阳棚地台", "position": { "x": -12.0, "y": 0.045, "z": -10.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 4.0, "y": 0.05, "z": 3.0 }, "color": "#A67C52" }, { "name": "遮阳棚立柱1", "type": "cube", "description": "遮阳棚支撑立柱", "position": { "x": -14.0, "y": 1.32, "z": -11.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.15, "y": 2.5, "z": 0.15 }, "color": "#8B5A2B" }, { "name": "遮阳棚立柱2", "type": "cube", "description": "遮阳棚支撑立柱", "position": { "x": -10.0, "y": 1.32, "z": -11.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.15, "y": 2.5, "z": 0.15 }, "color": "#8B5A2B" }, { "name": "遮阳棚立柱3", "type": "cube", "description": "遮阳棚支撑立柱", "position": { "x": -14.0, "y": 1.32, "z": -8.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.15, "y": 2.5, "z": 0.15 }, "color": "#8B5A2B" }, { "name": "遮阳棚立柱4", "type": "cube", "description": "遮阳棚支撑立柱", "position": { "x": -10.0, "y": 1.32, "z": -8.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.15, "y": 2.5, "z": 0.15 }, "color": "#8B5A2B" }, { "name": "遮阳棚顶", "type": "panel", "description": "遮阳棚顶部遮阳篷布", "position": { "x": -12.0, "y": 2.63, "z": -10.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 4.6, "y": 0.12, "z": 3.6 }, "color": "#F5F0E6" }, { "name": "遮阳棚后帘", "type": "panel", "description": "后侧半透遮挡帘", "position": { "x": -12.0, "y": 1.07, "z": -11.525 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 4.0, "y": 2.0, "z": 0.05 }, "color": "#FFF7E0" }, { "name": "遮阳棚左帘", "type": "panel", "description": "左侧半透遮挡帘", "position": { "x": -14.025, "y": 1.07, "z": -10.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.05, "y": 2.0, "z": 3.0 }, "color": "#FFF7E0" }, { "name": "遮阳棚右帘", "type": "panel", "description": "右侧半透遮挡帘", "position": { "x": -9.975, "y": 1.07, "z": -10.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.05, "y": 2.0, "z": 3.0 }, "color": "#FFF7E0" }, { "name": "吊床布", "type": "panel", "description": "遮阳棚内的吊床布面", "position": { "x": -12.0, "y": 0.75, "z": -9.8 }, "rotation": { "x": 0.0, "y": 15.0, "z": 0.0 }, "size": { "x": 2.2, "y": 0.06, "z": 0.9 }, "color": "#E6FFE6" }, { "name": "吊床绳左", "type": "cube", "description": "吊床左侧连接绳", "position": { "x": -13.7, "y": 1.2, "z": -9.9 }, "rotation": { "x": 0.0, "y": 15.0, "z": 20.0 }, "size": { "x": 0.05, "y": 1.0, "z": 0.05 }, "color": "#C8C8C8" }, { "name": "吊床绳右", "type": "cube", "description": "吊床右侧连接绳", "position": { "x": -10.3, "y": 1.2, "z": -9.7 }, "rotation": { "x": 0.0, "y": 15.0, "z": 340.0 }, "size": { "x": 0.05, "y": 1.0, "z": 0.05 }, "color": "#C8C8C8" }, { "name": "遮阳伞底座", "type": "cube", "description": "遮阳伞的重型底座", "position": { "x": 8.0, "y": 0.07, "z": -5.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.4, "y": 0.1, "z": 0.4 }, "color": "#666666" }, { "name": "遮阳伞杆", "type": "cube", "description": "遮阳伞金属伞杆", "position": { "x": 8.0, "y": 1.27, "z": -5.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.08, "y": 2.3, "z": 0.08 }, "color": "#B0B0B0" }, { "name": "遮阳伞伞面", "type": "panel", "description": "遮阳伞伞面(略微倾斜)", "position": { "x": 8.0, "y": 2.445, "z": -5.0 }, "rotation": { "x": 15.0, "y": 0.0, "z": 0.0 }, "size": { "x": 2.4, "y": 0.05, "z": 2.4 }, "color": "#FF4D4D" }, { "name": "遮阳伞伞边", "type": "panel", "description": "伞边装饰条", "position": { "x": 8.0, "y": 2.4, "z": -5.0 }, "rotation": { "x": 15.0, "y": 0.0, "z": 0.0 }, "size": { "x": 2.55, "y": 0.02, "z": 2.55 }, "color": "#FFFFFF" }, { "name": "沙滩小桌", "type": "cube", "description": "伞下小边桌", "position": { "x": 8.4, "y": 0.245, "z": -7.0 }, "rotation": { "x": 0.0, "y": 25.0, "z": 0.0 }, "size": { "x": 0.55, "y": 0.45, "z": 0.55 }, "color": "#D9C2A5" }, { "name": "冰箱冷藏箱", "type": "cube", "description": "便携冷藏箱", "position": { "x": 8.9, "y": 0.22, "z": -6.2 }, "rotation": { "x": 0.0, "y": 10.0, "z": 0.0 }, "size": { "x": 0.6, "y": 0.4, "z": 0.35 }, "color": "#E0F7FF" }, { "name": "饮料罐1", "type": "cube", "description": "冷藏箱旁的饮料罐", "position": { "x": 8.55, "y": 0.12, "z": -6.05 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.07, "y": 0.12, "z": 0.07 }, "color": "#FFCC00" }, { "name": "饮料罐2", "type": "cube", "description": "冷藏箱旁的饮料罐", "position": { "x": 8.62, "y": 0.12, "z": -6.15 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.07, "y": 0.12, "z": 0.07 }, "color": "#00CC66" }, { "name": "水果盘", "type": "cube", "description": "小桌上的水果盘", "position": { "x": 8.4, "y": 0.5, "z": -7.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.35, "y": 0.03, "z": 0.35 }, "color": "#F2E6C9" }, { "name": "水果1", "type": "cube", "description": "盘里的水果", "position": { "x": 8.32, "y": 0.535, "z": -7.04 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.1, "y": 0.1, "z": 0.1 }, "color": "#FF6347" }, { "name": "水果2", "type": "cube", "description": "盘里的水果", "position": { "x": 8.46, "y": 0.535, "z": -6.92 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.09, "y": 0.09, "z": 0.09 }, "color": "#FFD700" }, { "name": "水果3", "type": "cube", "description": "盘里的水果", "position": { "x": 8.46, "y": 0.535, "z": -7.08 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.08, "y": 0.08, "z": 0.08 }, "color": "#8BC34A" }, { "name": "沙滩球", "type": "cube", "description": "沙滩玩具球(用立方体近似)", "position": { "x": 7.6, "y": 0.145, "z": -6.8 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.25, "y": 0.25, "z": 0.25 }, "color": "#FFD700" }, { "name": "冲浪板", "type": "panel", "description": "平放在沙滩上的冲浪板", "position": { "x": 2.0, "y": 0.04, "z": 12.0 }, "rotation": { "x": 5.0, "y": 25.0, "z": 0.0 }, "size": { "x": 0.55, "y": 0.03, "z": 2.1 }, "color": "#FFFFFF" }, { "name": "冲浪板条纹", "type": "panel", "description": "冲浪板上的装饰条纹", "position": { "x": 2.0, "y": 0.055, "z": 12.0 }, "rotation": { "x": 5.0, "y": 25.0, "z": 0.0 }, "size": { "x": 0.12, "y": 0.01, "z": 2.05 }, "color": "#00AEEF" }, { "name": "沙堡底座", "type": "cube", "description": "沙堡底座", "position": { "x": -3.0, "y": 0.12, "z": 18.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 1.2, "y": 0.2, "z": 1.2 }, "color": "#CDB38B" }, { "name": "沙堡塔1", "type": "cube", "description": "沙堡主塔", "position": { "x": -3.4, "y": 0.4, "z": 18.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.36, "z": 0.45 }, "color": "#CDB38B" }, { "name": "沙堡塔2", "type": "cube", "description": "沙堡副塔", "position": { "x": -2.6, "y": 0.33, "z": 18.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.35, "y": 0.3, "z": 0.35 }, "color": "#CDB38B" }, { "name": "沙堡门洞", "type": "cube", "description": "沙堡门洞凹陷表现(浅色占位)", "position": { "x": -3.0, "y": 0.2, "z": 19.05 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.4, "y": 0.18, "z": 0.1 }, "color": "#E6D5B8" }, { "name": "沙堡小旗杆", "type": "cube", "description": "沙堡小旗杆", "position": { "x": -3.4, "y": 0.7, "z": 18.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.03, "y": 0.5, "z": 0.03 }, "color": "#8B5A2B" }, { "name": "沙堡小旗", "type": "panel", "description": "沙堡小旗面", "position": { "x": -3.33, "y": 0.88, "z": 18.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.25, "y": 0.02, "z": 0.18 }, "color": "#FF6B6B" }, { "name": "沙滩毛巾1", "type": "panel", "description": "躺椅1下方的毛巾", "position": { "x": 6.0, "y": 0.022, "z": -8.0 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 1.2, "y": 0.005, "z": 2.1 }, "color": "#4FC3F7" }, { "name": "沙滩毛巾2", "type": "panel", "description": "躺椅2下方的毛巾", "position": { "x": 10.0, "y": 0.022, "z": -10.0 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 1.2, "y": 0.005, "z": 2.1 }, "color": "#FFB74D" }, { "name": "躺椅1-座面", "type": "cube", "description": "沙滩躺椅布面", "position": { "x": 6.0, "y": 0.335, "z": -8.0 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.7, "y": 0.08, "z": 1.4 }, "color": "#F7F7F7" }, { "name": "躺椅1-靠背", "type": "cube", "description": "沙滩躺椅靠背布面", "position": { "x": 5.675, "y": 0.685, "z": -8.893 }, "rotation": { "x": 300.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.7, "y": 0.08, "z": 0.9 }, "color": "#F7F7F7" }, { "name": "躺椅1-椅腿1", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 5.487, "y": 0.16, "z": -8.473 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅1-椅腿2", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 6.089, "y": 0.16, "z": -8.692 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅1-椅腿3", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 5.911, "y": 0.16, "z": -7.308 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅1-椅腿4", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 6.513, "y": 0.16, "z": -7.527 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅1-扶手左", "type": "cube", "description": "沙滩躺椅侧向扶手/边框", "position": { "x": 5.652, "y": 0.385, "z": -7.873 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.06, "z": 1.4 }, "color": "#BDBDBD" }, { "name": "躺椅1-扶手右", "type": "cube", "description": "沙滩躺椅侧向扶手/边框", "position": { "x": 6.348, "y": 0.385, "z": -8.127 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.06, "z": 1.4 }, "color": "#BDBDBD" }, { "name": "躺椅2-座面", "type": "cube", "description": "沙滩躺椅布面", "position": { "x": 10.0, "y": 0.335, "z": -10.0 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.7, "y": 0.08, "z": 1.4 }, "color": "#F7F7F7" }, { "name": "躺椅2-靠背", "type": "cube", "description": "沙滩躺椅靠背布面", "position": { "x": 9.525, "y": 0.685, "z": -10.823 }, "rotation": { "x": 300.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.7, "y": 0.08, "z": 0.9 }, "color": "#F7F7F7" }, { "name": "躺椅2-椅腿1", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 9.413, "y": 0.16, "z": -10.377 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅2-椅腿2", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 9.967, "y": 0.16, "z": -10.697 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅2-椅腿3", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 10.033, "y": 0.16, "z": -9.303 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅2-椅腿4", "type": "cube", "description": "沙滩躺椅支撑腿", "position": { "x": 10.587, "y": 0.16, "z": -9.623 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.27, "z": 0.06 }, "color": "#BDBDBD" }, { "name": "躺椅2-扶手左", "type": "cube", "description": "沙滩躺椅侧向扶手/边框", "position": { "x": 9.68, "y": 0.385, "z": -9.815 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.06, "z": 1.4 }, "color": "#BDBDBD" }, { "name": "躺椅2-扶手右", "type": "cube", "description": "沙滩躺椅侧向扶手/边框", "position": { "x": 10.32, "y": 0.385, "z": -10.185 }, "rotation": { "x": 0.0, "y": 30.0, "z": 0.0 }, "size": { "x": 0.06, "y": 0.06, "z": 1.4 }, "color": "#BDBDBD" }, { "name": "折叠椅座面", "type": "cube", "description": "遮阳棚外的折叠椅座面", "position": { "x": -10.0, "y": 0.42, "z": -7.5 }, "rotation": { "x": 0.0, "y": 120.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.05, "z": 0.45 }, "color": "#2E7D32" }, { "name": "折叠椅腿1", "type": "cube", "description": "折叠椅支撑腿", "position": { "x": -10.18, "y": 0.22, "z": -7.68 }, "rotation": { "x": 0.0, "y": 120.0, "z": 0.0 }, "size": { "x": 0.04, "y": 0.4, "z": 0.04 }, "color": "#444444" }, { "name": "折叠椅腿2", "type": "cube", "description": "折叠椅支撑腿", "position": { "x": -9.82, "y": 0.22, "z": -7.68 }, "rotation": { "x": 0.0, "y": 120.0, "z": 0.0 }, "size": { "x": 0.04, "y": 0.4, "z": 0.04 }, "color": "#444444" }, { "name": "折叠椅腿3", "type": "cube", "description": "折叠椅支撑腿", "position": { "x": -10.18, "y": 0.22, "z": -7.32 }, "rotation": { "x": 0.0, "y": 120.0, "z": 0.0 }, "size": { "x": 0.04, "y": 0.4, "z": 0.04 }, "color": "#444444" }, { "name": "折叠椅腿4", "type": "cube", "description": "折叠椅支撑腿", "position": { "x": -9.82, "y": 0.22, "z": -7.32 }, "rotation": { "x": 0.0, "y": 120.0, "z": 0.0 }, "size": { "x": 0.04, "y": 0.4, "z": 0.04 }, "color": "#444444" }, { "name": "棕榈树1树干段1", "type": "cube", "description": "棕榈树树干段", "position": { "x": -20.0, "y": 1.02, "z": 5.0 }, "rotation": { "x": 0.0, "y": 15.0, "z": 2.0 }, "size": { "x": 0.55, "y": 2.0, "z": 0.55 }, "color": "#A9744F" }, { "name": "棕榈树1树干段2", "type": "cube", "description": "棕榈树树干段", "position": { "x": -20.0, "y": 3.02, "z": 5.0 }, "rotation": { "x": 0.0, "y": 15.0, "z": 2.0 }, "size": { "x": 0.5, "y": 2.0, "z": 0.5 }, "color": "#A9744F" }, { "name": "棕榈树1树干段3", "type": "cube", "description": "棕榈树树干段", "position": { "x": -20.0, "y": 5.02, "z": 5.0 }, "rotation": { "x": 0.0, "y": 15.0, "z": 2.0 }, "size": { "x": 0.45, "y": 2.0, "z": 0.45 }, "color": "#A9744F" }, { "name": "棕榈树1椰子1", "type": "cube", "description": "树冠处椰子", "position": { "x": -19.85, "y": 6.05, "z": 5.1 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.22, "y": 0.22, "z": 0.22 }, "color": "#5B3A29" }, { "name": "棕榈树1椰子2", "type": "cube", "description": "树冠处椰子", "position": { "x": -20.12, "y": 6.0, "z": 4.92 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.2, "y": 0.2, "z": 0.2 }, "color": "#5B3A29" }, { "name": "棕榈树1椰子3", "type": "cube", "description": "树冠处椰子", "position": { "x": -19.95, "y": 5.95, "z": 4.85 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.18, "y": 0.18, "z": 0.18 }, "color": "#5B3A29" }, { "name": "棕榈树1棕榈叶1", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 15.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树1棕榈叶2", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 75.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树1棕榈叶3", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 135.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树1棕榈叶4", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 195.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树1棕榈叶5", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 255.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树1棕榈叶6", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": -20.0, "y": 6.25, "z": 5.0 }, "rotation": { "x": 25.0, "y": 315.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2树干段1", "type": "cube", "description": "棕榈树树干段", "position": { "x": 18.0, "y": 1.02, "z": 10.0 }, "rotation": { "x": 0.0, "y": 200.0, "z": 357.0 }, "size": { "x": 0.55, "y": 2.0, "z": 0.55 }, "color": "#A9744F" }, { "name": "棕榈树2树干段2", "type": "cube", "description": "棕榈树树干段", "position": { "x": 18.0, "y": 3.02, "z": 10.0 }, "rotation": { "x": 0.0, "y": 200.0, "z": 357.0 }, "size": { "x": 0.5, "y": 2.0, "z": 0.5 }, "color": "#A9744F" }, { "name": "棕榈树2树干段3", "type": "cube", "description": "棕榈树树干段", "position": { "x": 18.0, "y": 5.02, "z": 10.0 }, "rotation": { "x": 0.0, "y": 200.0, "z": 357.0 }, "size": { "x": 0.45, "y": 2.0, "z": 0.45 }, "color": "#A9744F" }, { "name": "棕榈树2椰子1", "type": "cube", "description": "树冠处椰子", "position": { "x": 18.15, "y": 6.05, "z": 10.1 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.22, "y": 0.22, "z": 0.22 }, "color": "#5B3A29" }, { "name": "棕榈树2椰子2", "type": "cube", "description": "树冠处椰子", "position": { "x": 17.88, "y": 6.0, "z": 9.92 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.2, "y": 0.2, "z": 0.2 }, "color": "#5B3A29" }, { "name": "棕榈树2椰子3", "type": "cube", "description": "树冠处椰子", "position": { "x": 18.05, "y": 5.95, "z": 9.85 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.18, "y": 0.18, "z": 0.18 }, "color": "#5B3A29" }, { "name": "棕榈树2棕榈叶1", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 200.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2棕榈叶2", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 260.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2棕榈叶3", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 320.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2棕榈叶4", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 380.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2棕榈叶5", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 440.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "棕榈树2棕榈叶6", "type": "panel", "description": "树冠棕榈叶片", "position": { "x": 18.0, "y": 6.25, "z": 10.0 }, "rotation": { "x": 25.0, "y": 500.0, "z": 0.0 }, "size": { "x": 0.45, "y": 0.04, "z": 2.2 }, "color": "#2E8B57" }, { "name": "礁石1", "type": "cube", "description": "沙滩上的大礁石", "position": { "x": -22.0, "y": 0.35, "z": -2.0 }, "rotation": { "x": 0.0, "y": 35.0, "z": 0.0 }, "size": { "x": 1.6, "y": 0.7, "z": 1.2 }, "color": "#7D7D7D" }, { "name": "礁石2", "type": "cube", "description": "沙滩上的小礁石", "position": { "x": -19.5, "y": 0.22, "z": 1.2 }, "rotation": { "x": 0.0, "y": 10.0, "z": 0.0 }, "size": { "x": 0.9, "y": 0.45, "z": 0.7 }, "color": "#8A8A8A" }, { "name": "礁石3", "type": "cube", "description": "靠近海边的礁石", "position": { "x": 14.0, "y": 0.3, "z": 20.5 }, "rotation": { "x": 0.0, "y": 80.0, "z": 0.0 }, "size": { "x": 1.2, "y": 0.6, "z": 1.0 }, "color": "#7A7A7A" }, { "name": "篝火坑外圈", "type": "cube", "description": "沙滩篝火坑外圈", "position": { "x": -6.5, "y": 0.09, "z": -2.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 1.2, "y": 0.18, "z": 1.2 }, "color": "#9E9E9E" }, { "name": "篝火坑内坑", "type": "cube", "description": "篝火坑内坑", "position": { "x": -6.5, "y": 0.07, "z": -2.5 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.8, "y": 0.14, "z": 0.8 }, "color": "#616161" }, { "name": "木柴1", "type": "cube", "description": "篝火坑内的木柴", "position": { "x": -6.5, "y": 0.12, "z": -2.5 }, "rotation": { "x": 0.0, "y": 35.0, "z": 0.0 }, "size": { "x": 0.1, "y": 0.1, "z": 0.7 }, "color": "#6D4C41" }, { "name": "木柴2", "type": "cube", "description": "篝火坑内的木柴", "position": { "x": -6.5, "y": 0.12, "z": -2.5 }, "rotation": { "x": 0.0, "y": 125.0, "z": 0.0 }, "size": { "x": 0.1, "y": 0.1, "z": 0.7 }, "color": "#6D4C41" }, { "name": "救生圈支架", "type": "cube", "description": "救生圈支架立柱", "position": { "x": -1.5, "y": 0.95, "z": 16.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.1, "y": 1.8, "z": 0.1 }, "color": "#B0B0B0" }, { "name": "救生圈横杆", "type": "cube", "description": "救生圈支架横杆", "position": { "x": -1.5, "y": 1.7, "z": 16.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.9, "y": 0.08, "z": 0.08 }, "color": "#B0B0B0" }, { "name": "救生圈", "type": "cube", "description": "救生圈(用立方体占位)", "position": { "x": -1.5, "y": 1.55, "z": 16.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "size": { "x": 0.55, "y": 0.55, "z": 0.12 }, "color": "#FF6B6B" }, { "name": "救生圈白条", "type": "cube", "description": "救生圈白色装饰条", "position": { "x": -1.5, "y": 1.55, "z": 16.0 }, "rotation": { "x": 0.0, "y": 45.0, "z": 0.0 }, "size": { "x": 0.6, "y": 0.1, "z": 0.14 }, "color": "#FFFFFF" } ]

分享這個問答