XML:FILM: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (correcting prev/next types in nav header)
mNo edit summary
Line 98: 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}}
{{XML}}

Revision as of 13:11, 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.

</nowiki>

<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>