zoffline は、Zwift サーバーの部分的な実装として機能することで、Zwift をオフラインで使用できるようにします。デフォルトでは、zoffline は 1 人のプレイヤーのみを対象としています。複数のユーザー/プロファイルのサポートを有効にする方法については、「ステップ 6: マルチプレイヤーを有効にする」を参照してください。
zoffline では、ゴースト (以前の乗り物) と対戦することもできます。 Zoffline のランチャーで「ゴーストを有効にする」にチェックを入れてこの機能を有効にします。詳細については、「ゴーストとボット」を参照してください。
さらに、zoffline のランチャーを使用すると、設定ファイルをいじることなく、特定のマップを選択して乗車することができます。
Zoffline を設定するには、主に 2 つの手順が必要です。まず、Zwift を実行する前に、システム (Zwift を実行しているシステムまたはローカルにネットワーク化された別のシステム) に zoffline をインストールして実行する必要があります。次に、Zwift は公式 Zwift サーバーの代わりに zoffline を使用するように設定する必要があります。
プラットフォームに応じて、zoffline をインストールして実行するには 3 つの方法があります。
pace_partners
ディレクトリを zoffline と同じフォルダーに抽出します。server-ip.txt
ファイルをstorage
ディレクトリに作成します。storage
ディレクトリを作成します。pip3 install -r requirements.txt
pip install -r requirements.txt
pip
だけではなく、 C:UsersAppDataLocalProgramsPythonPythonScriptspip.exe
を使用する必要がある場合があります。server-ip.txt
ファイルをstorage
ディレクトリに作成します。sudo ./standalone.py
sudo python3 standalone.py
を実行します。python standalone.py
python
だけではなく、 C:UsersAppDataLocalProgramsPythonPythonpython.exe
を使用する必要がある場合があります。storage
ディレクトリを保持してください。これには、Zwift の進行状況が含まれます。zoffline は、Zwift と同じマシンまたは別のローカル マシンにインストールできます。
docker create --name zwift-offline -p 443:443 -p 80:80 -p 3024:3024/udp -p 3025:3025 -p 53:53/udp -v :/usr/src/app/zwift-offline/storage -e TZ= zoffline/zoffline
-v :/usr/src/app/zwift-offline/storage
除外できます。-v
に渡すパスは、おそらく誰でも読み取りおよび書き込み可能である必要があります。
値 (America/New_York など) のリストはここにあります。--restart unless-stopped
を追加すると、起動時に zoffline が開始されます。server-ip.txt
ファイルを
ディレクトリに作成します。docker start zwift-offline
docker-compose.yml
ファイルを使用するか、次のサンプル compose ファイルを使用します。 version: "3.3"
services:
zoffline:
image: zoffline/zoffline:latest
container_name: zoffline
environment:
- TZ=Europe/London
volumes:
- ./storage/:/usr/src/app/zwift-offline/storage
ports:
- 80:80
- 443:443
- 3024:3024/udp
- 3025:3025
restart: unless-stopped
server-ip.txt
ファイルをstorage
ディレクトリに作成します。docker-compose up -d
で Zoffline を開始します。C:Program Files (x86)ZwiftZwift_ver_cur.xml
zoffline のcdn/gameassets/Zwift_Updates_Root/
にコピーして、既存のファイルを上書きします。certutil.exe -importpfx Root cert-zwift-com.p12
C:Program Files (x86)Zwiftdatacacert.pem
を開きます。ssl/cert-zwift-com.pem
の内容を cacert.pem に追加します。C:WindowsSystem32Driversetchosts
開きます。 us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com launcher.zwift.com
は、zoffline を実行しているマシンの IP アドレスです。Zwift と同じマシンで実行している場合は、IP として127.0.0.1
を使用します。)hosts
ファイルを変更しないままにしたい場合は、オプションで、通常の Zwift Launcher を使用する代わりに、 scripts
ディレクトリ内のlaunch.batスクリプトを使用して zoffline を起動できます。詳細については #121 を参照してください。理由: Zoffline を使用するように Zwift をリダイレクトし、Zwift のドメイン名に対して zoffline の自己署名証明書を受け入れるように Windows と Zwift を説得する必要があります。独自の証明書を自由に生成して、同じことを行ってください。
~/Library/Application Support/Zwift/ZwiftMac_ver_cur.xml
zoffline のcdn/gameassets/Zwift_Updates_Root/
にコピーして、既存のファイルを上書きします。sed -n '29,53p' cert-zwift-com.pem >> ~/Library/Application Support/Zwift/data/cacert.pem
実行します。/etc/hosts
開きます。 us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com launcher.zwift.com
は、zoffline を実行しているマシンの IP アドレスです。Zwift と同じマシンで実行している場合は、IP として127.0.0.1
を使用します。)理由: Zoffline を使用するように Zwift をリダイレクトし、macOS と Zwift が Zwift のドメイン名に対する zoffline の自己署名証明書を受け入れるように説得する必要があります。独自の証明書を自由に生成して、同じことを行ってください。
ZofflineObb.apk
ダウンロードしてインストールしますapp-Github-release.apk
ダウンロードしてインストールしますhosts.txt
ファイルを作成します (テキスト エディター アプリを使用するか、このようなオンライン ツールを使用してオンラインで作成できます)。ファイルは次のようになります (
zoffline を実行しているマシンの IP アドレスに置き換えます)。 us-or-rly101.zwift.com
secure.zwift.com
cdn.zwift.com
hosts.txt
ファイルを選択します。storage
ディレクトリにfake-dns.txt
ファイルを作成し、携帯電話の Wi-Fi 接続の「DNS 1」を zoffline を実行している PC の IP アドレスに設定できます。Android Settings > Applications > Zwift
に移動してデータを消去するか、アプリをアンインストールして再インストールします。ZofflineObb
アプリを開いて実行します (ストレージへのアクセスを許可します)理由: Zoffline を使用するように Zwift をリダイレクトし (これは仮想ホスト アプリによって行われます)、Zwift が Zwift のドメイン名に対する zoffline の自己署名証明書を受け入れるように説得する必要があります (これはパッチ ツール ZofflineObb によって行われます)。
ssl/cert-zwift-com.pem
の内容をデバイスの/data/data/com.zwift.zwiftgame/dataES/cacert.pem
に追加します。adb push ssl/cert-zwift-com.pem /data/data/com.zwift.zwiftgame/dataES/
adb shell
の場合: cd /data/data/com.zwift.zwiftgame/dataES/
adb shell
の場合: cat cert-zwift-com.pem >> cacert.pem
/etc/hosts
ファイルを変更する us-or-rly101.zwift.com secure.zwift.com cdn.zwift.com
は、zoffline を実行しているマシンの IP アドレスです。)adb pull /etc/hosts
adb push hosts /etc/hosts
hosts
ファイルを変更する代わりに、ルーターを調整してこれらの DNS レコードを変更できます。理由: Zoffline を使用するように Zwift をリダイレクトし、Zwift のドメイン名に対する zoffline の自己署名証明書を受け入れるように Zwift を説得する必要があります。独自の証明書を自由に生成して、同じことを行ってください。
通常どおりZwiftをオンラインで使用するには、Zwiftを開始する前にhosts
ファイルに追加された行をコメントアウトするか削除します。次に、Zwift が完全に閉じていることを確認し (Zwift システム トレイ アイコンを右クリックして終了し)、Zwift を再起動します。
Zoffline を有効にして最初に Zwift を開始する前に現在の Zwift プロフィールを取得していない場合は、新しいプロフィール (身長、体重、性別) を作成するように求められます。プロフィールは、ゲーム内メニューからさらにカスタマイズおよび変更できます (名前、国籍、体重の変更など)。
現在のプロフィールを取得するには:
scripts/get_profile.py -u
を実行します。scripts/get_profile.py
の代わりに https://github.com/oldnapalm/zoffline-helper/releases/latest から取得したget_profile.exe
を実行できます。profile.bin
、 achievements.bin
、およびeconomy_config.txt
( get_profile.py を実行したディレクトリに保存) をstorage/1
ディレクトリに移動します。storage/1
ディレクトリが存在しない場合は作成します。1
は-v
に渡したパスにある必要があります。launcher.zwift.com
に設定し、ランチャー ウィンドウの [設定 - Strava] ボタンを使用することができます (Windows および macOS のみ)。scripts/strava_auth.py --client-id CLIENT_ID --client-secret CLIENT_SECRET
scripts/strava_auth.py
の代わりに https://github.com/oldnapalm/zoffline-helper/releases/latest から取得したstrava_auth.exe
を実行できます。strava_token.txt
( strava_auth.py
を実行したディレクトリに保存) をstorage/1
ディレクトリに移動します。pip install garth
storage
ディレクトリにファイルgarmin_domain.txt
を作成します。garmin.cn
使用してくださいstorage/1
ディレクトリにログイン資格情報を含むファイルgarmin_credentials.txt
を作成します。
複数のユーザーのサポートを有効にするには、次の手順を実行します。
storage
ディレクトリにmultiplayer.txt
ファイルを作成します。server-ip.txt
ファイルをstorage
ディレクトリに作成します。apk-mitm/dist/tools/apktool.js
を開き ( npm root -g
を実行して場所を確認します)、次のように編集します。 decode ( inputPath , outputPath ) {
return this . run ( [
'decode' ,
'-resm' , // add this
'dummy' , // add this
inputPath ,
'--output' ,
outputPath ,
'--frame-path' ,
this . options . frameworkPath ,
] , 'decoding' ) ;
}
zca.apk
) を既知の場所にコピーします。apk-mitm --certificate cert-zwift-com.pem zca.apk
zca-patched.apk
携帯電話にコピーしてインストールしますapp-Github-release.apk
ダウンロードしてインストールしますhosts.txt
ファイルを作成します (テキスト エディター アプリを使用するか、このようなオンライン ツールを使用してオンラインで作成できます)。ファイルは次のようになります (
zoffline を実行しているマシンの IP アドレスに置き換えます)。 us-or-rly101.zwift.com
secure.zwift.com
cdn.zwift.com
hosts.txt
に追加しないでください。Companion は公式サーバーから画像をダウンロードする必要があります。hosts.txt
ファイルを選択します。storage
ディレクトリにfake-dns.txt
ファイルを作成し、携帯電話の Wi-Fi 接続の「DNS 1」を zoffline を実行している PC の IP アドレスに設定できます。storage
ディレクトリにcdn-proxy.txt
ファイルを作成します。これは、Zwift クライアントとは別のマシンで zoffline を実行している場合にのみ機能します。storage
ディレクトリにdisable_proxy.txt
ファイルを作成します。gmail_credentials.txt
ファイルをstorage
ディレクトリに作成します。 https://security.google.com/settings/security/apppasswords にアクセスし、サーバーからのログインを許可するアプリ パスワードを作成する必要があります。pip3 install discord.py
、次のファイルが含まれるstorage
ディレクトリにdiscord.cfg
ファイルを作成します。 [discord]
token =
webhook =
channel =
welcome_message =
help_message =
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=1
storage
フォルダー内にファイルenable_ghosts.txt
を作成します。https:///login/
にアクセスし、「ゴーストを有効にする」にチェックを入れ、「Zwift を開始」をクリックしてオプションを保存します。storage//ghosts//
に保存されます。次回同じルートに乗るとゴーストがロードされます。.regroup
と入力してゴーストを再グループ化します。storage
フォルダー内にファイルghost_profile.txt
を作成することで、機器をカスタマイズできます。スクリプトfind_equip.py
使用して、このファイルを設定できます。 storage
フォルダー内にファイルenable_bots.txt
作成してゴーストをボットとしてロードすると、走行ルートに関係なくゴーストは走り続けます。enable_bots.txt
乗数の値を含めることができます (結果として得られるボットの数が多すぎると、パフォーマンスの問題が発生したり、まったく機能しなくなる可能性があるので注意してください)。storage
フォルダー内にファイルbot.txt
作成することでカスタマイズできます。スクリプトget_pro_names.py
およびget_strava_names.py
を使用して、このファイルにデータを取り込むことができます。bot_editor.py
を使用して、 profile.bin
(名前、プレーヤー ID、およびルート ID を設定) とroute.bin
(超過ポイントをカットして完全なループを作成) を変更できます。.bookmark
を使用して保存することもできます。storage
ディレクトリにファイルall_time_leaderboards.txt
を作成します。storage
ディレクトリにファイルunlock_entitlements.txt
を作成します。unlock_all_equipment.txt
を作成します。 コミュニティがサポートする Discord サーバーと Strava クラブに参加してください。
ドッカー
-または-
今後の Zwift アップデートにより、更新されるまで zoffline が機能しなくなる可能性があります。 zoffline が有効になっている間は、Zwift アップデートはインストールされません。 Zoffline のアップデートによって何かが壊れた場合は、 CHANGELOG
で変更が必要かどうかを確認してください。
Zoffline をインターネットに公開しないでください。それを念頭に置いて設計されていません。
注: テストされていない Zwift アップデートが zoffline で動作するという保証はありません。ただし、歴史的には、Zwift のアップデートによって Zoffline が中断されることはほとんどありません。
Zwift は Zwift, Inc. の商標です。Zwift, Inc. はこのプロジェクトの作成者とは提携しておらず、このプロジェクトを推奨していません。
すべての製品名および会社名は、それぞれの所有者の商標です。これらの使用は、それらとの提携または承認を意味するものではありません。