LiveSplit は、使いやすく、機能が豊富なスピードランナー向けのタイマー プログラムです。
Speedrun.com の統合: Speedrun.com は LiveSplit に完全に統合されています。 LiveSplit からリーダーボードを参照したり、スプリットをダウンロードしたり、自分のランを直接送信したりすることもできます。 World Record コンポーネントを使用して実行するゲームの世界記録を表示することもできます。
正確なタイミング: LiveSplit は、インターネット経由で原子時計と自動的に同期し、PC のローカル タイマーの不正確さを推定します。 LiveSplit のタイマーはローカル タイマーを自動的に調整して、これらの不正確さを修正します。
ゲーム時間と自動分割: LiveSplit は、ゲームでゲーム時間や自動分割が利用可能かどうかを自動的に検出し、分割エディターで有効にできるようにします。 Game Time はエミュレータまたは PC ゲームから直接自動的に読み取られ、Compare Against で Game Time に切り替えることで使用できます。
ビデオ コンポーネント:ビデオ コンポーネントを使用すると、ランニングと同時にローカル ファイルからビデオを再生できます。ビデオはランニングを開始すると開始され、リセットするたびに停止します。ビデオをどの時点から開始するかを指定することもできます。
レーシング: LiveSplit では、LiveSplit 自体内の SpeedRunsLive または Racetime.gg でレースを開始したり参加したりできます。タイマーはレースが始まると自動的にスタートし、レースを完了するたびに自動的に.done
書き込みます。また、LiveSplit を使用している限り、レース中に他のランナーと現在のランを比較することもできます。
比較: LiveSplit では、実行中でも複数の比較を動的に切り替えることができます。自分の実行を自分で定義した比較と比較することも、最良セグメントの合計や平均実行など、自動的に生成された複数の比較と比較することもできます。 SpeedRunsLive でレースをしている間、他のランナーとの比較も自動的に生成されます。
レイアウト システム:ユーザーは、レイアウトを使用して LiveSplit の外観のあらゆる部分を変更できます。すべてのユーザーは、LiveSplit の各部分を再配置およびカスタマイズできるとともに、部分を追加または削除することができます。独自の背景画像を使用することもできます。
動的なサイズ変更: LiveSplit は、ストリーム上で見栄えがするように任意のサイズに変更できます。 LiveSplit のサイズが変更されると、外観を維持するためにすべての部分が自動的に拡大されます。
ランの共有:どのランも Speedrun.com および X (Twitter) で共有できます。スプリットは、スプリット I/O を使用して配布したり、URL からインポートしたりすることもできます。分割のスクリーンショットを Imgur に共有したり、ファイルとして保存したりすることもできます。 Twitch タイトルは、プレイしているゲームに基づいて更新することもできます。
コンポーネント開発:誰でも簡単に共有して LiveSplit で使用できる独自のコンポーネントを開発できます。追加のダウンロード可能なコンポーネントは、「コンポーネント」セクションにあります。
あなたの助けが必要です!
問題を参照して、開始するのに適した問題を見つけることができます。まだ完了していないもの、または進行中のものを選択し、自分に割り当てて、「進行中」にドラッグします。
プロジェクトをフォークする
フォークされたリポジトリのクローンを作成します: git clone --recursive https://github.com/YourUsername/LiveSplit.git
機能/バグ修正ブランチを作成します: git checkout -b new-feature
新しいブランチに変更をコミットします: git commit -am 'Add a new feature'
ブランチにプッシュ: git push origin new-feature
新しいプル リクエストを作成してください。
LiveSplit は .NET Framework 4.8.1 を使用します。 LiveSplit をコンパイルするには、次のコンポーネントがインストールされている必要があります。
.NET 8.0 SDK
.NET Framework 4.8.1 開発者パック
クローン作成後は、リポジトリのルートからdotnet build LiveSplit.sln
を実行するだけです。
Visual Studio を使用するには、インストールした .NET SDK バージョンをサポートするバージョンをインストールする必要があります。この記事の執筆時点での最新バージョンは Visual Studio 2022 です。
リポジトリをフォーク/クローンするときにサブモジュールが取り込まれないため、プロジェクトがビルドされません。これを修正するには 2 つの方法があります。
初めてのクローン作成: git clone --recursive https://github.com/LiveSplit/LiveSplit.git
すでにクローンが作成されている場合は、ルート ディレクトリでこれを実行します: git submodule update --init --recursive
Auto Splitter の開発、テスト、送信方法に関するドキュメントは、次の場所にあります。
自動スプリッターのドキュメント
内部 LiveSplit サーバーにより、他のプログラムや他のコンピュータが LiveSplit を制御できるようになります。サーバーは、 <hostname>pipeLiveSplit
(クライアントとサーバーが同じコンピュータ上にある場合は.
はホスト名) にある名前付きパイプ、生の TCP/IP、またはws://<hostname>:port/livesplit
にある WebSocket (WS) サーバー経由の接続を受け入れることができます。 ws://<hostname>:port/livesplit
。
LiveSplit の実行中、名前付きパイプは常に開いていますが、プログラムが通信できるようにするには、TCP および WS サーバーを開始する必要があります(LiveSplit を右クリックして、[コントロール] -> [TCP/WS サーバーの開始] をクリックします)。 LiveSplit を起動するたびに、使用するものを手動で開始する必要があります。 WS サーバーは TCP/IP 上で実行されるため、TCP サーバーと WS サーバーの両方を同時に実行することはできません。
サーバー ポートは、このプログラムがデータを送信するコンピューター上のドア (数千のうちの 1 つ) です。デフォルトは 16834 です。ほとんどの人にとってはこれで問題ありませんが、ネットワーク構成によっては、一部のポートがブロックされる場合があります。 https://en.wikipedia.org/wiki/Port_%28computer_networking%29 も参照してください。
Android LiveSplit リモート: https://github.com/Ekelbatzen/LiveSplit.Remote.Android
SplitNotes : https://github.com/joelnir/SplitNotes
オートスプリッター リモート クライアント: https://github.com/RavenX8/LiveSplit.Server.Client
何かクールなものを作りましたか?このリストに追加することを検討してください。
コマンドは大文字と小文字が区別され、改行で終わります。パラメーターを指定するには、コマンドの後にスペースを使用し、その後でパラメーターを送信します ( <command><space><parameters><newline>
)。
コマンドによってはデータで応答するものと応答しないものがあります。すべての応答は改行文字で終わります。 WS サーバーにはメッセージの概念があるため、WS サーバー経由で送信されるコマンドと応答は改行文字で終わらないことに注意してください。
サーバーから返されるすべての時刻とデルタは、C# の定数形式指定子に従ってフォーマットされます。サーバーは、 [-][[[d.]hh:]mm:]ss[.fffffff]
という形式の時刻を受け入れます。日が存在する場合でも、時間フィールドは 23 より大きくてもかまいません。個々のフィールドにゼロを埋め込む必要はありません。時刻または文字列を返すコマンドはすべて、「null」または無効な値を示す単一のハイフン-
返すことができます。 COMPARISON または NAME を使用するコマンドは、スペースを含むプレーン文字列を使用します。改行文字はコマンドの終わりを示す区切り文字として使用されるため、コマンド内のどこにも改行文字が表示されない場合があります。
応答を生成しないコマンド:
スタータースプリット
スプリット
分割されていない
スキップスプリット
一時停止
再開する
リセット
スタートタイマー
ゲーム時間の設定時間
読み込み時間の設定 TIME
読み込み時間の追加 TIME
一時停止ゲーム時間
一時停止を解除するゲーム時間
常に一時停止ゲームの時間
セット比較比較
リアルタイムに切り替える
ゲームタイムに切り替える
setsplitname インデックス名
setcurrentsplitname 名前
時刻を返すコマンド:
ゲットデルタ
getdelta の比較
取得ラストスプリットタイム
比較分割時間を取得する
現在のリアルタイムを取得
現在のゲーム時間を取得する
現在時刻を取得する
最終時間を取得する
getfinaltime の比較
getpredictedtime の比較
可能な限り最高の時間を得る
int を返すコマンド:
分割インデックスの取得
(タイマーが動作していない場合は -1 を返します)
文字列を返すコマンド:
getcurrentsplitname
前の分割名を取得
現在のタイマー位相を取得します
ピング
(常にpong
返します)
コマンドは「CommandServer.cs」のProcessMessage
で定義されています。
インポートソケット =ソケット.ソケット(ソケット.AF_INET,ソケット.SOCK_STREAM)s.connect(("localhost", 16834))s.send(b"starttimern")
import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;public class MainTest {public static void main(String[] args) throws IOException {Socket ソケット = new Socket("localhost", 16834) ;PrintWriter ライター = 新しいPrintWriter(socket.getOutputStream());writer.println("starttimer");writer.flush();socket.close(); } }
Luaを実装したソフトウェアをクライアントとして利用できます。ただし、スクリプトで使用するには lua io ライブラリが利用可能である必要があります。完全なドキュメントはここから入手できます。
require "io"self.LSEndpoint = "\.pipeLiveSplit" --Localhost LiveSplit Pipe.self.LSPipe = io.open(self.LSEndpoint, "w") --パイプを開く/開始します。すべての command.self.LSPipe:write "starttimern"self.LSPipe:flush()self.LSPipe:close() の後にフラッシュが必要です -- これは、必要に応じて開いたままにすることができます。
Node.js クライアント実装はここから入手できます: https://github.com/satanch/node-livesplit-client
新しい LiveSplit バージョンと一致するように、変更されたコンポーネントのバージョンを更新します (Git タグを作成し、各コンポーネントのファクトリー ファイルを更新します)。
新しいバージョンの Git タグを作成します。
新しい Git タグの GitHub Actions ビルドからLiveSplit_Build
とUpdateManagerExe
ダウンロードします。
新しいバージョンの GitHub リリースを作成し、正しいファイル名 (例: LiveSplit_1.8.21.zip
) で LiveSplit ビルド ZIP ファイルをアップロードします。
LiveSplit.github.io の update フォルダー内のファイルを変更し、変更をコミットします。
ダウンロードした LiveSplit ビルド ZIP ファイルから変更されたファイルをアップデート フォルダーにコピーします。
ダウンロードした Update Manager ZIP ファイルから変更されたファイルをコピーして、 UpdateManagerV2.exe
とUpdateManagerV2.exe.config
を置き換えます。
新しいバージョンを更新 XML ( update.xml
、 update.updater.xml
、および変更されたコンポーネントの更新 XML) に追加します。
DLL を変更し、リポジトリ内の LiveSplit.TheRun の XML を更新します。
ダウンロードページでバージョンを更新してください。
MIT ライセンス (MIT)
著作権 (c) 2013 Christopher Serr および Sergey Papushin
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそのことを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。