From d04e0eca8d9ff58a790cdb95122031bc9b404a17 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 30 Jul 2018 18:26:37 +0200 Subject: [PATCH] Fix file paths --- Docs/how_to_add_assets.md | 140 +++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/Docs/how_to_add_assets.md b/Docs/how_to_add_assets.md index f12d49250..2c390385f 100644 --- a/Docs/how_to_add_assets.md +++ b/Docs/how_to_add_assets.md @@ -12,19 +12,19 @@ for creating the Skeletal Mesh and Physics Asset. And for the rest. !!! important - If you want a simpler way you might copy our "General4wheeledSkeleton" from our project, either by - exporting it and copying it into your model or by creating your skelleton using the same bone names and orientation. + If you want a simpler way you might copy our "General4wheeledSkeleton" from our project, either by + exporting it and copying it into your model or by creating your skelleton using the same bone names and orientation. Bind it to your vehicle model and choose it when importing your vehicle into the editor. - This way you won't need to configure the animation, you might just use "General4wheeledAnimation" (step 3) + This way you won't need to configure the animation, you might just use "General4wheeledAnimation" (step 3) You also won't need to configure the bone names for your wheels (Step 7. Be carefull, you'll still need to asign the wheel blueprints). - * Import fbx as Skelletal Mesh to its own folder inside `Content/Static/Vehicles`. A Physics asset and a Skeleton should be automatically created and linked the three together. + * Import fbx as Skelletal Mesh to its own folder inside `Content/Carla/Static/Vehicles`. A Physics asset and a Skeleton should be automatically created and linked the three together. * Tune the Physics asset. Delete the automatically created ones and add boxes to the `Vehicle_Base` bone matching the shape, make sure generate hit events is enabled. Add a sphere for each wheel and set their "Physics Type" to "Kinematic". * Inside that folder create an "Animation Blueprint", while creating select "VehicleAnimInstance" as parent class and the skeleton of this car model as the target skeleton. Add the animation graph as shown in the links given above (or look for it in other cars' animation, like Mustang). * Create folder `Content/Blueprints/Vehicles/` * Inside that folder create two blueprint classes derived from "VehicleWheel" class. Call them `_FrontWheel` and `_RearWheel`. Set their "Shape Radius" to exactly match the mesh wheel radius (careful, radius not diameter). Set their "Tire Config" to "CommonTireConfig". On the front wheel uncheck "Affected by Handbrake" and on the rear wheel set "Steer Angle" to zero. - * Inside the same folder create a blueprint class derived from `BaseVehiclePawn` call it ``. Open it for edit and select component "Mesh", setup the "Skeletal Mesh" and the "Anim Class" to the corresponding ones. Then select the VehicleBounds component and set the size to cover vehicle's volume as close as possible. + * Inside the same folder create a blueprint class derived from `BaseVehiclePawn` call it ``. Open it for edit and select component "Mesh", setup the "Skeletal Mesh" and the "Anim Class" to the corresponding ones. Then select the VehicleBounds component and set the size to cover vehicle's volume as close as possible. * Select component "VehicleMovement", under "Vehicle Setup" expand "Wheel Setups", setup each wheel - 0 : Wheel Class=`_FrontWheel`, Bone Name=`Wheel_Front_Left` - 1 : Wheel Class=`_FrontWheel`, Bone Name=`Wheel_Front_Right` @@ -42,28 +42,28 @@ As with the 4 wheeled vehicles, orient the model towards positive "x" and every ```yaml Bone Setup: - Bike_Rig: # The origin point of the mesh. Place it in the point 0 of the scenecomment - - BikeBody: # The model's body centre. - - Pedals: # If the vehicle is a bike bind the pedalier to this bone, will rotate with the bike acceleration. - - RightPedal: # Sets the driver's feet position and rotates with the pedalier if the vehicle is a bike. - - LeftPedal: # ^ - - RearWheel: # Rear Wheel of the vehicle - - Handler: # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it. - - HandlerMidBone: # Positioned over the front wheel bone to orient the handler with the wheel - - HandlerRight: # Sets the position of the driver's hand, no need to bind it to anything. - - HandlerLeft: # ^ - - Frontwheel: # Frontal wheel of the vehicle. - - RightHelperRotator: # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - - RightHelprWheel: # ^ - - LeftHelperRotator: # ^ - - LeftHelperWheel: # ^ - - Seat: # Sets the position of the drivers hip bone. No need to bind it to anything but place it carefully. + - BikeBody: # The model's body centre. + - Pedals: # If the vehicle is a bike bind the pedalier to this bone, will rotate with the bike acceleration. + - RightPedal: # Sets the driver's feet position and rotates with the pedalier if the vehicle is a bike. + - LeftPedal: # ^ + - RearWheel: # Rear Wheel of the vehicle + - Handler: # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it. + - HandlerMidBone: # Positioned over the front wheel bone to orient the handler with the wheel + - HandlerRight: # Sets the position of the driver's hand, no need to bind it to anything. + - HandlerLeft: # ^ + - Frontwheel: # Frontal wheel of the vehicle. + - RightHelperRotator: # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels + - RightHelprWheel: # ^ + - LeftHelperRotator: # ^ + - LeftHelperWheel: # ^ + - Seat: # Sets the position of the drivers hip bone. No need to bind it to anything but place it carefully. ``` - * Import fbx as Skelletal Mesh to its own folder inside `Content/Static/Vehicles/2Wheeled`.When importing select "General2WheeledVehicleSkeleton" as skelleton A Physics asset should be automatically created and linked. + * Import fbx as Skelletal Mesh to its own folder inside `Content/Carla/Static/Vehicles/2Wheeled`. When importing select "General2WheeledVehicleSkeleton" as skelleton A Physics asset should be automatically created and linked. * Tune the Physics asset. Delete the automatically created ones and add boxes to the `BikeBody` bone trying to match the shape as possible, make sure generate hit events is enabled. Add a sphere for each wheel and set their "Physics Type" to "Kinematic". * Create folder `Content/Blueprints/Vehicles/` * Inside that folder create two blueprint classes derived from "VehicleWheel" class. Call them `_FrontWheel` and `_RearWheel`. Set their "Shape Radius" to exactly match the mesh wheel radius (careful, radius not diameter). Set their "Tire Config" to "CommonTireConfig". On the front wheel uncheck "Affected by Handbrake" and on the rear wheel set "Steer Angle" to zero. - * Inside the same folder create a blueprint class derived from `Base2WheeledVehicle` call it ``. Open it for edit and select component "Mesh", setup the "Skeletal Mesh" and the "Anim Class" to the corresponding ones. Then select the VehicleBounds component and set the size to cover vehicle's area as seen from above. + * Inside the same folder create a blueprint class derived from `Base2WheeledVehicle` call it ``. Open it for edit and select component "Mesh", setup the "Skeletal Mesh" and the "Anim Class" to the corresponding ones. Then select the VehicleBounds component and set the size to cover vehicle's area as seen from above. * Select component "VehicleMovement", under "Vehicle Setup" expand "Wheel Setups", setup each wheel - 0 : Wheel Class=`_FrontWheel`, Bone Name=`FrontWheel` - 1 : Wheel Class=`_FrontWheel`, Bone Name=`FrontWheel` @@ -81,55 +81,55 @@ For the road generation, the following meshes are expected to be found ``` # Enum Filepath -RoadTwoLanes_LaneLeft at "Content/Static/Road/St_Road_TileRoad_RoadL.uasset" -RoadTwoLanes_LaneRight at "Content/Static/Road/St_Road_TileRoad_RoadR.uasset" -RoadTwoLanes_SidewalkLeft at "Content/Static/SideWalk/St_Road_TileRoad_SidewalkL.uasset" -RoadTwoLanes_SidewalkRight at "Content/Static/SideWalk/St_Road_TileRoad_SidewalkR.uasset" -RoadTwoLanes_LaneMarkingSolid at "Content/Static/RoadLines/St_Road_TileRoad_LaneMarkingSolid.uasset" -RoadTwoLanes_LaneMarkingBroken at "Content/Static/RoadLines/St_Road_TileRoad_LaneMarkingBroken.uasset" +RoadTwoLanes_LaneLeft at "Content/Carla/Static/Road/St_Road_TileRoad_RoadL.uasset" +RoadTwoLanes_LaneRight at "Content/Carla/Static/Road/St_Road_TileRoad_RoadR.uasset" +RoadTwoLanes_SidewalkLeft at "Content/Carla/Static/SideWalk/St_Road_TileRoad_SidewalkL.uasset" +RoadTwoLanes_SidewalkRight at "Content/Carla/Static/SideWalk/St_Road_TileRoad_SidewalkR.uasset" +RoadTwoLanes_LaneMarkingSolid at "Content/Carla/Static/RoadLines/St_Road_TileRoad_LaneMarkingSolid.uasset" +RoadTwoLanes_LaneMarkingBroken at "Content/Carla/Static/RoadLines/St_Road_TileRoad_LaneMarkingBroken.uasset" -Road90DegTurn_Lane0 at "Content/Static/Road/St_Road_Curve_Road1.uasset" -Road90DegTurn_Lane1 at "Content/Static/Road/St_Road_Curve_Road2.uasset" -Road90DegTurn_Lane2 at "Content/Static/Road/St_Road_Curve_Road3.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road4.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road5.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road6.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road7.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road8.uasset" -Road90DegTurn_Lane3 at "Content/Static/Road/St_Road_Curve_Road9.uasset" -Road90DegTurn_Sidewalk0 at "Content/Static/SideWalk/St_Road_Curve_Sidewalk1.uasset" -Road90DegTurn_Sidewalk1 at "Content/Static/SideWalk/St_Road_Curve_Sidewalk2.uasset" -Road90DegTurn_Sidewalk2 at "Content/Static/SideWalk/St_Road_Curve_Sidewalk3.uasset" -Road90DegTurn_Sidewalk3 at "Content/Static/SideWalk/St_Road_Curve_Sidewalk4.uasset" -Road90DegTurn_LaneMarking at "Content/Static/Road/St_Road_Curve_LaneMarking.uasset" +Road90DegTurn_Lane0 at "Content/Carla/Static/Road/St_Road_Curve_Road1.uasset" +Road90DegTurn_Lane1 at "Content/Carla/Static/Road/St_Road_Curve_Road2.uasset" +Road90DegTurn_Lane2 at "Content/Carla/Static/Road/St_Road_Curve_Road3.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road4.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road5.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road6.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road7.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road8.uasset" +Road90DegTurn_Lane3 at "Content/Carla/Static/Road/St_Road_Curve_Road9.uasset" +Road90DegTurn_Sidewalk0 at "Content/Carla/Static/SideWalk/St_Road_Curve_Sidewalk1.uasset" +Road90DegTurn_Sidewalk1 at "Content/Carla/Static/SideWalk/St_Road_Curve_Sidewalk2.uasset" +Road90DegTurn_Sidewalk2 at "Content/Carla/Static/SideWalk/St_Road_Curve_Sidewalk3.uasset" +Road90DegTurn_Sidewalk3 at "Content/Carla/Static/SideWalk/St_Road_Curve_Sidewalk4.uasset" +Road90DegTurn_LaneMarking at "Content/Carla/Static/Road/St_Road_Curve_LaneMarking.uasset" -RoadTIntersection_Lane0 at "Content/Static/Road/St_Road_TCross_Road1.uasset" -RoadTIntersection_Lane1 at "Content/Static/Road/St_Road_TCross_Road2.uasset" -RoadTIntersection_Lane2 at "Content/Static/Road/St_Road_TCross_Road3.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road4.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road5.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road6.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road7.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road8.uasset" -RoadTIntersection_Lane3 at "Content/Static/Road/St_Road_TCross_Road9.uasset" -RoadTIntersection_Sidewalk0 at "Content/Static/SideWalk/St_Road_TCross_Sidewalk1.uasset" -RoadTIntersection_Sidewalk1 at "Content/Static/SideWalk/St_Road_TCross_Sidewalk2.uasset" -RoadTIntersection_Sidewalk2 at "Content/Static/SideWalk/St_Road_TCross_Sidewalk3.uasset" -RoadTIntersection_Sidewalk3 at "Content/Static/SideWalk/St_Road_TCross_Sidewalk4.uasset" -RoadTIntersection_LaneMarking at "Content/Static/RoadLines/St_Road_TCross_LaneMarking.uasset" +RoadTIntersection_Lane0 at "Content/Carla/Static/Road/St_Road_TCross_Road1.uasset" +RoadTIntersection_Lane1 at "Content/Carla/Static/Road/St_Road_TCross_Road2.uasset" +RoadTIntersection_Lane2 at "Content/Carla/Static/Road/St_Road_TCross_Road3.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road4.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road5.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road6.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road7.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road8.uasset" +RoadTIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_TCross_Road9.uasset" +RoadTIntersection_Sidewalk0 at "Content/Carla/Static/SideWalk/St_Road_TCross_Sidewalk1.uasset" +RoadTIntersection_Sidewalk1 at "Content/Carla/Static/SideWalk/St_Road_TCross_Sidewalk2.uasset" +RoadTIntersection_Sidewalk2 at "Content/Carla/Static/SideWalk/St_Road_TCross_Sidewalk3.uasset" +RoadTIntersection_Sidewalk3 at "Content/Carla/Static/SideWalk/St_Road_TCross_Sidewalk4.uasset" +RoadTIntersection_LaneMarking at "Content/Carla/Static/RoadLines/St_Road_TCross_LaneMarking.uasset" -RoadXIntersection_Lane0 at "Content/Static/Road/St_Road_XCross_Road1.uasset" -RoadXIntersection_Lane1 at "Content/Static/Road/St_Road_XCross_Road2.uasset" -RoadXIntersection_Lane2 at "Content/Static/Road/St_Road_XCross_Road3.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road4.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road5.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road6.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road7.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road8.uasset" -RoadXIntersection_Lane3 at "Content/Static/Road/St_Road_XCross_Road9.uasset" -RoadXIntersection_Sidewalk0 at "Content/Static/SideWalk/St_Road_XCross_Sidewalk1.uasset" -RoadXIntersection_Sidewalk1 at "Content/Static/SideWalk/St_Road_XCross_Sidewalk2.uasset" -RoadXIntersection_Sidewalk2 at "Content/Static/SideWalk/St_Road_XCross_Sidewalk3.uasset" -RoadXIntersection_Sidewalk3 at "Content/Static/SideWalk/St_Road_XCross_Sidewalk4.uasset" -RoadXIntersection_LaneMarking at "Content/Static/RoadLines/St_Road_XCross_LaneMarking.uasset" +RoadXIntersection_Lane0 at "Content/Carla/Static/Road/St_Road_XCross_Road1.uasset" +RoadXIntersection_Lane1 at "Content/Carla/Static/Road/St_Road_XCross_Road2.uasset" +RoadXIntersection_Lane2 at "Content/Carla/Static/Road/St_Road_XCross_Road3.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road4.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road5.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road6.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road7.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road8.uasset" +RoadXIntersection_Lane3 at "Content/Carla/Static/Road/St_Road_XCross_Road9.uasset" +RoadXIntersection_Sidewalk0 at "Content/Carla/Static/SideWalk/St_Road_XCross_Sidewalk1.uasset" +RoadXIntersection_Sidewalk1 at "Content/Carla/Static/SideWalk/St_Road_XCross_Sidewalk2.uasset" +RoadXIntersection_Sidewalk2 at "Content/Carla/Static/SideWalk/St_Road_XCross_Sidewalk3.uasset" +RoadXIntersection_Sidewalk3 at "Content/Carla/Static/SideWalk/St_Road_XCross_Sidewalk4.uasset" +RoadXIntersection_LaneMarking at "Content/Carla/Static/RoadLines/St_Road_XCross_LaneMarking.uasset" ```