]> git.xonotic.org Git - xonotic/xonotic.wiki.git/blob - Xonotic_Bot_Orchestra.textile
(Commit created by redmine exporter script from page "Halogene's_Newbie_Corner" versi...
[xonotic/xonotic.wiki.git] / Xonotic_Bot_Orchestra.textile
1 h1. Xonotic Bot Orchestra
2
3 This page explains how to create your very own Bot Orchestra performance.
4
5 In case you want to watch existing Bot Orchestra performances, visit http://www.youtube.com/user/XonoticBotOrchestra
6
7 Note: stuff in _italics_ is up to you and may/will need changing from my examples here.
8
9 h2. Mapping a Bot Orchestra Stage
10
11 To do a bot orchestra performance, a "stage" map for the orchestra is required. It needs the following entities, if you use the default midi2cfg-ng.conf:
12
13 * a target_position called tVocals for the vocalist
14 * a target_position called tPercussion which is where the bots will aim. It's a good idea to have a noimpact surface behind it so shots don't make a noise on their impact.
15 * 32 target_position entities called tUba1 to tUba32 for where bots with tubas/accordeons should walk to start their performance
16 * 32 target position entities called tChr1 to tChr32 for where percussion bots should walk to start their performance. They will then aim at tPercussion. These targets must not be on a nosteps or metalsteps surface!
17 * 3 target_position entities called tMetalSteps1 to tMetalSteps3 for bots to jump on for metal step sounds
18 * 4 target_position entities called tNoSteps1 to tNoSteps4 for jetpack bots so they don't make an unwanted landing sound
19 * info_player_deathmatch spawnpoints with "restriction" "1" for where bots are to spawn
20 * info_player_deathmatch spawnpoints with "restriction" "2" for where humans are to spawn
21 * you probably want to make it so the tUba bots can't leave their area using various means; see the opera map for a quite safe approach involving a "shootable" trigger, but you could also make a pit you can fall into but not get out, or a teleport, or similar tricks to keep them enclosed.
22 * also you may want to look at opera's mapinfo settings: it sets _independent_players 1 and bot_navigation_ignoreplayers 1 to help bot navigation. If you can get it to work without these hacks, it'd be better though.
23
24 In the following example, we will use the map _opera_ by Morphed for the orchestra. You can find it in the branch _divVerent/opera-by-morphed_.
25
26 h2. Creating a bot script
27
28 To create a bot script, first you need to prepare a MIDI file, for which you need to take care of:
29
30 * percussion must be on track 10 only; percussion was mapped manually by me in midi2cfg-ng.conf by "similar sound"; you may want to read that file for reference so you can assign percussion instruments the way you want
31 * program change event for Accordeon,  Harmonica and Tango Accordeon uses the @!#%'n Accordeons
32 * anything else uses the @!#%'n Tuba
33
34 Then, you run in misc/tools/ of Xonotic:
35
36     perl midi2cfg-ng.pl midi2cfg-ng.conf _MIDIFILE.mid_ _transpose_ > _~/.xonotic/data/x.cfg_
37
38 (you also can use any other .cfg name here, but it must be in the same directory as config.cfg and I prefer x.cfg because the unmodified tuba-play.cfg uses it)
39
40 In case not all notes could be played, information is printed to help you choose the _transpose_ parameter. You should try 0 at first.
41
42 h2. Vocals
43
44 In order to play vocals, you need to put an additional file _MIDIFILE.mid.vocals_ next to your MIDI file. An example vocals file:
45
46     scale 0.5
47 18240 sound/ikamusume-op/01-shinryaku.ogg
48 65142 sound/ikamusume-op/02-kirakira.ogg
49 72868 sound/ikamusume-op/03-kagayaku.ogg
50 80594 sound/ikamusume-op/04-minna-de.ogg
51 87629 sound/ikamusume-op/05-hajimemashou.ogg
52 91392 sound/ikamusume-op/05-hajimemashou.ogg
53 95831 sound/ikamusume-op/06-horahora.ogg
54 103465 sound/ikamusume-op/07-wagamama.ogg
55 111191 sound/ikamusume-op/08-ochitari.ogg
56 118426 sound/ikamusume-op/09-ikan-deshou.ogg
57 122312 sound/ikamusume-op/09-ikan-deshou.ogg
58 126505 sound/ikamusume-op/10-honto.ogg
59 134216 sound/ikamusume-op/11-yasashii.ogg
60 142034 sound/ikamusume-op/12-motteru.ogg
61 149253 sound/ikamusume-op/13-anata.ogg
62 157440 sound/ikamusume-op/14-hitoribocchi.ogg
63 164936 sound/ikamusume-op/15-umi-no.ogg
64 172800 sound/ikamusume-op/16-ichigen.ogg
65 176548 sound/ikamusume-op/17-kigen-mo.ogg
66 180311 sound/ikamusume-op/18-shiawase.ogg
67 184228 sound/ikamusume-op/19-mamorimasu.ogg
68 191770 sound/ikamusume-op/20.ogg
69 195840 sound/ikamusume-op/21-iikanji.ogg
70 203520 sound/ikamusume-op/22-iikanji.ogg
71 211200 sound/ikamusume-op/23-higashi.ogg
72 218880 sound/ikamusume-op/24-otakara.ogg
73 226560 sound/ikamusume-op/25-iikanji.ogg
74 234240 sound/ikamusume-op/26-iikanji.ogg
75 241920 sound/ikamusume-op/27-tanjouseki.ogg
76 249600 sound/ikamusume-op/28-konomama.ogg
77 257111 sound/ikamusume-op/29-shinryaku.ogg
78 264791 sound/ikamusume-op/30-keikaku.ogg
79 272548 sound/ikamusume-op/31-shinryaku.ogg
80
81 The numbers are measured in MIDI ticks, but are multiplied by the scale. I made this file by first using audio files inside Rosegarden and positioning them right, and then getting the numbers out of the compressed XML Rosegarden writes as its own file format. Another idea to get these numbers may be the event list editor in your MIDI app.
82
83 h2. Performing
84
85 To perform, copy the files tuba-play.cfg, tuba-record.cfg and tuba-settings.cfg to your Xonotic config directory (~/.xonotic/data/ on Linux) and edit them to your taste. Then:
86
87     ./all run +exec tuba-play.cfg +map _opera_
88
89 The performance will soon begin, and your task is to move the camera appropriately for a good recording!
90
91 h2. Recording
92
93 To make a video, you first run a performance as above, and then find out the file name of the .dem file in your Xonotic demo directory (~/.xonotic/data/demos/ on Linux). Then you do:
94
95     ./all run +exec input-demoseeking.cfg +exec tuba-record.cfg -demo _demos/demofilename.dem_
96
97 You can use the keys m,.- for seeking, where , and . go backwards and forwards by a small step, and m and - seek by a large step. Press x to start/stop video capture.
98
99 Enjoy!