
Shard-音频包 官方德语(进行中)
--- 亲爱的Choom,我们诚挚地邀请你加入,帮助为德语区的所有玩家增添碎片的乐趣。 --- 亲爱的Choom,我们诚挚地邀请你参与协助,为德语地区的所有玩家优化碎片体验。 ---
查看大图[center]Clip auf Deutsch – YouTube ansehen
[u]Dieser Spoiler ist auf Deutsch: [/u]
[center]Installation:[/center]
[spoiler]Um es bei dir zum laufen zu bekommen, lädst du die ganz untenstehenden, denen ich eine Danksagung aussprach. Es sollte normal beim Download angezeigt werden, was dir eventuell noch fehlt (falls ich etwas vergessen habe, als Absicherung).
WolvenKit – wird nur für die mitwirkenden benötigt, das kannst du gerne auslassen.
Wenn du alles hast, [u][size=4]Downloade mein Packet unbedingt manuell[/size][/u] als ZIP-Datei, zieh es auf deinen Desktop, entpacke es als MeinSplitterMod (Entpacken nach "MeinSplitterMod"), und füge es zum audioware-Ordner hinzu. Bei mir ist dieser unter → C:\Program Files (x86)\Steam\steamapps\common\Cyberpunk 2077\r6\audioware (Ordner rein ziehen).
Gründe: Es kann sein, dass der Vortex Downloader die Dateien in ein falsches Verzeichnis verschiebt. Dies war bei mir anfangs so ;-)
Dieser Spoiler (unten) zeigt dir die bisher verfügbaren 60 Splitter in Ton.
Bisher habe ich 3 Splitter, die mir sehr gut gefallen. Ich werde etwas besser beim Umwandeln. Notiz: Verbandkasten
[spoiler]**- Als kleiner Vorgeschmack waren es anfangs 21 Splitter.
- Nun dürft ihr euch schon für 60 Splitter freuen....**
[center][size=4]WELT[/size][/center]
- „Eine Geschichte der Nomaden" Von B. B. Pires ( Auszug )
- Der Tag, an dem der Tower Fiel
- All Foods - Die Zukunft von Fleisch
- „Der Maxtac - Weg" von Mathias Maddox
- Wozu Ich Selbst sein? - Geständnisse eines Braindance-Süchtigen
- Die Arasaka-Akademie: Die Beste der Besten oder das Beste für die Besten?
- Pathfinder: Ein Halbes Jahrhunder Stille
- Gesetz zur Ausrottung der Vogelpopulation
- Proteinfarmen: ein Bericht
- Die Lateinamerikanischen Kriege
- Wasser, Chrom und Blut: der 4te Konzernkrieg
- Yökai: Dämonen Japans gestern und heute
- Im Schatten der Megagebäude
- Der Vereinigungskrieg … Für Idioten!
[center][size=4]LITHERATUR[/size][/center]
- „Handbuch einer Solo-Legende" von Morgan Blackhand
- „Im Schatten eines Apfelbaums" von Virginia Granchester
- 1000 Schläge pro Sekunde
- Das Tagebuch der Watson Whore
- Dr. Chaos & Randon
- Mutant im Mondlicht
[center][size=4]ARTIKEL[/size][/center]
- Sturm auf das Mare Crisium
- Was Wirklich im Arasaka Tower Geschah
- Wer gibt Lizzy Wizzy vor zu sein?
- Der Unabhängigkeitskampf der O´Neill Station
- Sicher ist sicher: Gangs in Night City
- Arasaka - Die Familie, Das Imperium
- Afterlife, Braindance, Cyberdpsce - Das ABC von Night Bitys Nachtleben
- Die Mox
- Notfälle auf Abruf
- Die Rückkehr Des Vampierköngs!
- No Life 3 - Rezesion
- Neue Karriere gefällig? komm zu NetWatch!
- Streit um Cyberware im Football
- Die Mauer
- Der Relic - was es damit wirklich auf sich hat
- Left Jab: Boxer´s Monthly
- Die 5 besten Arbeitgeber in Night City - zweitausendsiebenundsiebzig
- Glam Now! - Die Zeitschrift für Alle, die sich
- So schützt du deine Splitter und Daten vor Taschendieben! 3 Wichtige Tipps !
- Arasaka und Ornithologie: Drei Japanische Wörter
- Neue Braindance - Veröffendlichungen
- Gesundheitsversorgung und Verkehrssicherheit - Trauma Team zeigt, wie es geht.
[center][size=4]Broschüre[/size][/center]
- Konpeki Plaza
- Delamain - Transportdienst
- Alles über Nomaden - Für Dummköpfe
[center][size=4]Technologie[/size][/center]
- Relive.IT - Braindance Quarterly
- „75 Jahre Cyberware" von Tsutomu Takahashi
- Cyberware : Anwendung und Nebenwirkungen
- Schmerzeditor und die Sterblichkeitsrate
[center][size=4]Religion und Philosophy[/size][/center]
- Die Welt als Wille und Vorstellung
[center][size=4]Notizen[/size][/center]
- Verbandkasten
- Braindances - Konzepte
- URKUNDE
- Horoskope: Geschichtenerzähler-Gruppe
[center][size=4]Sonstiges[/size][/center]
- Militech-Datensplitter
[center][size=4]Lyrik[/size][/center]
- Der fall Etemenankis
[center]**[size=4]Personen in Night City **[/size][/center]
- Kalifornien nach Sonnenuntergang: Das Leben des Richard Night
- Die Blume des Schweigens: Eine Biographie über Hanako Arasaka
- Der Gezähmte Drache: Eine Biografie über Yorinobu Arasaka
[/spoiler]
Ohne diesen Starter-Mods geht rein gar nichts, für Neulinge als Bild und Ton:
Spoiler für neugierige oder für die zukünftigen Mitwirkenden Helfer
[spoiler]Was wir als Team benötigen, um dieses Projekt erfolgreich zum Ende zu bekommen. (Shard Audio Framework, Wolvenkit, Visual Studio Code)
Keine Sorge: ich weiß wie es geht, es ist sehr schnell intus. Lerne heute noch neues dazu und alleine bist du nicht.
Da ich bisher dies alleine mache, und 10 Shards bis 15 Shards mich um die 8 Stunden an Zeit kosten, wäre ein Team sehr super. Denn alleine bin ich mehr als 2 Jahre mit dem dran, als Team mit 50 oder 100 Leuten, wäre es natürlich viel schneller fertig.[/spoiler]
Die Arbeit vom WolvenKit, dessen .json und den Arbeitsprozess zu vereinfachen und zu verkürzen. Zeitersparnis, hinter den Kulissen wie ich arbeite (dient als Hilfe, sollte jemand es benötigen, freie Verwendung ohne nachzufragen).
zuerst die README.txt
[spoiler]```
CYBERPUNK 2077 - SHARD-VERTONUNGS-ASSISTENT (DEVELOPER WORKFLOW)
===============================================================================
Dieses Python-Skript automatisiert das Suchen, Formatieren, Archivieren und die Lautstärkenanpassung von Splittern (Shards) für Audio-Vertonungs-Mods.
WARUM GIBT ES DIESES SKRIPT? In den originalen Spieldateien von Cyberpunk 2077 passen die internen LogKeys und die echten Überschriften der Shards in den .json-Dateien oft nicht zusammen oder liegen an völlig unterschiedlichen Orten. Um dieses Chaos zu korrigieren, müsste man jeden Shard aufwendig händisch suchen und formatieren. Dieses Skript erledigt diese monotonen Schritte vollautomatisch in einer Sekunde!
- DAS MODDING-FUNDAMENT (Das benötigst du zuerst)
Damit dieses System und deine Vertonung im Spiel überhaupt funktionieren, musst du das offizielle Cyberpunk-Modding-Grundgerüst installiert haben:
- Core-Mods (Zwingend erforderlich):
- Cyber Engine Tweaks (CET)
- redscript
- RED4ext
- TweakXL
- ArchiveXL
- Codeware
- Audioware
- Shard Audio Framework (für die eigentliche Shard-Vertonung)
- Der Daten-Export via WolvenKit:
- Lade dir WolvenKit manuell herunter.
- Extrahiere die Shard-Dateien aus dem Spiel und wandle sie mit WolvenKit in lesbare .json-Dateien um.
- Speichere diese .json kurz auf deinem Desktop.
- Nutze das Vorbereitungs-Skript (Konverter 1), um diese .json komplett auszulesen. Es erstellt dir automatisch einen Ordner, in dem alle Shards als einzelne, saubere .txt-Dateien bereitliegen. Das ist die Basis für den Ordner "alle_splitter_einzeln"!
- VORAUSSETZUNGEN (Einmalige Python-Vorbereitung)
Damit das Automations-Skript (Konverter 2) auf deinem Computer ausgeführt werden kann, benötigt Windows die Python-Umgebung. Du kannst es direkt über Windows oder über einen Code-Editor wie Visual Studio Code (VS Code) starten.
Python 3 installieren: Lade Python 3 kostenlos aus dem Microsoft Store oder von python.org herunter. (Hinweis: Ein Editor wie VS Code ist nur ein Schreibprogramm und kann den Code OHNE installiertes Python 3 nicht ausführen!)
Die Windows-Systembibliothek "pywin32" installieren: Das Skript benötigt dieses Paket, um deinen Desktop-Verknüpfungen zu folgen. -> Wenn du VS Code nutzt: Öffne das Terminal in VS Code und tippe ein: pip install pywin32 -> Wenn du kein VS Code nutzt: Öffne die normale Windows-Eingabeaufforderung (cmd) und tippe denselben Befehl ein.
- ORDNER-STRUKTUR (Absolut wichtig!)
Erstelle auf deinem Windows-Desktop exakt folgende Ordner und Dateien. Dadurch wird deine Arbeit doppelt abgesichert (Schutz vor menschlichen Fehlern) und das Skript findet alle Pfade vollautomatisch, ohne dass du tief im C:-Verzeichnis nach deiner Mod suchen musst:
[Desktop] │ ├── 📁 Shard Arbeit auto <-- (Dein Haupt-Arbeitsordner) │ │ │ ├── 📄 shard_konverter_neu.py <-- (Das Python-Skript) │ ├── 📄 neu zu tun - gefunden.txt <-- (Deine tägliche Arbeitsliste) │ ├── 📄 Neu Update.txt <-- (Dein großes Gesamt-Archiv) │ │ │ └── 📁 alle_splitter_einzeln <-- (Die aus der .json extrahierten Texte) │ ├── 1234.txt │ └── 5678.txt │ └── 🔗 MeinSplitterMod - Verknüpfung <-- (Eine Windows-ORDNERVERKNÜPFUNG!) │ Erstellt per Rechtsklick -> Verknüpfung erstellen └── 📄 shard_audio_pack_official_german.yml <-- (Deine Audio-Konfigurationsdatei)
- WIE MÜSSEN DIE DATEIEN AUSSEHEN?
A) Deine Tagesliste (neu zu tun - gefunden.txt): Schreibe deine Shards einfach unter die gewünschte Kategorie (z.B. Welt, Litheratur, Artikel). Das Skript erkennt die Kategorie automatisch und sortiert sie später exakt dort ein. Das Format MUSS immer lauten: LogKey#Nummer - Überschrift
B) Deine Audio-Konfiguration (.yml): Das Skript sucht im Hintergrund nach dem passenden "LocKey#XXXX:" Block und stellt den Wert bei "volume:" für jeden verarbeiteten Shard automatisch auf "0.40", damit der Sound im Spiel perfekt abgemischt ist.
- DER TÄGLICHE WORKFLOW (So startest du das Skript)
- Trage deine neuen Shards in die "neu zu tun - gefunden.txt" ein.
- Packe die dazugehörigen ".txt"-Dateien in den Ordner "alle_splitter_einzeln".
- Starte das Skript mit einem Doppelklick (oder über dein Terminal mit): python shard_konverter_neu.py
WAS DAS SKRIPT NUN FÜR DICH TUT: 📝 FORMATIERUNG: Es löscht den alten Header in den Texten und setzt deine neue Überschrift mit sauberen Absätzen ein. 📁 EXPORT: Es erstellt auf dem Desktop einen neuen Ordner mit dem heutigen Datum (z.B. "06.07.2026 Arbeit Shard") und legt die fertigen Texte dort ab. 🔊 LAUTSTÄRKE: Es setzt in der .yml-Datei das Volume vollautomatisch auf 0.40. 🗂️ ARCHIV: Es kopiert den Shard in deine "Neu Update.txt" und sortiert dort die gesamte Liste vollautomatisch numerisch von der kleinsten zur größten ID durch! 🧹 BEREINIGUNG: Es löscht die verarbeitete Originaldatei aus "alle_splitter_einzeln", damit dein Quellordner immer sauber bleibt.
**nun das script:**
[spoiler]
```python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Cyberpunk Shard-Vertonungs-Assistent (ULTRA-SICHERE EDITION - FINAL)
Verarbeitet Shards, regelt .yml, löscht Originale und sortiert das große Archiv
in der 'Neu Update.txt' absolut fehlerfrei und immun gegen Textüberschneidungen.
"""
import os
import re
from datetime import datetime
# ==============================================================================
# PFADERKENNUNG
# ==============================================================================
USER_PROFILE = os.environ["USERPROFILE"]
DESKTOP_PFAD = os.path.join(USER_PROFILE, "Desktop")
INPUT_ORDNER_PFAD = os.path.join(DESKTOP_PFAD, "Shard Arbeit auto")
EINGABE_DATEI = os.path.join(INPUT_ORDNER_PFAD, "neu zu tun - gefunden.txt")
UPDATE_DATEI = os.path.join(INPUT_ORDNER_PFAD, "Neu Update.txt")
SPLITTER_QUELL_ORDNER = os.path.join(INPUT_ORDNER_PFAD, "alle_splitter_einzeln")
NOTFALL_SUCH_ORDNER = os.path.join(INPUT_ORDNER_PFAD, "suche")
VERKNUEPFUNG_PFAD = os.path.join(DESKTOP_PFAD, "MeinSplitterMod - Verknüpfung")
if os.path.exists(VERKNUEPFUNG_PFAD + ".lnk"):
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(VERKNUEPFUNG_PFAD + ".lnk")
ECHTER_MOD_ORDNER = shortcut.Targetpath
else:
ECHTER_MOD_ORDNER = VERKNUEPFUNG_PFAD
YML_DATEI_PFAD = os.path.join(ECHTER_MOD_ORDNER, "shard_audio_pack_official_german.yml")
# ==============================================================================
def extrahiere_shards_aus_liste(datei_pfad):
"""Liest Shards aus und wechselt Kategorien NUR bei exakten Treffern in eigenen Zeilen."""
shards = []
if not os.path.exists(datei_pfad):
print(f"❌ Eingabedatei nicht gefunden: {datei_pfad}")
return shards
pattern = re.compile(r"Key#(\d+)\s*-\s*(.+)", re.IGNORECASE)
aktuelle_kategorie = "Sonstiges"
# Die exakte Liste der erlaubten Kategorien
bekannte_kategorien = [
"welt", "litheratur", "artikel", "broschüre", "technologie",
"religion und philosophy", "notizen", "sonstiges", "lyrik",
"personen in night city", "verschlüsselt"
]
with open(datei_pfad, "r", encoding="utf-8", errors="ignore") as f:
for zeile in f:
zeile_clean = zeile.strip()
if not zeile_clean:
continue
# SICHERHEITS-CHECK 1: Enthält die Zeile einen Shard-Key?
# Wenn ja, darf sie NIEMALS als Kategorie-Überschrift gewertet werden!
if "key#" in zeile_clean.lower():
match = pattern.search(zeile_clean)
if match:
nummer = str(match.group(1)).strip()
ueberschrift = match.group(2).strip()
shards.append({
"logkey_original": f"LogKey#{nummer}",
"lockey_yml": f"LocKey#{nummer}",
"nummer": nummer,
"ueberschrift": ueberschrift,
"kategorie": aktuelle_kategorie # Absolut sicher zugewiesen
})
continue
# SICHERHEITS-CHECK 2: Wir säubern die Zeile von Strichen, um zu sehen, ob es ein echter Block-Wechsel ist
test_kat = zeile_clean.replace("-", "").strip().lower()
# Nur wenn das übrig gebliebene Wort EXAKT mit unserer Liste übereinstimmt, schalten wir um
if test_kat in bekannte_kategorien:
if test_kat == "welt": aktuelle_kategorie = "Welt"
elif test_kat == "litheratur": aktuelle_kategorie = "Litheratur"
elif test_kat == "artikel": aktuelle_kategorie = "Artikel"
elif test_kat == "broschüre": aktuelle_kategorie = "Broschüre"
elif test_kat == "technologie": aktuelle_kategorie = "Technologie"
elif test_kat == "religion und philosophy": aktuelle_kategorie = "Religion und Philosophy"
elif test_kat == "notizen": aktuelle_kategorie = "Notizen"
elif test_kat == "sonstiges": aktuelle_kategorie = "Sonstiges"
elif test_kat == "lyrik": aktuelle_kategorie = "Lyrik"
elif test_kat == "personen in night city": aktuelle_kategorie = "Personen in Night City"
elif test_kat == "verschlüsselt": aktuelle_kategorie = "Verschlüsselt"
return shards
def bearbeite_und_kopiere_txt(shard, ziel_ordner):
reine_nummer = shard['nummer'].strip()
quell_datei = os.path.join(SPLITTER_QUELL_ORDNER, f"{reine_nummer}.txt")
if not os.path.exists(quell_datei):
quell_datei = os.path.join(NOTFALL_SUCH_ORDNER, f"{reine_nummer}.txt")
if not os.path.exists(quell_datei):
print(f"⚠️ Datei '{reine_nummer}.txt' nicht gefunden.")
return False
with open(quell_datei, "r", encoding="utf-8", errors="ignore") as f:
inhalt = f.read()
match = re.search(r"(Logkey\d+|LOGKEY-TEXT:\s*Logkey\d+)", inhalt, re.IGNORECASE)
if match:
start_pos = match.start()
rest_inhalt = inhalt[start_pos:]
if "------------------------------" in rest_inhalt:
parts = rest_inhalt.split("------------------------------", 1)
alter_logkey_teil = parts[0].strip()
reiner_text = parts[1].strip()
else:
zeilen = rest_inhalt.splitlines()
alter_logkey_teil = zeilen[0].strip()
reiner_text = "\n".join(zeilen[1:]).strip()
else:
if "------------------------------" in inhalt:
parts = inhalt.split("------------------------------", 1)
reiner_text = parts[1].strip()
else:
reiner_text = inhalt.strip()
alter_logkey_teil = shard["logkey_original"]
alter_logkey_teil = re.sub(r"LOGKEY-TEXT:\s*", "", alter_logkey_teil, flags=re.IGNORECASE).strip()
neuer_inhalt = (
f"{alter_logkey_teil}\n"
f"------------------------------\n"
f"\n"
f"{shard['ueberschrift']}\n"
f"\n"
f"{reiner_text}"
)
ziel_datei = os.path.join(ziel_ordner, f"{reine_nummer}.txt")
with open(ziel_datei, "w", encoding="utf-8") as f:
f.write(neuer_inhalt)
try:
os.remove(quell_datei)
except Exception as e:
print(f"ℹ️ Konnte Originaldatei {reine_nummer}.txt nicht löschen: {e}")
return True
def passe_yml_lautstaerke_an(shard):
if not os.path.exists(YML_DATEI_PFAD):
return False
with open(YML_DATEI_PFAD, "r", encoding="utf-8", errors="ignore") as f:
zeilen = f.readlines()
geaendert = False
im_richtigen_block = False
such_schluessel = f"{shard['lockey_yml']}:"
for i, zeile in enumerate(zeilen):
if such_schluessel in zeile:
im_richtigen_block = True
continue
if im_richtigen_block:
if "volume:" in zeile:
zeilen[i] = re.sub(r"volume:\s*[\d\.]+", "volume: 0.40", zeile)
geaendert = True
break
if zeile.strip() != "" and not zeile.startswith(" "):
im_richtigen_block = False
if geaendert:
with open(YML_DATEI_PFAD, "w", encoding="utf-8") as f:
f.writelines(zeilen)
return True
return False
def fuege_und_sortiere_update_datei(erfolgreiche_shards):
if not os.path.exists(UPDATE_DATEI):
with open(UPDATE_DATEI, "w", encoding="utf-8") as f:
f.write("")
with open(UPDATE_DATEI, "r", encoding="utf-8", errors="ignore") as f:
inhalt = f.read()
print("\n🔍 Sicherheits-Zuweisung im Hintergrund:")
for shard in erfolgreiche_shards:
kategorie = shard["kategorie"]
neue_zeile = f"{shard['logkey_original']}\t-\t{shard['ueberschrift']}"
# Absolute Gewissheit für dich im Terminal
print(f" ➜ {shard['logkey_original']} wird fest zugeordnet zu: [{kategorie}]")
if shard['logkey_original'] in inhalt:
continue
pattern = re.compile(rf"(^|\n)({re.escape(kategorie)}[^\n]*)", re.IGNORECASE)
match = pattern.search(inhalt)
if match:
pos = match.end()
inhalt = inhalt[:pos] + f"\n{neue_zeile}" + inhalt[pos:]
else:
inhalt += f"\n\n{kategorie}\n{neue_zeile}"
bekannte_kategorien_order = [
"Welt", "Litheratur", "Artikel", "Broschüre", "Technologie",
"Religion und Philosophy", "Notizen", "Sonstiges", "Lyrik",
"Personen in Night City", "Verschlüsselt"
]
archiv_daten = {kat: [] for kat in bekannte_kategorien_order}
aktueller_block = None
for zeile in inhalt.splitlines():
zeile_strip = zeile.strip()
if not zeile_strip:
continue
is_kategorie = False
for kat in bekannte_kategorien_order:
if zeile_strip.lower() == kat.lower():
aktueller_block = kat
is_kategorie = True
break
if is_kategorie:
continue
if aktueller_block and "Key#" in zeile_strip:
if zeile_strip not in archiv_daten[aktueller_block]:
archiv_daten[aktueller_block].append(zeile_strip)
def hole_sortier_nummer(shard_zeile):
num_match = re.search(r"Key#(\d+)", shard_zeile, re.IGNORECASE)
return int(num_match.group(1)) if num_match else 0
neuer_text_blocks = []
for kat in bekannte_kategorien_order:
sortierte_shards = sorted(archiv_daten[kat], key=hole_sortier_nummer)
block_text = f"{kat}"
for s in sortierte_shards:
block_text += f"\n\n{s}"
neuer_text_blocks.append(block_text)
finaler_inhalt = "\n\n\n".join(neuer_text_blocks) + "\n"
with open(UPDATE_DATEI, "w", encoding="utf-8") as f:
f.write(finaler_inhalt)
return True
def main():
(Das Skript wird im Spoiler fortgesetzt und endet mit der Hauptfunktion main())
[/spoiler]
Ich entschuldige mich, dass ich kein Profi-YouTuber oder Sprecher bin. Werde nach einer Zeit nochmals an diese Sache gehen, vielleicht wird es dann besser. Viel Freude allen Chooms.
Kontakt: Discord: https://discord.gg/YfpAK6Yz5
[center][i][b][u]English Translation click spoiler[/u][/b]
Hello everyone.
This project follows in the footsteps of those before me:
- Shard Audio Pack - Official - English by nremind – https://www.nexusmods.com/cyberpunk2077/mods/24006?tab=files
- Shard Audio Pack - Vanilla Feel Version by AwesomeJanis – https://www.nexusmods.com/cyberpunk2077/mods/29301
- Shard Audio Pack - UnOfficial - Spanish by hunterofdoom – https://www.nexusmods.com/cyberpunk2077/mods/28298
- Shard Audio Pack - Official - German (In Progress) – That is me, the person you are currently reading about! :-)
Our goal is to make reading shards more seamless and immersive for your gameplay. I have played this game for nearly 500+ hours now, and I simply never read the shards. Since a German audio version did not exist yet, I decided to start creating it myself.
Required Mods You will need the core mods listed below for any of these audio packs to function properly:
- [i]Cyber Engine Tweaks by yamashi – https://www.nexusmods.com/cyberpunk2077/mods/107
- [i]redscript by jac3km4 – https://www.nexusmods.com/cyberpunk2077/mods/1511
- [i]RED4ext by WopsS – https://www.nexusmods.com/cyberpunk2077/mods/2380
- [i]ArchiveXL by psiberx – https://www.nexusmods.com/cyberpunk2077/mods/4198
- [i]Codeware by psiberx – https://www.nexusmods.com/cyberpunk2077/mods/7780
- [i]TweakXL by psiberx – https://www.nexusmods.com/cyberpunk2077/mods/4197
- [i]Audioware by Roms1383 (Required to load the .mp3 files) – https://www.nexusmods.com/cyberpunk2077/mods/12001
- [i]Shard Audio Framework by nremind (Enables playback and scans for opened shards) – https://www.nexusmods.com/cyberpunk2077/mods/23999
Community Contributions If anyone from the community wants to help speed up development, we would all appreciate it! It is incredibly easy to contribute. Just reach out to the project creator of your native language to get involved as a contributor.
So far, I have voiced 60 shards.
Completed Shards List
[spoiler]
-----------------------------------------------------------------------------------
WORLD
-----------------------------------------------------------------------------------
"A History of the Nomads" by B. B. Pires (Excerpt)
The Day the Tower Fell
All Foods - The Future of Meat
"The Maxtac Way" by Mathias Maddox
Why Be Myself? - Confessions of a Braindance Addict
Arasaka Academy: The Best of the Best, or the Best for the Best?
Pathfinder: A Half-Century of Silence
Avian Population Eradication Act
Protein Farms: A Report
The Latin American Wars
Water, Chrome, and Blood: The 4th Corporate War
Yōkai: Demons of Japan, Past and Present
In the Shadow of the Megabuildings
The Unification War... For Idiots!
-----------------------------------------------------------------------------------
LITERATURE
-----------------------------------------------------------------------------------
"Solo Legend's Handbook" by Morgan Blackhand
"In the Shadow of an Apple Tree" by Virginia Granchester
1000 Beats Per Second
The Diary of the Watson Whore
Dr. Chaos & Randon
Mutant in the Moonlight
-----------------------------------------------------------------------------------
ARTICLES
-----------------------------------------------------------------------------------
Assault on Mare Crisium
What Really Happened at Arasaka Tower
Who Is Lizzy Wizzy Pretending to Be?
O'Neill Station's Struggle for Independence
Safety First: Gangs in Night City
Arasaka - The Family, The Empire
Afterlife, Braindance, Cyberspace - The ABCs of Night City's Nightlife
The Mox
On-Call Emergencies
Return of the Vampire King!
No Life 3 - Review
Looking for a New Career? Join NetWatch!
The Football Cyberware Controversy
The Wall
The Relic - What It's Really All About
Left Jab: Boxer's Monthly
The 5 Best Employers in Night City - 2077
Glam Now! - The Magazine for Everyone Who...
Protect Your Shards and Data From Pickpockets! 3 Essential Tips!
Arasaka and Ornithology: Three Japanese Words
New Braindance Releases
Healthcare and Traffic Safety - Trauma Team Shows How It's Done
-----------------------------------------------------------------------------------
BROCHURES
-----------------------------------------------------------------------------------
Konpeki Plaza
Delamain Transport Services
Everything About Nomads - For Dummies
-----------------------------------------------------------------------------------
TECHNOLOGY
-----------------------------------------------------------------------------------
Relive.IT
Braindance Quarterly
"75 Years of Cyberware" by Tsutomu Takahashi
Cyberware: Usage and Side Effects
Pain Editors and Mortality Rates
-----------------------------------------------------------------------------------
RELIGION AND PHILOSOPHY
-----------------------------------------------------------------------------------
The World as Will and Representation
-----------------------------------------------------------------------------------
NOTES
-----------------------------------------------------------------------------------
First Aid Kit
Braindances
Concepts
CERTIFICATE
Horoscopes: Storyteller Group
-----------------------------------------------------------------------------------
OTHER
-----------------------------------------------------------------------------------
Militech Data Shard
-----------------------------------------------------------------------------------
POETRY
-----------------------------------------------------------------------------------
The Fall of Etemenanki
-----------------------------------------------------------------------------------
PEOPLE IN NIGHT CITY
-----------------------------------------------------------------------------------
California After Sunset: The Life of Richard Night
The Flower of Silence: A Biography of Hanako Arasaka
The Tamed Dragon: A Biography of Yorinobu Arasaka
[/spoiler]
This project aims to simplify and shorten the workflow associated with WolvenKit and its .json files. It saves time and offers a behind-the-scenes look at my working process (intended as a resource for anyone who might need it; feel free to use it without asking).
Start with the README.txt.
[spoiler]
===============================================================================
CYBERPUNK 2077 - SHARD VOICE-OVER ASSISTANT (DEVELOPER WORKFLOW)
===============================================================================
This Python script automates the process of searching, formatting, archiving,
and adjusting the audio volume of shards for voice-over and localization mods.
WHY DO YOU NEED THIS SCRIPT?
In the original Cyberpunk 2077 game files (.json), internal LogKeys and the
actual shard headers are often mismatched or scattered across completely
different directories. Manually matching, rewriting, and sorting these shards
is extremely tedious. This script handles all of these repetitive steps
automatically in a single second!
-------------------------------------------------------------------------------
0. THE MODDING FOUNDATION (What you need first)
-------------------------------------------------------------------------------
Before using this tool or testing your voice-over in-game, you must have the
official Cyberpunk 2077 framework mods installed:
1. Core Mods (Strictly Required):
- Cyber Engine Tweaks (CET)
- redscript
- RED4ext
- TweakXL
- ArchiveXL
- Codeware
- Audioware
- Shard Audio Framework (for the actual shard voice-over functionality)
2. Data Export via WolvenKit:
- Download WolvenKit manually.
- Extract the shard files from the game and convert them into readable
.json files using WolvenKit.
- Save the converted .json temporarily on your desktop.
- Use your extraction script (Converter 1) to read the .json. This will
automatically create a folder containing all shards as single, clean
.txt files. This folder will be your "alle_splitter_einzeln" directory!
-------------------------------------------------------------------------------
1. PREREQUISITES (One-time Python Setup)
-------------------------------------------------------------------------------
To run the automation script (Converter 2) on your machine, Windows needs the
Python environment. You can execute the script either directly through Windows
or using a code editor like Visual Studio Code (VS Code).
1. Install Python 3 (Strictly Required):
Download Python 3 for free from the Microsoft Store or python.org.
(Note: Editors like VS Code are just text programs and CANNOT run the code
without Python 3 being installed on your operating system!)
2. Install the Windows System Library "pywin32":
The script needs this library to automatically resolve desktop shortcuts.
-> If using VS Code: Open the VS Code terminal and type:
pip install pywin32
-> If not using VS Code: Open your standard Windows Command Prompt (cmd)
and type the exact same command.
-------------------------------------------------------------------------------
2. DIRECTORY STRUCTURE (Crucial for Automation!)
----------------------------------------------------------------
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。