Giter Club home page Giter Club logo

clip-input's Introduction

bigbang1112-cz

Personal website repository.

clip-input's People

Contributors

bigbang1112 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

clip-input's Issues

Constant right steer

A message from Forgot10:

I tried three replays (one from TMS, two from TMUF 2.11.26, of which two driven by me and another by someone else), all clips show max right steer for the whole replay. Accelerator, brake and left steer work fine.

Bug while trying to set inputs on ESWC replay

So I was going to generate some inputs to my epic D-0 edgebug, but when I opened the Clip Input I encountered this error while generating the inputs:
image
I have tried to change the file location to something else but it still gives that error, am I missing something to fix this or is this a common issue that will not be fixed?
Btw my Clip Input version is the latest, aka 1.2.0-rc x64-Bit

EndOfStreamException in CSceneVehicleCar.Sample

Initializing the console...
Using the tool: Clip Input 2
Retrieving possible config options...
Scanning all the command line arguments...

Detected input files:
- 193_Fanakuri0047843_GHOST.Gbx

Using existing ConsoleOptions.yml...

Additional arguments: (none)
Loading config Default.yml...
Config Default.yml saved in standard format.

Parsing 193_Fanakuri0047843_GHOST.Gbx...

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
   at System.IO.BinaryReader.InternalRead(Int32)
   at System.IO.BinaryReader.ReadSingle()
   at GBX.NET.GameBoxReader.ReadVec3()
   at GBX.NET.Engines.Scene.CSceneVehicleCar.Sample.Read(MemoryStream, GameBoxReader, Int32)
   at GBX.NET.Engines.Game.CGameGhost.Data.ReadSample(Int32, Byte[], Int32[] )
   at GBX.NET.Engines.Game.CGameGhost.Data.Read(GameBoxReader)
   at GBX.NET.Engines.Game.CGameGhost.Data.Read(Stream, Boolean)
   at GBX.NET.Engines.Game.CGameGhost.Data.Parse()
   at GBX.NET.Engines.Game.CGameGhost.get_SampleData()
   at ClipInput.ClipInputTool.GetBlockEndTime(CGameCtnGhost ghost) in D:\a\clip-input\clip-input\ClipInput\ClipInputTool.cs:line 274
   at ClipInput.ClipInputTool.GetGhostsAndEndTime(IEnumerable`1 ghosts, CGameCtnReplayRecord replay) in D:\a\clip-input\clip-input\ClipInput\ClipInputTool.cs:line 87
   at ClipInput.ClipInputTool..ctor(IEnumerable`1 ghosts) in D:\a\clip-input\clip-input\ClipInput\ClipInputTool.cs:line 37
   at ClipInput.ClipInputTool..ctor(CGameCtnGhost ghost) in D:\a\clip-input\clip-input\ClipInput\ClipInputTool.cs:line 30
   at System.RuntimeMethodHandle.InvokeMethod(Object, Void**, Signature, Boolean)
   at System.Reflection.ConstructorInvoker.Invoke(Object, IntPtr*, BindingFlags)
   --- End of inner exception stack trace ---
   at System.Reflection.ConstructorInvoker.Invoke(Object, IntPtr*, BindingFlags)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags, Binder, Object[], CultureInfo)
   at System.Reflection.ConstructorInfo.Invoke(Object[] )
   at GbxToolAPI.CLI.ToolConstructorPicker.CreateInstances[T](Dictionary`2 inputByType, Boolean singleOutput)+MoveNext()   at GbxToolAPI.CLI.ToolConsole`1.RunCanThrowAsync(String[] args)
   at GbxToolAPI.CLI.ToolConsole`1.RunAsync(String[] args)
Press any key to continue...

193_Fanakuri0047843_GHOST.zip

Stuck analog acceleration input

Sometimes when a player has an analog acceleration (Gas) input attached, it can appear right before the digital acceleration, used throughout the run.

Example behavior: https://www.youtube.com/watch?v=LLbq76z8qLM

One of the possible solutions: Interfere Gas and Accelerate/Brake visualizations, basically switch between them. Do not possibly affect AccelerateReal and BrakeReal.

Issues with Brake bound with BrakeReal on the same button

Let's say analog button is bound to both digital and analog brake. This input set can be taken as an example:

Brake { Time = 0:15.790, Pressed = True }
BrakeReal { Time = 0:15.800, Value = -51339, NormalizedValue = -0.783371 }
BrakeReal { Time = 0:15.810, Value = -39482, NormalizedValue = -0.6024475 }
BrakeReal { Time = 0:15.820, Value = -28810, NormalizedValue = -0.4396057 }
BrakeReal { Time = 0:15.830, Value = -27625, NormalizedValue = -0.42152405 }
BrakeReal { Time = 0:15.840, Value = -31182, NormalizedValue = -0.47579956 }
BrakeReal { Time = 0:15.850, Value = -53710, NormalizedValue = -0.81954956 }
Brake { Time = 0:15.860, Pressed = False }
BrakeReal { Time = 0:15.860, Value = -65536, NormalizedValue = -1 }

Analog brake seems to be always after the digital brake (another example supports this theory). So when you have the same button bound on both analog and digital brakes, the "leaving" state is always gonna be from analog - this should maybe stay as it is, even if the digital brake looks nicer, up to debate. The same could potentially happen with Acceleration and other inputs, so it shouldn't be applied specifically to brake. The transition also isn't considered with AdjustToFPS set to true, which should be the primary focus to resolve.

Another example what can happen:

Brake { Time = 0:44.690, Pressed = True }
BrakeReal { Time = 0:44.690, Value = -62603, NormalizedValue = -0.955246 }
BrakeReal { Time = 0:44.700, Value = -52525, NormalizedValue = -0.8014679 }
BrakeReal { Time = 0:44.710, Value = -47189, NormalizedValue = -0.720047 }
BrakeReal { Time = 0:44.730, Value = -48375, NormalizedValue = -0.7381439 }
BrakeReal { Time = 0:44.740, Value = -57860, NormalizedValue = -0.88287354 }
Brake { Time = 0:44.750, Pressed = False }
BrakeReal { Time = 0:44.750, Value = -65536, NormalizedValue = -1 }

Here, the brake is pressed, also visually shows on the ghost, but is a 0-tick event? I don't know how to visualize that one. Perhaps always taking just the first event of the tick and ignoring the rest, like currently happening at the start of the run.

Generally speaking, it would be best to rewrite the input logic to know how to deal with same-tick inputs and such. Updates will be shared under this issue, everything should happen on a separate branch (to be made).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.