XML:FILM: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==FILM: animation playbacks==
{{XML_File_Header | prev=DPge | type=FILM | next=HPge | name=Film}}
{{Template:XMLModdingHints}}
{| border=0 cellspacing=20 cellpadding=0 align=center
| The xml code on this page is compatible with onisplit '''v0.9.61.0''' and '''v0.9.68.0'''
|}


 
==General information==
===general information===
* The XML code on this page is compatible with OniSplit '''v0.9.61.0''' and '''v0.9.68.0'''.
* FILM*.oni are level specific (they are usually used in cutscenes and can be found in level''XX''_...)
* FILM*.oni files are level-specific (they are usually used in cutscenes and can be found in level''X''_Final).
* For best results (esp. for run and jump) use same character for recording and playing the FILM files.
* For best results (esp. for running and jumping), use the same character for recording and playing the FILM files.
* Holster and unholster is same key event, make sure character has (un)holstered weapon as you planed, else it can affect sprint.
* Holster and unholster is the same key event, so make sure the character has their weapon holstered/unholstered as you planned or it will affect their ability to sprint.
* Following values are in radians. [http://www.unitconversion.org/angle/radians-to-degrees-conversion.html HERE] you can calculate radians to degrees and vice versa.
* The tags below have their values in radians. [http://www.unitconversion.org/angle/radians-to-degrees-conversion.html THIS] page can convert radians to degrees and vice versa.
: <Facing>
: <Facing>
: <DesiredFacing>
: <DesiredFacing>
Line 16: Line 12:
: <HeadPitch>
: <HeadPitch>


 
==BSL support==
===BSL support===
  playback ''ai_name FILM_name''
  playback ''ai_name FILM_name''
  playback ''script_id FILM_name''
  playback ''script_id FILM_name''


 
==How to make your own FILM==
===How to make an own FILM===
* They will be saved next to the running game application. The first file will be named "saved_film000.dat".
* They become stored in Oni/edition folder. First file is named "saved_film000.dat"
* Enter [[Developer Mode]] to record a FILM.
* Enter [[Developer_Mode|Developer Mode]] to record a FILM.
: F9 - start record
: F9 - start record
: F10 - stop record
: F10 - stop record
: F11 - play record
: F11 - play record


===FILM converting===
===FILM converting===
: for original FILM*oni to FILM*.xml
Converting FILM*oni to FILM*.xml:<br>
  onisplit -extract:xml xml_dir level''XX_name''/FILM*.oni
  onisplit -extract:xml xml_dir level''XX_name''/FILM*.oni
: for new saved_film*.dat to saved_film*.xml
 
Converting saved_film*.dat to saved_film*.xml:<br>
  onisplit film2xml xml_dir source_dir/saved_film*.dat
  onisplit film2xml xml_dir source_dir/saved_film*.dat
: for converting original/new *.xml to *oni
 
Converting *.xml to *oni:<br>
  onisplit -create oni_dir xml_dir/*.xml
  onisplit -create oni_dir xml_dir/*.xml


 
==<Keys>==
===<Keys>===
: None
: None
: Escape
: Escape
Line 79: Line 72:
: Fire3
: Fire3


 
==Sample XML==
===sample piece===
"[...]" below stands for additional <FILMFrame>...</FILMFrame> blocks.
[...] stands for another <FILMFrame>...</FILMFrame> code block


  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
Line 106: Line 98:
     </Instance>
     </Instance>
  </Oni>
  </Oni>
==Frame structures==
FILM allows two structures for <Frames>.
===Fixed structure===
There are always 4 elements within <FILMFrame>.
            <FILMFrame>
                <MouseDeltaX>0</MouseDeltaX>
                <MouseDeltaY>0</MouseDeltaY>
                <Keys></Keys>
                <Frame>0</Frame>
            </FILMFrame>
===Modular structure===
There can be one up to three elements.
<nowiki><Time></nowiki> is used instead of <Frame>.
<MouseDelta> is an array of X and Y.
            <Frame>
                <nowiki><Time>0</Time></nowiki>
            </Frame>
            <Frame>
                <nowiki><Time>25</Time></nowiki>
                <MouseDelta>0.25 0</MouseDelta>
            </Frame>
            <Frame>
                <nowiki><Time>223</Time></nowiki>
                <MouseDelta>0 -0.25</MouseDelta>
                <Keys>Forward</Keys>
            </Frame>
{{XML}}

Latest revision as of 19:19, 14 November 2023

FILM : Film
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

DPge << Other file types >> HPge

switch to OBD page

General information

  • The XML code on this page is compatible with OniSplit v0.9.61.0 and v0.9.68.0.
  • FILM*.oni files are level-specific (they are usually used in cutscenes and can be found in levelX_Final).
  • For best results (esp. for running and jumping), use the same character for recording and playing the FILM files.
  • Holster and unholster is the same key event, so make sure the character has their weapon holstered/unholstered as you planned or it will affect their ability to sprint.
  • The tags below have their values in radians. THIS page can convert radians to degrees and vice versa.
<Facing>
<DesiredFacing>
<HeadFacing>
<HeadPitch>

BSL support

playback ai_name FILM_name
playback script_id FILM_name

How to make your own FILM

  • They will be saved next to the running game application. The first file will be named "saved_film000.dat".
  • Enter Developer Mode to record a FILM.
F9 - start record
F10 - stop record
F11 - play record

FILM converting

Converting FILM*oni to FILM*.xml:

onisplit -extract:xml xml_dir levelXX_name/FILM*.oni

Converting saved_film*.dat to saved_film*.xml:

onisplit film2xml xml_dir source_dir/saved_film*.dat

Converting *.xml to *oni:

onisplit -create oni_dir xml_dir/*.xml

<Keys>

None
Escape
Console
Pause
Cutscene1
Cutscene2
F4
F5
F6
F7
F8
StartRecord
StopRecord
PlayRecord
F12
LookMode
Screenshot
Forward
Backward
TurnLeft
TurnRight
StepLeft
StepRight
Jump
Crouch
Punch
Kick
Block
Walk
Action
Hypo
Reload
Swap
Drop
Fire1
Fire2
Fire3

Sample XML

"[...]" below stands for additional <FILMFrame>...</FILMFrame> blocks.

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Instance id="0" type="FILM">
       <Position>414.461334 50 666.26355</Position>
       <Facing>4.767578</Facing>
       <DesiredFacing>4.767578</DesiredFacing>
       <HeadFacing>0</HeadFacing>
       <HeadPitch>-0.196971774</HeadPitch>
       <FrameCount>165</FrameCount>
       <Animations>
           <String></String>
           <String></String>
       </Animations>
       <Frames>
           <FILMFrame>
               <MouseDelta>0 0</MouseDelta>
               <Keys></Keys>
               <Frame>0</Frame>
           </FILMFrame>
           [...]
       </Frames>
   </Instance>
</Oni>

Frame structures

FILM allows two structures for <Frames>.

Fixed structure

There are always 4 elements within <FILMFrame>.

           <FILMFrame>
               <MouseDeltaX>0</MouseDeltaX>
               <MouseDeltaY>0</MouseDeltaY>
               <Keys></Keys>
               <Frame>0</Frame>
           </FILMFrame>

Modular structure

There can be one up to three elements.

<Time> is used instead of <Frame>.

<MouseDelta> is an array of X and Y.

           <Frame>
               <Time>0</Time>
           </Frame>
           <Frame>
               <Time>25</Time>
               <MouseDelta>0.25 0</MouseDelta>
           </Frame>
           <Frame>
               <Time>223</Time>
               <MouseDelta>0 -0.25</MouseDelta>
               <Keys>Forward</Keys>
           </Frame>