Working on web version

This commit is contained in:
Vladislav Khorev 2026-06-06 16:37:11 +03:00
parent 597ed04fdc
commit 0cc384028f
122 changed files with 7594 additions and 224603 deletions

63
convert_config_meshes.py Normal file
View File

@ -0,0 +1,63 @@
#!/usr/bin/env python3
"""
convert_config_meshes.py - Bulk-convert 3D mesh files referenced in a game object JSON config.
Reads <src_config>, converts every .txt mesh to binary (.txt.bin via BSMF format),
and writes the updated config to <dst_config> with meshPath values pointing to the
.bin files. Works for both regular game object configs and interactive object configs.
Mesh paths in the JSON are relative to the current working directory run this
script from the project root.
Usage:
python convert_config_meshes.py <src_config.json> <dst_config.json>
"""
import json
import os
import sys
from convert_model_to_binary import convert
def convert_config(src_path: str, dst_path: str) -> None:
with open(src_path, 'r', encoding='utf-8') as f:
config = json.load(f)
objects = config.get("objects", [])
# Track already-converted paths so shared meshes are only processed once.
cache: dict[str, str | None] = {}
for obj in objects:
mesh_path = obj.get("meshPath")
if not mesh_path or not mesh_path.lower().endswith(".txt"):
continue
if mesh_path not in cache:
if not os.path.isfile(mesh_path):
print(f" WARNING: mesh not found, skipping: {mesh_path}")
cache[mesh_path] = None
else:
bin_path = mesh_path + ".bin"
convert(mesh_path, bin_path)
cache[mesh_path] = bin_path
if cache[mesh_path] is not None:
obj["meshPath"] = cache[mesh_path]
os.makedirs(os.path.dirname(os.path.abspath(dst_path)), exist_ok=True)
with open(dst_path, 'w', encoding='utf-8') as f:
json.dump(config, f, indent=4, ensure_ascii=False)
converted_count = sum(1 for v in cache.values() if v is not None)
print(f"Saved: {dst_path} ({converted_count} mesh(es) converted, "
f"{len(cache) - converted_count} skipped)")
if __name__ == '__main__':
if len(sys.argv) != 3:
print(f"Usage: {sys.argv[0]} <src_config.json> <dst_config.json>")
sys.exit(1)
convert_config(sys.argv[1], sys.argv[2])

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,503 @@
{
"objects": [
{
"name": "Door_Room_1_1_0_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_1_1_0_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": 10.0,
"approachRadius": 0.89,
"boundsMaxX": 0.01552116870880127,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5717296600341797,
"boundsMinX": -0.09790635108947754,
"boundsMinY": -1.0,
"boundsMinZ": -0.548670768737793,
"interactionPositionX": 0.9887073040008545,
"interactionPositionY": 0.0,
"interactionPositionZ": 10.041143417358398,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Room_1_-1_0_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_1_-1_0_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": 10.0,
"approachRadius": 0.8,
"boundsMaxX": 0.10440409183502197,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5663089752197266,
"boundsMinX": -0.05429041385650635,
"boundsMinY": -1.0,
"boundsMinZ": -0.5487642288208008,
"interactionPositionX": -0.9637802839279175,
"interactionPositionY": 0.0,
"interactionPositionZ": 9.992685317993164,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Room_-1_1_0_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_-1_1_0_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": -10.0,
"approachRadius": 0.8,
"boundsMaxX": 0.05766594409942627,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5710372924804688,
"boundsMinX": -0.0875619649887085,
"boundsMinY": -1.0,
"boundsMinZ": -0.525609016418457,
"interactionPositionX": 0.988898515701294,
"interactionPositionY": 0.0,
"interactionPositionZ": -9.97990608215332,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Room_-1_-1_0_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_-1_-1_0_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": -10.0,
"approachRadius": 0.8,
"boundsMaxX": 0.10906755924224854,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5573873519897461,
"boundsMinX": -0.02557361125946045,
"boundsMinY": -1.0,
"boundsMinZ": -0.5323200225830078,
"interactionPositionX": -0.968346118927002,
"interactionPositionY": 0.0,
"interactionPositionZ": -10.002159118652344,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Room_1_1_1_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_1_1_1_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": 15.7,
"approachRadius": 0.8,
"boundsMaxX": 0.046350955963134766,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5500001907348633,
"boundsMinX": -0.10775184631347656,
"boundsMinY": -1.0,
"boundsMinZ": -0.5863857269287109,
"interactionPositionX": 1.005477786064148,
"interactionPositionY": 0.0,
"interactionPositionZ": 15.732091903686523,
"scale": 1.0,
"interactionRadius": 0.5,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Room_1_-1_1_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_1_-1_1_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": 15.7,
"approachRadius": 0.800000011920929,
"boundsMaxX": 0.12420153617858887,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5454416275024414,
"boundsMinX": -0.02631092071533203,
"boundsMinY": 0.0,
"boundsMinZ": -0.5781536102294922,
"interactionPositionX": -0.9698797464370728,
"interactionPositionY": 0.0,
"interactionPositionZ": 15.617175102233887,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Utility_1_1_2_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Utility_1_1_2_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": 19.95,
"approachRadius": 0.8,
"boundsMaxX": -0.05098748207092285,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.52764892578125,
"boundsMinX": -0.1196892261505127,
"boundsMinY": -1.0,
"boundsMinZ": -0.5527801513671875,
"interactionPositionX": 1.0174394845962524,
"interactionPositionY": 0.0,
"interactionPositionZ": 19.976728439331055,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Utility_1_-1_2_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Utility_1_-1_2_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": 19.95,
"approachRadius": 0.8,
"boundsMaxX": 0.07334935665130615,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5791053771972656,
"boundsMinX": -0.04259765148162842,
"boundsMinY": -1.0,
"boundsMinZ": -0.5342922210693359,
"interactionPositionX": -1.0046367645263672,
"interactionPositionY": 0.0,
"interactionPositionZ": 19.962736129760742,
"interactionRadius": 0.5,
"scale": 1.0,
"activateFunction": "on_locked_door_click"
},
{
"name": "Door_Utility_-1_1_2_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Utility_-1_1_2_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": -19.95,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": -0.6,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Door_Utility_-1_-1_2_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Utility_-1_-1_2_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": -19.95,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": -0.6,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Phone001",
"texturePath": "resources/w/dorm2/phone001_tex001.png",
"meshPath": "resources/w/dorm2/phone001_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 6.6644,
"positionY": 0.9,
"positionZ": -12.5262,
"approachRadius": 0.6,
"boundsMaxX": 0.32435035705566406,
"boundsMaxY": 0.5,
"boundsMaxZ": 0.5178079605102539,
"boundsMinX": -0.19553518295288086,
"boundsMinY": -0.5,
"boundsMinZ": -0.2698993682861328,
"interactionPositionX": 6.694502353668213,
"interactionPositionY": 0.0,
"interactionPositionZ": -12.80740737915039,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_phone_pickup"
},
{
"name": "Journal001",
"texturePath": "resources/w/dorm2/journal001_tex002.png",
"meshPath": "resources/w/dorm2/journal001_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 5.84296,
"positionY": 0.9,
"positionZ": -12.4661,
"approachRadius": 0.6,
"boundsMaxX": 0.17081403732299805,
"boundsMaxY": 0.5,
"boundsMaxZ": 0.35796260833740234,
"boundsMinX": -0.22043895721435547,
"boundsMinY": -0.5,
"boundsMinZ": -0.25891780853271484,
"interactionPositionX": 5.819052696228027,
"interactionPositionY": 0.0,
"interactionPositionZ": -12.76319408416748,
"scale": 1.0,
"interactionRadius": 0.3,
"activateFunction": "on_journal_pickup"
},
{
"name": "Bed001",
"texturePath": "resources/transparent.png",
"meshPath": "resources/w/Cube_001.txt",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 0.0,
"boundsMaxX": 8.642372131347656,
"boundsMaxY": 1.0,
"boundsMaxZ": -15.692028045654297,
"boundsMinX": 6.203922748565674,
"boundsMinY": 0.0,
"boundsMinZ": -16.945722579956055,
"interactionPositionX": 8.280488014221191,
"interactionPositionY": 0.0,
"interactionPositionZ": -15.692096710205078,
"approachRadius": 0.6,
"scale": 1.0,
"interactionRadius": 0.3,
"activateFunction": "on_bed_sleep"
},
{
"name": "Door_Bath_-1_1_1_Leaf_002",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Bath_-1_1_1_Leaf_002.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 2.825,
"positionY": 0.0,
"positionZ": -14.3,
"pivotX": -0.6,
"pivotY": 0.0,
"pivotZ": 0.0,
"approachRadius": 0.8,
"boundsMaxX": 0.5514686107635498,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.11902141571044922,
"boundsMinX": -0.5845658779144287,
"boundsMinY": -1.0,
"boundsMinZ": -0.11658763885498047,
"interactionPositionX": 2.8216893672943115,
"interactionPositionY": 0.0,
"interactionPositionZ": -14.428529739379883,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_player_bathroom_click"
},
{
"name": "Door_Bath_-1_-1_1_Leaf_002",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Bath_-1_-1_1_Leaf_002.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -2.825,
"positionY": 0.0,
"positionZ": -14.3,
"approachRadius": 0.8,
"boundsMaxX": 0.5543923377990723,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.09879684448242188,
"boundsMinX": -0.5794532299041748,
"boundsMinY": -1.0,
"boundsMinZ": -0.10668659210205078,
"interactionPositionX": -2.365324020385742,
"interactionPositionY": 0.0,
"interactionPositionZ": -14.433123588562012,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_alik_bathroom_click"
},
{
"name": "Door_Room_-1_1_1_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_-1_1_1_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.1,
"positionY": 0.0,
"positionZ": -15.7,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": -0.6,
"approachRadius": 0.8,
"boundsMaxX": 0.12640702724456787,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5614070892333984,
"boundsMinX": -0.07332098484039307,
"boundsMinY": -1.0,
"boundsMinZ": -0.5617532730102539,
"interactionPositionX": 1.4176452159881592,
"interactionPositionY": 0.0,
"interactionPositionZ": -15.264726638793945,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_player_door_click"
},
{
"name": "Door_Room_-1_-1_1_Leaf_001",
"texturePath": "resources/w/dorm2/doors_tex001.png",
"meshPath": "resources/w/dorm2/Door_Room_-1_-1_1_Leaf_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.1,
"positionY": 0.0,
"positionZ": -15.7,
"approachRadius": 0.8,
"boundsMaxX": 0.13942182064056396,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5940608978271484,
"boundsMinX": -0.0942072868347168,
"boundsMinY": -1.0,
"boundsMinZ": -0.5547590255737305,
"interactionPositionX": -0.9912688732147217,
"interactionPositionY": 0.0,
"interactionPositionZ": -15.256343841552734,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": -0.6,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_alik_door_click"
},
{
"name": "Room_Cover_Bath_W_N_2_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_North_West_1_Bath_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_LivingRoom_W_N_2_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_North_West_1_RoomB_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_LivingRoom_W_S_2_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_South_West_1_RoomB_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_Main_Hall_And_Corridors_002",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_Main_Hall_Corridor_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_Others_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_All_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_Utility_W_N_3_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_North_West_2_Utility_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_Utility_W_S_3_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/dorm2/Room_Cover_South_West_2_Utility_001.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -0.1,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
}
]
}

View File

@ -0,0 +1,28 @@
{
"objects": [
{
"name": "Container001",
"texturePath": "resources/w/exterior/derbis001_tex001.png",
"meshPath": "resources/w/exterior/Derbis_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -26.8049,
"positionY": 0.0,
"positionZ": 9.11524,
"approachRadius": 1.5,
"boundsMaxX": 2.9518299102783203,
"boundsMaxY": 1.0,
"boundsMaxZ": 2.6554784774780273,
"boundsMinX": -2.662546157836914,
"boundsMinY": 0.0,
"boundsMinZ": -1.8787870407104492,
"interactionPositionX": -25.583452224731445,
"interactionPositionY": 0.0,
"interactionPositionZ": 6.782981872558594,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_container_clicked"
}
]
}

View File

@ -0,0 +1,443 @@
{
"objects": [
{
"name": "Computer001",
"texturePath": "resources/w/interior/computer_texture002.png",
"textureDarkandsPath": "resources/w/interior/computer_texture002.png",
"meshPath": "resources/w/interior/computer001_004.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 5.0916,
"positionY": 1.1534,
"positionZ": 0.751629,
"approachRadius": 1.2,
"boundsMaxX": 0.6253643035888672,
"boundsMaxY": 0.5,
"boundsMaxZ": 0.638715922832489,
"boundsMinX": -0.6565828323364258,
"boundsMinY": -1.0,
"boundsMinZ": -0.7323135733604431,
"interactionPositionX": 4.502297401428223,
"interactionPositionY": 0.0,
"interactionPositionZ": 1.3883256912231445,
"scale": 1.0,
"activateFunction": "on_computer_clicked"
},
{
"name": "Knife001",
"texturePath": "resources/w/white.png",
"meshPath": "resources/w/interior/Knife.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -5.3964,
"positionY": 0.91414,
"positionZ": 2.54703,
"approachRadius": 1.4,
"boundsMaxX": 0.30867958068847656,
"boundsMaxY": 0.4,
"boundsMaxZ": 0.28728413581848145,
"boundsMinX": -0.444033145904541,
"boundsMinY": 0.0,
"boundsMinZ": -0.31477832794189453,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_knife_pickup"
},
{
"name": "Book001",
"texturePath": "resources/w/interior/book_tex002.png",
"meshPath": "resources/w/interior/book001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.84795,
"positionY": 0.6595,
"positionZ": 2.90552,
"approachRadius": 0.6,
"boundsMaxX": 0.2350165843963623,
"boundsMaxY": 0.3,
"boundsMaxZ": 0.3136167526245117,
"boundsMinX": -0.27574634552001953,
"boundsMinY": 0.0,
"boundsMinZ": -0.2367849349975586,
"interactionPositionX": 2.1176772117614746,
"interactionPositionY": 0.0,
"interactionPositionZ": 2.938464641571045,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_book_pickup"
},
{
"name": "Bookshelf001",
"texturePath": "resources/transparent.png",
"meshPath": "resources/w/Cube_001.txt",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.84795,
"positionY": 0.0,
"positionZ": 2.90552,
"approachRadius": 0.6,
"boundsMaxX": 0.24423766136169434,
"boundsMaxY": 2.0,
"boundsMaxZ": 1.0927515029907227,
"boundsMinX": -0.14073467254638672,
"boundsMinY": 0.0,
"boundsMinZ": -0.41706109046936035,
"interactionPositionX": 2.14984393119812,
"interactionPositionY": 0.0,
"interactionPositionZ": 3.089071750640869,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_bookshelf_clicked"
},
{
"name": "ReportCard001",
"texturePath": "resources/w/interior/report_card_tex001.png",
"meshPath": "resources/w/interior/book001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -5.10169,
"positionY": 1.09748,
"positionZ": 0.440886,
"approachRadius": 0.5,
"boundsMaxX": 0.9267187118530273,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.13578465580940247,
"boundsMinX": -0.6683897972106934,
"boundsMinY": -1.0,
"boundsMinZ": -0.26944229006767273,
"interactionPositionX": -4.608266353607178,
"interactionPositionY": 0.0,
"interactionPositionZ": 0.7330145835876465,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_report_card_pickup"
},
{
"name": "Note001",
"texturePath": "resources/w/interior/note001_text001.png",
"meshPath": "resources/w/interior/note001_001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 3.82193,
"positionY": 1.0438,
"positionZ": 1.07944,
"approachRadius": 0.6,
"boundsMaxX": 0.3282341957092285,
"boundsMaxY": 0.5,
"boundsMaxZ": 0.2137817144393921,
"boundsMinX": -0.21202635765075684,
"boundsMinY": 0.0,
"boundsMinZ": -0.5441347360610962,
"interactionPositionX": 3.836475133895874,
"interactionPositionY": 0.0,
"interactionPositionZ": 1.3356603384017944,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_note_pickup"
},
{
"name": "Room_N_2_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputRoom_N_2_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.5,
"positionY": 0.975,
"positionZ": 6.965,
"approachRadius": 0.7,
"boundsMaxX": 0.06785714626312256,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.49353456497192383,
"boundsMinX": -0.09638166427612305,
"boundsMinY": -1.0,
"boundsMinZ": -0.6017804145812988,
"interactionPositionX": 1.5370807647705078,
"interactionPositionY": 0.0,
"interactionPositionZ": 6.6271867752075195,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.565,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_library_door_click"
},
{
"name": "Room_N_1_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputRoom_N_1_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 1.5,
"positionY": 0.975,
"positionZ": -1.035,
"approachRadius": 0.8,
"boundsMaxX": 0.10772454738616943,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5702499151229858,
"boundsMinX": -0.0382380485534668,
"boundsMinY": -1.0,
"boundsMinZ": -0.5757150650024414,
"interactionPositionX": 1.6236109733581543,
"interactionPositionY": 0.0,
"interactionPositionZ": -1.3863778114318848,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.565,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_n2_door_click"
},
{
"name": "Room_S_1_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputRoom_S_1_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.5,
"positionY": 0.975,
"positionZ": -1.035,
"approachRadius": 0.8,
"boundsMaxX": 0.12115073204040527,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.6290097236633301,
"boundsMinX": -0.07913470268249512,
"boundsMinY": -1.0,
"boundsMinZ": -0.5976793766021729,
"interactionPositionX": -1.5360143184661865,
"interactionPositionY": 0.0,
"interactionPositionZ": -1.230910301208496,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.565,
"scale": 1.0,
"interactionRadius": 0.5,
"activateFunction": "on_s2_door_click"
},
{
"name": "Room_S_2_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputRoom_S_2_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.5,
"positionY": 0.975,
"positionZ": 6.965,
"approachRadius": 0.8,
"boundsMaxX": 0.09747374057769775,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.6132597923278809,
"boundsMinX": -0.07834482192993164,
"boundsMinY": -1.0,
"boundsMinZ": -0.5960769653320312,
"interactionPositionX": -1.5287463665008545,
"interactionPositionY": 0.0,
"interactionPositionZ": 6.798524856567383,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.565,
"scale": 1.0,
"interactionRadius": 0.0,
"activateFunction": "on_teachers_door_click"
},
{
"name": "Hall_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputHall_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.565,
"positionY": 0.975,
"positionZ": 8,
"approachRadius": 0.9,
"boundsMaxX": 0.6243956089019775,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.11013984680175781,
"boundsMinX": -0.6047632098197937,
"boundsMinY": -1.0,
"boundsMinZ": -0.12955093383789062,
"interactionPositionX": 0.02494657039642334,
"interactionPositionY": 0.0,
"interactionPositionZ": 8.023686408996582,
"scale": 1.0,
"pivotX": 0.565,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0,
"activateFunction": "on_hall_door_click"
},
{
"name": "Room_S_0_Leaf001",
"texturePath": "resources/w/interior/doors_tex001.png",
"meshPath": "resources/w/interior/outputRoom_S_0_Leaf001.txt.bin",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": -1.5,
"positionY": 0.975,
"positionZ": -9.035,
"approachRadius": 0.8,
"boundsMaxX": 0.10914039611816406,
"boundsMaxY": 1.0,
"boundsMaxZ": 0.5991430282592773,
"boundsMinX": -0.04130113124847412,
"boundsMinY": -1.0,
"boundsMinZ": -0.6299610137939453,
"interactionPositionX": -1.4023009538650513,
"interactionPositionY": 0.0,
"interactionPositionZ": -9.225384712219238,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.565,
"scale": 1.0,
"interactionRadius": 0.5,
"activateFunction": "on_s1_door_click"
},
{
"name": "Room_Cover_Corridor_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_Corridor_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_Main_Hall_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_Main_Hall_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_North_1_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_North_1_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_South_1_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_South_1_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_North_2_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_North_2_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_South_2_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_South_2_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_North_3_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_North_3_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
},
{
"name": "Room_Cover_South_3_001",
"texturePath": "resources/black.png",
"meshPath": "resources/w/interior/Room_Cover_South_3_002.txt.bin",
"castShadowNight": false,
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": -5.0,
"positionZ": 0.0,
"scale": 1.0,
"pivotX": 0.0,
"pivotY": 0.0,
"pivotZ": 0.0,
"interactionRadius": 0.0
}
]
}

View File

@ -44,21 +44,31 @@
{ {
"id": "npc_04_ghost", "id": "npc_04_ghost",
"name": "Призрак", "name": "Призрак",
"texturePath": "resources/w/ghost_skin001.png", "animationIdlePath": "resources/w/ghost/ghost_idle001.anim",
"animationIdlePath": "resources/w/default_float001.anim", "animationWalkPath": "resources/w/ghost/ghost_idle001.anim",
"animationWalkPath": "resources/w/default_float001.anim", "animationActionIdlePath": "resources/w/ghost/ghost_idle001.anim",
"animationActionAttackPath": "resources/w/ghost/ghost_attack001.anim",
"animationStandToActionPath": "resources/w/ghost/ghost_idle001.anim",
"animationActionToStandPath": "resources/w/ghost/ghost_idle001.anim",
"animationActionToDeathPath": "resources/w/ghost/ghost_die001.anim",
"animationDeathIdlePath": "resources/w/ghost/ghost_dead001.anim",
"meshTextures": {
"Ghost": "resources/w/ghost/Ghost_BaseColor.png"
},
"positionX": -0.28594, "positionX": -0.28594,
"positionY": 0, "positionY": 0,
"positionZ": 13.9641, "positionZ": 13.9641,
"walkSpeed": 1.5, "walkSpeed": 1.5,
"rotationSpeed": 8.0, "rotationSpeed": 8.0,
"modelScale": 0.01, "modelScale": 1.0,
"modelCorrectionRotX": 0.0, "modelCorrectionRotX": -90.0,
"modelCorrectionRotY": 180.0, "modelCorrectionRotY": 180.0,
"modelCorrectionRotZ": 0.0, "modelCorrectionRotZ": 0.0,
"interactionRadius": 1.0 "interactionRadius": 1.0,
"hp": 35,
"canAttack": false
}, },
{ {
"id": "ghost_01x", "id": "ghost_01x",
"name": "Тень", "name": "Тень",
"texturePath": "resources/w/ghost_skin002.png", "texturePath": "resources/w/ghost_skin002.png",

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
resources/w/ghost/ghost_attack001.anim (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/w/ghost/ghost_dead001.anim (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/w/ghost/ghost_die001.anim (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/w/ghost/ghost_idle001.anim (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More