Congratulations /k/! | ||
Winners of the 2024 4chan Autumn Babby Cup |
Pro Evolution Soccer 2017/Billboards
Pro Evolution Soccer 2017 | |
---|---|
Game | |
Rules | |
Info | |
Tools | |
Modding |
- This page details billboard mechanics in PES 2017. To view billboards see Billboards/Gallery.
Introduction
This page will try to explain the most important details regarding PES17 billboard mechanics. The first section will explain the build-up of an billboard folder and the different Bill Bodies. The second section will explain how the general config file is built up. The third section will explain the 90system billboards and other leftovers. The last section contains quick tutorials on how to create different billboard sets. All the billboard stuff can be found in (dt30.cpk)\common\bg\model\bg\bill. Below tools several templates for billboard sets can be downloaded.
Billboard folder
A normal billboard folder will be in \common\bg\model\bg\bill and have its own name. So an example /4ccc/ billboard set will be in \common\bg\model\bg\bill\4ccc. This folder will contain several files and folders. These will be explained below under their own heading.
bill_texlist.xml
This file will contain all the textures in the texture folder that will appear on the billboards. Open this file and add lines for all the textures in the texture folder. The standard pes bill_texlist.xml looks like this:
<?xml version="1.0" encoding="utf-8"?> <bill> <texture type="bill" path="model/bg/bill/pes/texture/bill_face_knm_knm_00.dds" /> <texture type="bill" path="model/bg/bill/pes/texture/bill_face_pes_pes_00.dds" /> <texture type="bill" path="model/bg/bill/pes/texture/bill_face_knm_knm_01.dds" /> <texture type="bill" path="model/bg/bill/pes/texture/bill_face_pes_pes_01.dds" /> </bill>
xx_df.xml, xx_dr.xml, xx_nf.xml, xx_nr.xml
These files contains the several settings regarding paths to certain files. The xx in the names refer to the name of the billboard folder, so in the case of 4ccc these files will be named 4ccc_df.xml, 4ccc_dr.xml, 4ccc_nf.xml and 4ccc_nr.xml.
The standard pes pes_nf.xml looks like this:
<?xml version="1.0" encoding="UTF-8"?> <bill> <bill path="model/bg/bill/billBody/bill_type_05/bill_nf.xml" /> <systemad path="model/bg/bill/90systemAd/pes/systemAd_nf.xml" /> <texlist path="model/bg/bill/pes/bill_texlist.xml"/> <animedata path="model/bg/bill/pes/bill_anime.json"/> </bill>
bill path
This refers to what billboard models the set will use. Different types have different amount of billboards for each side and some are meant for digital (LED) billboards, some for video (movie) billboards and others for normal plate (scroll) billboards. Some billboard types are only meant for specific stadiums. Change the number to BillBody type you want to use. The game uses the following types of billboards:
# | Type | Amount of back bills | Amount of front bills | Amount of left bills | Amount of right bills |
---|---|---|---|---|---|
01 | Movie | 20 | 8 | 12 | 12 |
02 | LED | 20 | 8 | 12 | 12 |
03 | Scroll | 20 | 8 | 12 | 12 |
05 | LED | 24 | - | 12 | 12 |
06 | Scroll | 24 | - | 12 | 12 |
07 | Movie | 44 | - | 22 | 22 |
08 | LED | 44 | - | 22 | 22 |
10 | Movie | 24 | - | 12 | 12 |
11 | LED | 24 | 12 | 12 | 12 |
13 | Movie | 20 | - | 14 | 14 |
14 | LED | 20 | - | 14 | 14 |
16 | Movie | 20 | - | 12 | 12 |
17 | LED | 20 | - | 12 | 12 |
19 | Movie | 18 | - | 12 | 12 |
20 | LED | 18 | - | 12 | 12 |
23 | LED | 22 | - | 14 | 14 |
25 | Scroll | 30 | 11 | 19 | 20 |
26 | Scroll | 29 | - | 21 | 21 |
28 | LED | 24 | - | 14 | 14 |
30 | Scroll | 26 | - | 11 | 11 |
31 | Scroll | 18 | - | 10 | 10 |
34 | Scroll | 20 | - | 11 | 11 |
38 | Scroll | 18 | 8 | 12 | 12 |
40 | LED | 20 | - | 12 | 12 |
41 | Scroll | 20 | - | 12 | 12 |
43 | LED | 22 | - | 10 | 10 |
47 | Scroll | 18 | - | 12 | 12 |
51 | Scroll | 20 | - | 12 | 12 |
systemad path
Location of the 90systemAd bills, the ones on the ground next to the goals. This will be discussed under Other. If you do not have nor want these things, delete this line.
texlist path
Location of the bill_texlist.xml.
animedata path
Location of the bill_anime.json.xml.
bill_anime.json
This files contains all the data to determine what billboards will appear, where they will appear, how long they will appear and in what order they will appear. Use the bill_anime.json in the template under Tools for 4cc billboards.
Example of a typical bill_anime.json file, in this case for a LED rotating billboard set.
This is an example from a rotating set:
{"animeList" : [0], "texList" : ["left_00", "2left_00", "3left_00"], "idleTime" : 15.0000 }, // 0
Parameters
["left_00", "2left_00", "3left_00"]
: This is where you list your billboard files. In this case, left_00.dds, 2left_00.dds and 3left_00.dds are being called on. They will rotate in this sequence. Naturally a static billboard set would only call on a single file.
"idleTime" : 15.0000
: The number indicates the length of time (in seconds) the game will wait before rotating to the next billboard in sequence.
0
: This number indicates where the billboard slot is in the ground. Starting with 0, slots begin on the left of a given side of the pitch (left, right, back or front).
The billboards below "dir" : 0, are the billboards at the front, "dir" : 1, the back, "dir" : 2, the left and "dir" : 3, the right.
If you want individual static billboards in rotating sets, set "idleTime"
in bill_anime.json to a very large number like 9999999999999.
texture (folder)
This folder will contain all billboards as .dds-textures. These are the same ones as listed in the bill_texlist.xml and bill_anime.json files. While the textures can be almost any size, PES will resize them correctly itself anyway, it is advised to use 512*64 DDS DXT1 No Alpha textures.
Config file
To have the game use your billboard set you will have to put it in the config.xml along with several parameters so the game knows when to use it. This file can be found in (dt30.cpk)\common\bg\model\bg\bill\config.
<condition stid="-1" compeid="-1" hometeamid="1" teamexclusion="0" language="-1" region="-1" title="-1" pattern="folder_name" />
Parameters
stid
: Determines which stadium will use the set.
compeid
: Determines which competition will use the set.
hometeamid
: Determines which team will use the set if they play at home.
teamexclusion
: Unknown, leave set to 0 for team-specific sets, -1 otherwise.
language
: Determines which language version of the game the set will be used in.
region
: Likely applies to a regional version of the game for localisation purposes. Leave it set to -1 to disable the parameter.
title
: Determines whether the set is used in the PES (0) or Winning Eleven (1) version of the game. -1 disables the parameter.
pattern
: The name of the set.
Examples
<condition stid="-1" compeid="-1" hometeamid="782" teamexclusion="0" language="-1" region="-1" title="-1" pattern="4ccc" />
Team with ID 782 will use the set named "4ccc" at home matches.
<condition stid="-1" compeid="2" hometeamid="-1" teamexclusion="-1" language="-1" region="-1" title="-1" pattern="general1" />
Set named "general1" will be used in competition with ID "2".
<condition stid="-1" compeid="-1" hometeamid="-1" teamexclusion="-1" language="-1" region="-1" title="0" pattern="general1" />
Set named "general1" is global and will be used everywhere in PES (unless a stadium, team or competition-specific set takes precedence).
Imporant
The higher the line an entry is in the config.xml, the higher the priority.
Other
90systemAd
These are billboards on the ground next to the goals. First of all make sure the line regarding 90systemAd is in the xx_df.xml, xx_dr.xml, xx_nf.xml or xx_nr.xml. If you're using the 4cc template don't forget to change the texture names in the systemAd.mtl file.
hit_billboard.hkx (important)
All billboards have a skeleton animation file. These go in \common\render\model\bg\hit\bill\<billboard set name>\hit_billboard.hkx.
Making Billboards
It's greatly recommended that you grab the template pack from Tools before proceeding. It contains ready-made files for all types and it's much easier to simply edit those files to your liking.
Also remember to change 4ccc to your own set's name in the following examples.
General Setup
- Put your textures in the texture folder
- Open bill_texlist.xml and add your textures to the list
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure both texlist and animedata point to the files in the same folder
- Open config.xml in common\bg\model\bg\bill\config and add the 4ccc set as detailed in Config file
With that the general setup is done. Now you can further customize the billboards by selecting the display type.
Static default billboard
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure the bill_type_xx in bill path points to a scrolling-type set. Setting it to bill_type_06 is a safe bet
- Open bill_anime.json and change the texlist for each billboard to contain the texture the board should show. For example, if you want the board to show wiki.dds, you should set it to
"texList" : ["wiki"]
- Still in bill_anime.json, set idleTime to 99999.0000 everywhere. This makes sure the billboard image doesn't change during the game
Static LED-backlit billboard
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure the bill_type_xx in bill path points to an LED-type set. Setting it to bill_type_28 is a safe bet
- Open bill_anime.json and change the texlist for each billboard to contain the texture the board should show. For example, if you want the board to show wiki.dds, you should set it to
"texList" : ["wiki"]
- Still in bill_anime.json, set idleTime to 99999.0000 everywhere. This makes sure the billboard image doesn't change during the game
Scrolling default billboard
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure the bill_type_xx in bill path points to a scrolling-type set. Setting it to bill_type_06 is a safe bet
- Open bill_anime.json and change the texlist for each billboard to contain the textures the board should show. For example, if you want the board to change between the wiki and twitter textures, you should set it to
"texList" : ["wiki", "twitter"]
- Still in bill_anime.json, change the idleTime for each billboard to be the time you want the game to wait before changing to the next texture, in seconds. So for a 15-second break between changes, set it to
"idleTime" : 15.0000
Scrolling LED-backlit billboard
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure the bill_type_xx in bill path points to an LED-type set. Setting it to bill_type_28 is a safe bet
- Open bill_anime.json and change the texlist for each billboard to contain the textures the board should show. For example, if you want the board to change between the wiki and twitter textures, you should set it to
"texList" : ["wiki", "twitter"]
- Still in bill_anime.json, change the idleTime for each billboard to be the time you want the game to wait before changing to the next texture, in seconds. So for a 15-second break between changes, set it to
"idleTime" : 15.0000
Video billboards
Making the .usm file
There's two ways to do this. You can either use the USM tools grabbed from the larger pack over at Pro Evolution Soccer 2015/Tool compilation and linked below if you can handle batch files, or use the Scaleform GUI version. The batch tools are easier and faster once you get used to them so they're highly recommended
- Prepare the video you want to appear on the billboards and convert it to .avi. If you want to use audio in the video file you really should use the USM tools batch files which do the job for you. Otherwise you need to convert the video's audio track to 16-bit WAV, which can be done with ffmpeg using the
-acodec pcm_s16le
option. Reading up on ffmpeg is greatly recommended - Grab the Scaleform encoder from Tools and run the program
- In Scaleform, select your video from Input Name, untick Use Audio Track unless you converted the track properly and in Video Settings set the bitrate and optionally the dimensions
- Press Encode. The .usm file will appear in the same folder as the source file. Move this .usm file to the movie folder in your billboard folder
- The video will loop automatically, so the source video can be kept short
- From testing it seems that a 1024*64 video file is enough to fill 6 adboards on the bill_type_10 set. Every video file will be scaled to 1024*64 no matter the original resolution and will be read in the pattern shown in this file. Red is used for the first billboard, green for second, blue for third, black is ignored completely. Take this into note if you want the videoboards to be seamless
Setting up video billboards
- Open 4ccc_nf.xml and 4ccc_df.xml and make sure the bill_type_xx in bill path points to a video-type set. Setting it to bill_type_10 is a safe bet
- Still in 4ccc_nf.xml and 4ccc_df.xml, add the following line:
<movie path="./movie/bill.usm"/>
, where bill.usm is the name of your .usm file.
Advanced
This section will mostly contain stuff not directly related to billboards but requiring exploitation of the billboard system in order to work.
Video Pitches
This is pretty difficult to explain properly, so I've simply included a pre-made set that just needs a .usm file for those who just want a video pitch. You can grab it from the Tools section. All you need to do is make the .usm file, edit the 4ccc_nf.xml and 4ccc_df.xml files to include your video file and change the 4ccc prefix to the team you want to use the video pitches for. Other than that it should be plug-and-play.
The following part tries to explain how the method actually works by starting from a working set of standard video billboards and going step-by-step all the way to forcing PES to load a video as a texture for a pitch model. Reading this is optional, but it hopefully clarifies how all this works and should give a better idea about the possible uses and limitations of this method.
- We'll start with a standard video billboard set. The template pack linked below contains a pre-made set.
- The first thing to do is locate the bill_nf.xml file mentioned in 4ccc_nf.xml. This file defines which billboard models to load for which slot, and we'll exploit the fact that PES doesn't care which kind of model the file feeds it, it'll load it as long as the model works.
- Copy the bill_nf.xml file to your billboard set folder, and keep the name. Edit your 4ccc_nf.xml file to point to the new location of the copied file.
- Next we'll need a standard pitch model. The pre-made video pitch template linked below has one. Create a new folder called model in your billboard set's directory and copy this or any other pitch model to it.
- Now we'll do the actual breakthrough part. Edit the first two lines of bill_nf.xml and change the path variable to
path="./model/pitch.model"
. Now you should have the first two lines of the file with id value of 0 and the path linking to the pitch model you copied before. - In order for the video to actually work we'll still need to edit the bill_nf.mtl file referenced by bill_nf.xml. Locate the original or use the pre-made one and copy it to your billboard set folder. Edit bill_nf.xml to point to the new location of the copied file.
- For the video to display on the pitch we'll need to add a definition for the pitch's material in bill_nf.mtl. This following snippet is the default one in the pre-made template, but you can also build one yourself by copying the material definition of a video billboard and changing the material name to pitch_mat.
<material name="pitch_mat" shader="BillMovie"> <vector name="LedParam" x="4" y="5" z="1" w="1" /> <sampler name="LedMap" path="model/bg/bill/billBody/common/texture/bill_wrap_01.dds" srgb="0" minfilter="anisotropic" magfilter="linear" mipfilter="linear" uaddr="wrap" vaddr="wrap" waddr="wrap" maxaniso="2" /> <state name="alpharef" value="0" /> <state name="blendmode" value="0" /> <state name="alphablend" value="0" /> <state name="alphatest" value="0" /> <state name="twosided" value="0" /> <state name="ztest" value="1" /> <state name="zwrite" value="1" /> </material>
- With that we're almost done. The only problem remaining is that the pitch model we're loading is identical to the original PES pitch most stadiums use, so the two will clip into each other and cause a mess. We'll need to remove the original pitch of the stadium so the video pitch can completely replace it.
- Since this is a billboard tutorial I'll just link MTL files that make the original pitches invisible below. All you need to do is change the stadium ID to the one you want to use and place the folder in common\bg\model\bg\pitch\.
And with that we should be done. You can now build a DLC with the edited billboard set and invisipitch MTLs included and try it out in-game. You'll need to use the team your billboard set was made for as the home team, and you need to play on the stadium that has the default pitches hidden. Only under these conditions will the video pitch work properly.
The use of this method is not only limited to pitches as you may have guessed. You can theoretically load ANY model into PES and give it a video texture, but the limitation is that it will be a part of the stadium, so static. Other limitations include that you can't use a different video for video billboards since there is no way that I know of to force PES to load multiple video files, and that if your video-textured model replaces another visible model in the stadium you'll either have to make your overriding model slightly bigger to completely cover the original or simply hide the original somehow. There are better ways to include custom models in stadiums, but this is so far the only one that can insert a model with a video texture.
Notes and help
- Although there are different billboard sizes possible, 512*64 will be used for the general sets and 1024*64 is recommended for the video sets.
- When using the template, don't forget to rename every instance of 4ccc to your billboard set's name.
Tools
- Billboard template pack: https://drive.google.com/file/d/0B40o12AUxPJHZmdYWWlYSGRqbm8/view?usp=sharing
- Scaleform Video Encoder: https://mega.nz/#!Fk111D6T!tszx_1CrbUKqOeiW76nCOOIQom3yPMhB4DFB_F5AOKo
- USM Tools: https://drive.google.com/file/d/0B40o12AUxPJHSndQWHFUOEFBNHM/view
- Pre-made video pitch template: https://drive.google.com/file/d/0B40o12AUxPJHMk9zYThCY3ZpQ1k/view?usp=sharing
- MTL files for invisible pitches: https://my.mixtape.moe/aamjfu.7z