mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'master' of gitlab.com:veloren/veloren into sharp/small-fixes
This commit is contained in:
commit
548680276a
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -5,4 +5,3 @@
|
|||||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||||
*.ico filter=lfs diff=lfs merge=lfs -text
|
*.ico filter=lfs diff=lfs merge=lfs -text
|
||||||
assets/world/map/*.bin filter=lfs diff=lfs merge=lfs -text
|
assets/world/map/*.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
assets/voxygen/font/FangZhengHeiTiJianTi.ttf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
11
CHANGELOG.md
11
CHANGELOG.md
@ -9,6 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
## [0.7.0] - 2020-08-15
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
- Display item name over loot/dropped items
|
- Display item name over loot/dropped items
|
||||||
- Added Lottery system for loot
|
- Added Lottery system for loot
|
||||||
- Added context-sensitive crosshair
|
- Added context-sensitive crosshair
|
||||||
@ -356,7 +364,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
_0.1.0 was part of the legacy engine_
|
_0.1.0 was part of the legacy engine_
|
||||||
|
|
||||||
[unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.6.0&to=master
|
[unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.7.0&to=master
|
||||||
|
[0.7.0]: https://gitlab.com/veloren/veloren/compare?from=v0.6.0&to=v0.7.0
|
||||||
[0.6.0]: https://gitlab.com/veloren/veloren/compare?from=v0.5.0&to=v0.6.0
|
[0.6.0]: https://gitlab.com/veloren/veloren/compare?from=v0.5.0&to=v0.6.0
|
||||||
[0.5.0]: https://gitlab.com/veloren/veloren/compare?from=v0.4.0&to=v0.5.0
|
[0.5.0]: https://gitlab.com/veloren/veloren/compare?from=v0.4.0&to=v0.5.0
|
||||||
[0.4.0]: https://gitlab.com/veloren/veloren/compare?from=v0.3.0&to=v0.4.0
|
[0.4.0]: https://gitlab.com/veloren/veloren/compare?from=v0.3.0&to=v0.4.0
|
||||||
|
16
Cargo.lock
generated
16
Cargo.lock
generated
@ -4672,7 +4672,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-chat-cli"
|
name = "veloren-chat-cli"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
@ -4682,7 +4682,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-client"
|
name = "veloren-client"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"authc",
|
"authc",
|
||||||
"byteorder 1.3.4",
|
"byteorder 1.3.4",
|
||||||
@ -4704,7 +4704,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-common"
|
name = "veloren-common"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arraygen",
|
"arraygen",
|
||||||
"authc",
|
"authc",
|
||||||
@ -4735,7 +4735,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-server"
|
name = "veloren-server"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"authc",
|
"authc",
|
||||||
"chrono",
|
"chrono",
|
||||||
@ -4769,7 +4769,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-server-cli"
|
name = "veloren-server-cli"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
@ -4779,7 +4779,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-voxygen"
|
name = "veloren-voxygen"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"backtrace",
|
"backtrace",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -4835,7 +4835,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-voxygen-anim"
|
name = "veloren-voxygen-anim"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find_folder",
|
"find_folder",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
@ -4848,7 +4848,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "veloren-world"
|
name = "veloren-world"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arr_macro",
|
"arr_macro",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
BIN
assets/voxygen/font/FangZhengHeiTiJianTi.ttf
(Stored with Git LFS)
BIN
assets/voxygen/font/FangZhengHeiTiJianTi.ttf
(Stored with Git LFS)
Binary file not shown.
@ -65,11 +65,14 @@ VoxygenLocalization(
|
|||||||
"common.create": "Oluştur",
|
"common.create": "Oluştur",
|
||||||
"common.okay": "Tamam",
|
"common.okay": "Tamam",
|
||||||
"common.accept": "Kabul Et",
|
"common.accept": "Kabul Et",
|
||||||
|
"common.decline": "Reddet",
|
||||||
"common.disclaimer": "Uyarı",
|
"common.disclaimer": "Uyarı",
|
||||||
"common.cancel": "İptal Et",
|
"common.cancel": "İptal Et",
|
||||||
"common.none": "Yok",
|
"common.none": "Yok",
|
||||||
"common.error": "Hata",
|
"common.error": "Hata",
|
||||||
"common.fatal_error": "Ölümcül hata",
|
"common.fatal_error": "Ölümcül hata",
|
||||||
|
"common.you": "Sen",
|
||||||
|
"common.automatic": "Otomatik",
|
||||||
|
|
||||||
// Message when connection to the server is lost
|
// Message when connection to the server is lost
|
||||||
"common.connection_lost": r#"Bağlantı koptu!
|
"common.connection_lost": r#"Bağlantı koptu!
|
||||||
@ -302,23 +305,30 @@ edince kapat"#,
|
|||||||
"hud.settings.fluid_rendering_mode.cheap": "Basit",
|
"hud.settings.fluid_rendering_mode.cheap": "Basit",
|
||||||
"hud.settings.fluid_rendering_mode.shiny": "Güzel",
|
"hud.settings.fluid_rendering_mode.shiny": "Güzel",
|
||||||
"hud.settings.cloud_rendering_mode.regular": "Normal",
|
"hud.settings.cloud_rendering_mode.regular": "Normal",
|
||||||
|
"hud.settings.particles": "Partiküller",
|
||||||
|
"hud.settings.resolution": "Çözünürlük",
|
||||||
|
"hud.settings.bit_depth": "Bit Derinliği",
|
||||||
|
"hud.settings.refresh_rate": "Yenileme Hızı",
|
||||||
"hud.settings.fullscreen": "Tam ekran",
|
"hud.settings.fullscreen": "Tam ekran",
|
||||||
"hud.settings.save_window_size": "Pencere boyutunu kaydet",
|
"hud.settings.save_window_size": "Pencere boyutunu kaydet",
|
||||||
|
|
||||||
"hud.settings.awaitingkey": "Bir tuşa bas...",
|
|
||||||
"hud.settings.unbound": "Atanmamış",
|
|
||||||
"hud.settings.reset_keybinds": "Varsayılana döndür",
|
|
||||||
|
|
||||||
"hud.settings.music_volume": "Müzik Sesi",
|
"hud.settings.music_volume": "Müzik Sesi",
|
||||||
"hud.settings.sound_effect_volume": "Efekt Sesi",
|
"hud.settings.sound_effect_volume": "Efekt Sesi",
|
||||||
"hud.settings.audio_device": "Ses Aygıtı",
|
"hud.settings.audio_device": "Ses Aygıtı",
|
||||||
|
|
||||||
"hud.social": "Sosyal",
|
"hud.settings.awaitingkey": "Bir tuşa bas...",
|
||||||
"hud.social.online": "Çevrimiçi",
|
"hud.settings.unbound": "Atanmamış",
|
||||||
|
"hud.settings.reset_keybinds": "Varsayılana döndür",
|
||||||
|
|
||||||
|
"hud.social": "Diğer Oyuncular",
|
||||||
|
"hud.social.online": "Çevrimiçi:",
|
||||||
"hud.social.friends": "Arkadaşlar",
|
"hud.social.friends": "Arkadaşlar",
|
||||||
"hud.social.not_yet_available": "Şu anda kullanılabilir değil",
|
"hud.social.not_yet_available": "Şu anda kullanılabilir değil",
|
||||||
"hud.social.faction": "Klan",
|
"hud.social.faction": "Klan",
|
||||||
"hud.social.play_online_fmt": "{nb_player} oyuncu çevrimiçi",
|
"hud.social.play_online_fmt": "{nb_player} oyuncu çevrimiçi",
|
||||||
|
"hud.social.name": "İsim",
|
||||||
|
"hud.social.level": "Seviye",
|
||||||
|
"hud.social.zone": "Bölge",
|
||||||
|
|
||||||
"hud.crafting": "Üretim",
|
"hud.crafting": "Üretim",
|
||||||
"hud.crafting.recipes": "Tarifler",
|
"hud.crafting.recipes": "Tarifler",
|
||||||
@ -326,6 +336,19 @@ edince kapat"#,
|
|||||||
"hud.crafting.craft": "Üret",
|
"hud.crafting.craft": "Üret",
|
||||||
"hud.crafting.tool_cata": "Gerektiriyor:",
|
"hud.crafting.tool_cata": "Gerektiriyor:",
|
||||||
|
|
||||||
|
"hud.group": "Grup",
|
||||||
|
"hud.group.invite_to_join": "{name} seni grubuna davet etti!",
|
||||||
|
"hud.group.invite": "Davet Et",
|
||||||
|
"hud.group.kick": "Gruptan At",
|
||||||
|
"hud.group.assign_leader": "Lider Seç",
|
||||||
|
"hud.group.leave": "Gruptan Ayrıl",
|
||||||
|
"hud.group.dead" : "Ölü",
|
||||||
|
"hud.group.out_of_range": "Erişim dışı",
|
||||||
|
"hud.group.add_friend": "Arkadaşlara Ekle",
|
||||||
|
"hud.group.link_group": "Grupları Bağla",
|
||||||
|
"hud.group.in_menu": "Menüde",
|
||||||
|
"hud.group.members": "Grup Üyeleri",
|
||||||
|
|
||||||
"hud.spell": "Büyü",
|
"hud.spell": "Büyü",
|
||||||
|
|
||||||
"hud.free_look_indicator": "Serbest bakış açık",
|
"hud.free_look_indicator": "Serbest bakış açık",
|
||||||
@ -368,7 +391,7 @@ edince kapat"#,
|
|||||||
"gameinput.wallleap": "Duvar Sıçrayışı",
|
"gameinput.wallleap": "Duvar Sıçrayışı",
|
||||||
"gameinput.togglelantern": "Feneri yak/söndür",
|
"gameinput.togglelantern": "Feneri yak/söndür",
|
||||||
"gameinput.mount": "Bin",
|
"gameinput.mount": "Bin",
|
||||||
"gameinput.enter": "Sohbet",
|
"gameinput.chat": "Sohbet",
|
||||||
"gameinput.command": "Komut",
|
"gameinput.command": "Komut",
|
||||||
"gameinput.escape": "Oyunu Duraklat",
|
"gameinput.escape": "Oyunu Duraklat",
|
||||||
"gameinput.map": "Harita",
|
"gameinput.map": "Harita",
|
||||||
@ -384,6 +407,13 @@ edince kapat"#,
|
|||||||
"gameinput.freelook": "Serbest Bakış",
|
"gameinput.freelook": "Serbest Bakış",
|
||||||
"gameinput.autowalk": "Otomatik Yürüyüş",
|
"gameinput.autowalk": "Otomatik Yürüyüş",
|
||||||
"gameinput.dance": "Dans et",
|
"gameinput.dance": "Dans et",
|
||||||
|
"gameinput.select": "Varlık Seç",
|
||||||
|
"gameinput.acceptgroupinvite": "Grup Davetini Kabul Et",
|
||||||
|
"gameinput.declinegroupinvite": "Grup Davetini Reddet",
|
||||||
|
"gameinput.crafting": "Üretim",
|
||||||
|
"gameinput.sneak": "Eğil",
|
||||||
|
"gameinput.swimdown": "Aşağı Dal",
|
||||||
|
"gameinput.swimup": "Yüzeye çık",
|
||||||
|
|
||||||
/// End GameInput section
|
/// End GameInput section
|
||||||
|
|
||||||
@ -456,6 +486,8 @@ Koruma
|
|||||||
"'L-Shift'e basarak Planörünü aç ve gökyüzünü fethet.",
|
"'L-Shift'e basarak Planörünü aç ve gökyüzünü fethet.",
|
||||||
"Veloren hala Pre-Alpha'da. Onu geliştirmek için her gün elimizden geleni yapıyoruz!",
|
"Veloren hala Pre-Alpha'da. Onu geliştirmek için her gün elimizden geleni yapıyoruz!",
|
||||||
"Geliştirme Takımına katılmak istiyorsan veya sadece sohbet etmek istiyorsan Discord sunucumuza katıl.",
|
"Geliştirme Takımına katılmak istiyorsan veya sadece sohbet etmek istiyorsan Discord sunucumuza katıl.",
|
||||||
|
"Can barında canı sayı olarak görmek istiyorsan, bunu ayarlardan aktifleştirebilirsin.",
|
||||||
|
"Niteliklerini görmek için envanterindeki 'Nitelikler' düğmesine tıklayabilirsin.",
|
||||||
],
|
],
|
||||||
"npc.speech.villager_under_attack": [
|
"npc.speech.villager_under_attack": [
|
||||||
"Saldırı altındayım, yardım edin!",
|
"Saldırı altındayım, yardım edin!",
|
||||||
|
@ -1,518 +0,0 @@
|
|||||||
/// Localization for "global" Simplified Chinese
|
|
||||||
VoxygenLocalization(
|
|
||||||
metadata: (
|
|
||||||
language_name: "Simplified Chinese",
|
|
||||||
language_identifier: "zh_CN",
|
|
||||||
),
|
|
||||||
convert_utf8_to_ascii: false,
|
|
||||||
fonts: {
|
|
||||||
"opensans": Font (
|
|
||||||
asset_key: "voxygen.font.FangZhengHeiTiJianTi",
|
|
||||||
scale_ratio: 0.75,
|
|
||||||
),
|
|
||||||
"metamorph": Font (
|
|
||||||
asset_key: "voxygen.font.FangZhengHeiTiJianTi",
|
|
||||||
scale_ratio: 0.75,
|
|
||||||
),
|
|
||||||
"alkhemi": Font (
|
|
||||||
asset_key: "voxygen.font.FangZhengHeiTiJianTi",
|
|
||||||
scale_ratio: 0.75,
|
|
||||||
),
|
|
||||||
"wizard": Font (
|
|
||||||
asset_key: "voxygen.font.FangZhengHeiTiJianTi",
|
|
||||||
scale_ratio: 0.75,
|
|
||||||
),
|
|
||||||
"cyri": Font (
|
|
||||||
asset_key: "voxygen.font.FangZhengHeiTiJianTi",
|
|
||||||
scale_ratio: 0.75,
|
|
||||||
),
|
|
||||||
},
|
|
||||||
string_map: {
|
|
||||||
/// Start Common section
|
|
||||||
// Texts used in multiple locations with the same formatting
|
|
||||||
"common.username": "用户名",
|
|
||||||
"common.singleplayer": "单人游戏",
|
|
||||||
"common.multiplayer": "多人游戏",
|
|
||||||
"common.servers": "服务器",
|
|
||||||
"common.quit": "退出",
|
|
||||||
"common.settings": "设置",
|
|
||||||
"common.languages": "语言",
|
|
||||||
"common.interface": "界面",
|
|
||||||
"common.gameplay": "游戏",
|
|
||||||
"common.controls": "控制",
|
|
||||||
"common.video": "图像",
|
|
||||||
"common.sound": "声音",
|
|
||||||
"common.resume": "继续",
|
|
||||||
"common.characters": "人物",
|
|
||||||
"common.close": "关闭",
|
|
||||||
"common.yes": "是",
|
|
||||||
"common.no": "否",
|
|
||||||
"common.back": "返回",
|
|
||||||
"common.create": "创建",
|
|
||||||
"common.okay": "好",
|
|
||||||
"common.accept": "同意",
|
|
||||||
"common.disclaimer": "免责声明",
|
|
||||||
"common.cancel": "返回",
|
|
||||||
"common.none": "无",
|
|
||||||
"common.error": "错误",
|
|
||||||
"common.fatal_error": "致命错误",
|
|
||||||
|
|
||||||
// Message when connection to the server is lost
|
|
||||||
"common.connection_lost": r#"连接丢失!
|
|
||||||
服务器有没有重启?
|
|
||||||
客户端是否更新?"#,
|
|
||||||
|
|
||||||
|
|
||||||
"common.species.orc": "兽人",
|
|
||||||
"common.species.human": "人类",
|
|
||||||
"common.species.dwarf": "矮人",
|
|
||||||
"common.species.elf": "精灵",
|
|
||||||
"common.species.undead": "不死族",
|
|
||||||
"common.species.danari": "丹那利",
|
|
||||||
|
|
||||||
"common.weapons.axe": "斧",
|
|
||||||
"common.weapons.sword": "剑",
|
|
||||||
"common.weapons.staff": "法杖",
|
|
||||||
"common.weapons.bow": "弓",
|
|
||||||
"common.weapons.hammer": "锤",
|
|
||||||
/// End Common section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start Main screen section
|
|
||||||
"main.connecting": "连接中",
|
|
||||||
"main.creating_world": "生成世界中",
|
|
||||||
"main.tip": "小贴士:",
|
|
||||||
|
|
||||||
// Welcome notice that appears the first time Veloren is started
|
|
||||||
"main.notice": r#"欢迎加入 Veloren Alpha版 !
|
|
||||||
|
|
||||||
在您开始享受游戏之前,请注意一些事情:
|
|
||||||
|
|
||||||
- 这是非常前期的 alpha 版本,您会遇到不少错误、未完成的游戏模式、未完善的游戏机制以及缺失的功能。
|
|
||||||
|
|
||||||
- 如果有建设性的意见反馈或是错误汇报,可以通过 Reddit、GitLab 或者我们的 Discord 服务器联系我们。
|
|
||||||
|
|
||||||
- Veloren 的授权条款是GPL3. 意思是你可以免费游玩,修改并重新发布游戏(衍生内容也必须是GPL3)
|
|
||||||
|
|
||||||
- Veloren 是一个非营利的社区项目, 参与该项目的都是志愿者.
|
|
||||||
如果你想在项目中看到你的身影,欢迎加入开发或艺术团队!
|
|
||||||
|
|
||||||
感谢您抽出宝贵的时间阅读此通知,希望您喜欢这款游戏!
|
|
||||||
|
|
||||||
~ Veloren 的开发团队"#,
|
|
||||||
|
|
||||||
// Login process description
|
|
||||||
"main.login_process": r#"有关登录的信息:
|
|
||||||
|
|
||||||
请注意,您现在需要一个账户,在启用身份验证的服务器上游玩。
|
|
||||||
|
|
||||||
你可以通过下面的网站创建用户.
|
|
||||||
|
|
||||||
https://account.veloren.net."#,
|
|
||||||
"main.login.server_not_found": "找不到服务器",
|
|
||||||
"main.login.authentication_error": "服务器验证错误",
|
|
||||||
"main.login.server_full": "服务器已满",
|
|
||||||
"main.login.untrusted_auth_server": "认证服务器不可信",
|
|
||||||
"main.login.outdated_client_or_server": "服务器与客户端可能版本不兼容,请检查更新.",
|
|
||||||
"main.login.timeout": "超时: 服务器无法及时响应.",
|
|
||||||
"main.login.server_shut_down": "服务器已关闭",
|
|
||||||
"main.login.already_logged_in": "您已登入服务器.",
|
|
||||||
"main.login.network_error": "网络错误",
|
|
||||||
"main.login.failed_sending_request": "认证服务器请求失败",
|
|
||||||
"main.login.invalid_character": "选择的人物无效",
|
|
||||||
"main.login.client_crashed": "客户端崩溃",
|
|
||||||
"main.login.not_on_whitelist": "您需要在管理员的白名单里才可以加入",
|
|
||||||
|
|
||||||
/// End Main screen section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start HUD Section
|
|
||||||
"hud.do_not_show_on_startup": "开始时不显示这个",
|
|
||||||
"hud.show_tips": "显示提示",
|
|
||||||
"hud.quests": "任务",
|
|
||||||
"hud.you_died": "你死了",
|
|
||||||
"hud.waypoint_saved": "标记已保存",
|
|
||||||
|
|
||||||
"hud.press_key_to_show_keybindings_fmt": "按下 {key} 显示快捷键设置",
|
|
||||||
"hud.press_key_to_show_debug_info_fmt": "按下 {key} 显示调试信息",
|
|
||||||
"hud.press_key_to_toggle_keybindings_fmt": "按下 {key} 切换显示快捷键设置",
|
|
||||||
"hud.press_key_to_toggle_debug_info_fmt": "按下 {key} 切换显示调试信息",
|
|
||||||
|
|
||||||
// Chat outputs
|
|
||||||
"hud.chat.online_msg": "[{name}] 正在线上.",
|
|
||||||
"hud.chat.offline_msg": "{name} 下线了.",
|
|
||||||
"hud.chat.loot_msg": "你捡起了 [{item}]",
|
|
||||||
"hud.chat.loot_fail": "你的背包已满!",
|
|
||||||
"hud.chat.goodbye": "再见!",
|
|
||||||
"hud.chat.connection_lost": "连接已断开. {time} 秒内将被踢出.",
|
|
||||||
|
|
||||||
// SCT outputs
|
|
||||||
"hud.sct.experience": "{amount} 经验",
|
|
||||||
"hud.sct.block": "阻拦",
|
|
||||||
|
|
||||||
// Respawn message
|
|
||||||
"hud.press_key_to_respawn": r#"按下 {key} 您可以在上一个复活点重生."#,
|
|
||||||
|
|
||||||
// Welcome message
|
|
||||||
"hud.welcome": r#"欢迎来到 Veloren Alpha版!
|
|
||||||
|
|
||||||
|
|
||||||
开始前的一些提示:
|
|
||||||
|
|
||||||
|
|
||||||
按 F1 查看可用的键位信息.
|
|
||||||
|
|
||||||
输入 /help 在聊天栏以查看聊天命令
|
|
||||||
|
|
||||||
|
|
||||||
世界上会随机生成箱子以及其他物品!
|
|
||||||
|
|
||||||
右键单击以收集它们.
|
|
||||||
|
|
||||||
按 B 打开库存可以看到您在这些箱子中获取到的物品.
|
|
||||||
|
|
||||||
双击背包中的物品以使用或装备它们.
|
|
||||||
|
|
||||||
单击并坨拽到背包外可以将物品移除
|
|
||||||
|
|
||||||
|
|
||||||
Veloren 的夜晚会变得非常的黑.
|
|
||||||
|
|
||||||
按下 G 可以点亮你的灯笼.
|
|
||||||
|
|
||||||
|
|
||||||
按下 Tab 可以释放光标用于关闭窗口!
|
|
||||||
|
|
||||||
|
|
||||||
祝你在Veloren世界玩的愉快."#,
|
|
||||||
|
|
||||||
"hud.temp_quest_headline": r#"请帮助我们,旅行者!"#,
|
|
||||||
"hud.temp_quest_text": r#"在我们宁静的城镇周围
|
|
||||||
遍布地下城,里面充满了邪恶的信徒!
|
|
||||||
|
|
||||||
|
|
||||||
组织人手, 带上食物
|
|
||||||
击败他们邪恶的领袖和同伙.
|
|
||||||
|
|
||||||
|
|
||||||
或许你可以获得注入了
|
|
||||||
他们魔力的物品?"#,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Inventory
|
|
||||||
"hud.bag.inventory": "{playername} 的物品栏",
|
|
||||||
"hud.bag.stats_title": "{playername} 的状态",
|
|
||||||
"hud.bag.exp": "经验",
|
|
||||||
"hud.bag.armor": "护甲",
|
|
||||||
"hud.bag.stats": "状态",
|
|
||||||
"hud.bag.head": "头部",
|
|
||||||
"hud.bag.neck": "颈部",
|
|
||||||
"hud.bag.tabard": "披风",
|
|
||||||
"hud.bag.shoulders": "肩膀",
|
|
||||||
"hud.bag.chest": "胸部",
|
|
||||||
"hud.bag.hands": "手部",
|
|
||||||
"hud.bag.lantern": "灯笼",
|
|
||||||
"hud.bag.belt": "腰带",
|
|
||||||
"hud.bag.ring": "戒指",
|
|
||||||
"hud.bag.back": "背部",
|
|
||||||
"hud.bag.legs": "腿部",
|
|
||||||
"hud.bag.feet": "脚部",
|
|
||||||
"hud.bag.mainhand": "主手",
|
|
||||||
"hud.bag.offhand": "副手",
|
|
||||||
|
|
||||||
|
|
||||||
// Map and Questlog
|
|
||||||
"hud.map.map_title": "地图",
|
|
||||||
"hud.map.qlog_title": "任务",
|
|
||||||
|
|
||||||
// Settings
|
|
||||||
"hud.settings.general": "一般",
|
|
||||||
"hud.settings.none": "无",
|
|
||||||
"hud.settings.press_behavior.toggle": "切换",
|
|
||||||
"hud.settings.press_behavior.hold": "按住",
|
|
||||||
"hud.settings.help_window": "帮助",
|
|
||||||
"hud.settings.debug_info": "调试信息",
|
|
||||||
"hud.settings.tips_on_startup": "开始时的提示信息",
|
|
||||||
"hud.settings.ui_scale": "ui缩放",
|
|
||||||
"hud.settings.relative_scaling": "相对缩放",
|
|
||||||
"hud.settings.custom_scaling": "自定义缩放",
|
|
||||||
"hud.settings.crosshair": "准星",
|
|
||||||
"hud.settings.transparency": "透明度",
|
|
||||||
"hud.settings.hotbar": "快捷键",
|
|
||||||
"hud.settings.toggle_shortcuts": "显示快捷键",
|
|
||||||
"hud.settings.toggle_bar_experience": "显示经验条",
|
|
||||||
"hud.settings.scrolling_combat_text": "战斗信息",
|
|
||||||
"hud.settings.single_damage_number": "单一伤害",
|
|
||||||
"hud.settings.cumulated_damage": "累计伤害",
|
|
||||||
"hud.settings.incoming_damage": "所受伤害",
|
|
||||||
"hud.settings.cumulated_incoming_damage": "累计所受伤害",
|
|
||||||
"hud.settings.speech_bubble": "对话框",
|
|
||||||
"hud.settings.speech_bubble_dark_mode": "对话框启用暗色模式",
|
|
||||||
"hud.settings.speech_bubble_icon": "对话框显示图标",
|
|
||||||
"hud.settings.energybar_numbers": "能量条",
|
|
||||||
"hud.settings.values": "数字",
|
|
||||||
"hud.settings.percentages": "百分比",
|
|
||||||
"hud.settings.chat": "聊天",
|
|
||||||
"hud.settings.background_transparency": "背景透明度",
|
|
||||||
"hud.settings.chat_character_name": "聊天显示人物名称",
|
|
||||||
"hud.settings.loading_tips": "加载过程中显示贴士",
|
|
||||||
|
|
||||||
"hud.settings.pan_sensitivity": "鼠标灵敏度",
|
|
||||||
"hud.settings.zoom_sensitivity": "缩放灵敏度",
|
|
||||||
"hud.settings.invert_scroll_zoom": "反转滚动缩放",
|
|
||||||
"hud.settings.invert_mouse_y_axis": "反转鼠标Y轴",
|
|
||||||
"hud.settings.enable_mouse_smoothing": "平滑相机",
|
|
||||||
"hud.settings.free_look_behavior": "自由视角行为",
|
|
||||||
"hud.settings.auto_walk_behavior": "自动行走行为",
|
|
||||||
"hud.settings.stop_auto_walk_on_input": "停止自动行走",
|
|
||||||
|
|
||||||
"hud.settings.view_distance": "视野距离",
|
|
||||||
"hud.settings.sprites_view_distance": "精灵视距",
|
|
||||||
"hud.settings.figures_view_distance": "实体视距",
|
|
||||||
"hud.settings.maximum_fps": "最高FPS",
|
|
||||||
"hud.settings.fov": "视野",
|
|
||||||
"hud.settings.gamma": "Gamma",
|
|
||||||
"hud.settings.antialiasing_mode": "抗锯齿模式",
|
|
||||||
"hud.settings.cloud_rendering_mode": "云朵渲染模式",
|
|
||||||
"hud.settings.fluid_rendering_mode": "流体渲染模式",
|
|
||||||
"hud.settings.fluid_rendering_mode.cheap": "简单",
|
|
||||||
"hud.settings.fluid_rendering_mode.shiny": "闪烁",
|
|
||||||
"hud.settings.cloud_rendering_mode.regular": "一般",
|
|
||||||
"hud.settings.fullscreen": "全屏",
|
|
||||||
"hud.settings.save_window_size": "保存窗口大小",
|
|
||||||
|
|
||||||
"hud.settings.music_volume": "音乐音量",
|
|
||||||
"hud.settings.sound_effect_volume": "音效音量",
|
|
||||||
"hud.settings.audio_device": "声音设备",
|
|
||||||
|
|
||||||
"hud.settings.awaitingkey": "等待按键...",
|
|
||||||
"hud.settings.unbound": "无",
|
|
||||||
"hud.settings.reset_keybinds": "重置快捷键",
|
|
||||||
|
|
||||||
"hud.social": "社交",
|
|
||||||
"hud.social.online": "线上",
|
|
||||||
"hud.social.friends": "好友",
|
|
||||||
"hud.social.not_yet_available": "尚不可用",
|
|
||||||
"hud.social.faction": "派别",
|
|
||||||
"hud.social.play_online_fmt": "{nb_player} 玩家在线",
|
|
||||||
|
|
||||||
"hud.crafting": "制作中",
|
|
||||||
"hud.crafting.recipes": "食谱",
|
|
||||||
"hud.crafting.ingredients": "配方:",
|
|
||||||
"hud.crafting.craft": "制作",
|
|
||||||
"hud.crafting.tool_cata": "需要:",
|
|
||||||
|
|
||||||
"hud.spell": "法术",
|
|
||||||
|
|
||||||
"hud.free_look_indicator": "自由视角",
|
|
||||||
"hud.auto_walk_indicator": "自动行走",
|
|
||||||
|
|
||||||
/// End HUD section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start GameInput section
|
|
||||||
|
|
||||||
"gameinput.primary": "普通攻击",
|
|
||||||
"gameinput.secondary": "特殊攻击/格挡/瞄准",
|
|
||||||
"gameinput.slot1": "技能栏 1",
|
|
||||||
"gameinput.slot2": "技能栏 2",
|
|
||||||
"gameinput.slot3": "技能栏 3",
|
|
||||||
"gameinput.slot4": "技能栏 4",
|
|
||||||
"gameinput.slot5": "技能栏 5",
|
|
||||||
"gameinput.slot6": "技能栏 6",
|
|
||||||
"gameinput.slot7": "技能栏 7",
|
|
||||||
"gameinput.slot8": "技能栏 8",
|
|
||||||
"gameinput.slot9": "技能栏 9",
|
|
||||||
"gameinput.slot10": "技能栏 10",
|
|
||||||
"gameinput.swaploadout": "缓存加载",
|
|
||||||
"gameinput.togglecursor": "切换光标",
|
|
||||||
"gameinput.help": "切换帮助窗口",
|
|
||||||
"gameinput.toggleinterface": "切换显示界面",
|
|
||||||
"gameinput.toggledebug": "切换显示FPS和调试信息",
|
|
||||||
"gameinput.screenshot": "截图",
|
|
||||||
"gameinput.toggleingameui": "切换显示名称",
|
|
||||||
"gameinput.fullscreen": "切换显示全屏",
|
|
||||||
"gameinput.moveforward": "前进",
|
|
||||||
"gameinput.moveleft": "向左移动",
|
|
||||||
"gameinput.moveright": "向右移动",
|
|
||||||
"gameinput.moveback": "后退",
|
|
||||||
"gameinput.jump": "跳跃",
|
|
||||||
"gameinput.glide": "滑翔伞",
|
|
||||||
"gameinput.roll": "翻滚",
|
|
||||||
"gameinput.climb": "攀爬",
|
|
||||||
"gameinput.climbdown": "向下攀爬",
|
|
||||||
"gameinput.wallleap": "越过障碍",
|
|
||||||
"gameinput.togglelantern": "切换显示灯笼",
|
|
||||||
"gameinput.mount": "安装",
|
|
||||||
"gameinput.enter": "进入",
|
|
||||||
"gameinput.command": "指令",
|
|
||||||
"gameinput.escape": "逃脱",
|
|
||||||
"gameinput.map": "地图",
|
|
||||||
"gameinput.bag": "背包",
|
|
||||||
"gameinput.social": "社交",
|
|
||||||
"gameinput.sit": "坐下",
|
|
||||||
"gameinput.spellbook": "法术",
|
|
||||||
"gameinput.settings": "设置",
|
|
||||||
"gameinput.respawn": "重生",
|
|
||||||
"gameinput.charge": "冲锋",
|
|
||||||
"gameinput.togglewield": "切换手持",
|
|
||||||
"gameinput.interact": "相互影响",
|
|
||||||
"gameinput.freelook": "自由视角",
|
|
||||||
"gameinput.autowalk": "自动行走",
|
|
||||||
"gameinput.dance": "跳舞",
|
|
||||||
|
|
||||||
/// End GameInput section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start chracter selection section
|
|
||||||
"char_selection.loading_characters": "加载人物中...",
|
|
||||||
"char_selection.delete_permanently": "确定永久删除此角色?",
|
|
||||||
"char_selection.deleting_character": "删除人物中...",
|
|
||||||
"char_selection.change_server": "切换服务器",
|
|
||||||
"char_selection.enter_world": "进入世界",
|
|
||||||
"char_selection.logout": "登出",
|
|
||||||
"char_selection.create_new_charater": "创建新的角色",
|
|
||||||
"char_selection.creating_character": "创建角色中...",
|
|
||||||
"char_selection.character_creation": "人物创作",
|
|
||||||
|
|
||||||
"char_selection.human_default": "普通人类",
|
|
||||||
"char_selection.level_fmt": "等级 {level_nb}",
|
|
||||||
"char_selection.uncanny_valley": "荒野",
|
|
||||||
"char_selection.plains_of_uncertainty": "不确定的平原",
|
|
||||||
"char_selection.beard": "胡须",
|
|
||||||
"char_selection.hair_style": "发型",
|
|
||||||
"char_selection.hair_color": "发色",
|
|
||||||
"char_selection.eye_color": "眼睛颜色",
|
|
||||||
"char_selection.skin": "肤色",
|
|
||||||
"char_selection.eyeshape": "眼睛细节",
|
|
||||||
"char_selection.accessories": "配饰",
|
|
||||||
"char_selection.create_info_name": "你的人物需要一个名字!",
|
|
||||||
|
|
||||||
/// End chracter selection section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start character window section
|
|
||||||
"character_window.character_name": "人物名称",
|
|
||||||
// Character stats
|
|
||||||
"character_window.character_stats": r#"耐力
|
|
||||||
|
|
||||||
生命
|
|
||||||
|
|
||||||
意志
|
|
||||||
|
|
||||||
护甲
|
|
||||||
"#,
|
|
||||||
/// End character window section
|
|
||||||
|
|
||||||
|
|
||||||
/// Start Escape Menu Section
|
|
||||||
"esc_menu.logout": "登出",
|
|
||||||
"esc_menu.quit_game": "退出游戏",
|
|
||||||
/// End Escape Menu Section
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
vector_map: {
|
|
||||||
"loading.tips": [
|
|
||||||
"按下 'G' 来点亮灯笼.",
|
|
||||||
"按下 'F1' 查看所有默认快捷键.",
|
|
||||||
"你可以通过 /say 或 /s 只与您周围的玩家聊天.",
|
|
||||||
"你可以通过 /region 或 /r 只与您数百个方块范围内的玩家聊天.",
|
|
||||||
"你可以通过 /tell 玩家名称 发送私人消息.",
|
|
||||||
"相同等级的NPC可能具有不同的难度.",
|
|
||||||
"注意地面上的食物,箱子以及其他战利品!",
|
|
||||||
"包里全是食物? 尝试使用它们制作更好的食物!",
|
|
||||||
"不知道做什么? 地图上褐色斑点区域有地牢!",
|
|
||||||
"不要忘记调整图形设置. 按 'N' 打开设置.",
|
|
||||||
"和其他人一起玩! 按 'O' 查看在线人员.",
|
|
||||||
"生命值下面有骷髅标识的NPC比您强大的多.",
|
|
||||||
"按下 'J' 跳舞!",
|
|
||||||
"按下 'LShift' 可以打开滑翔翼并立刻起飞",
|
|
||||||
"Veloren 处于Alpha阶段. 我们每天都在努力改善它!",
|
|
||||||
"如果您想加入开发团队或与我们聊天,请加入我们的Discord服务器.",
|
|
||||||
],
|
|
||||||
"npc.speech.villager_under_attack": [
|
|
||||||
"救命!我受到攻击!",
|
|
||||||
"救命!我受到攻击!",
|
|
||||||
"哎哟! 我受到攻击!",
|
|
||||||
"哎哟! 我受到攻击!我需要帮助!",
|
|
||||||
"救命!我受到攻击!",
|
|
||||||
"唉哟! 我受到攻击!我需要帮助!",
|
|
||||||
"唉哟! 我受到攻击!我需要帮助!",
|
|
||||||
"救命!",
|
|
||||||
"救命! 救命!",
|
|
||||||
"救命! 救命! 救命!",
|
|
||||||
"我受到攻击!",
|
|
||||||
"啊啊啊啊! 我受到攻击!",
|
|
||||||
"啊啊啊啊! 我受到攻击! 救命!",
|
|
||||||
"救命! 我们受到攻击!",
|
|
||||||
"救命! 有杀人犯!",
|
|
||||||
"救命! 这里有一个杀人犯在逃跑!",
|
|
||||||
"救命! 他们想杀我!",
|
|
||||||
"守卫, 我受到攻击!",
|
|
||||||
"守卫! 我受到攻击!",
|
|
||||||
"我受到攻击! 守卫!",
|
|
||||||
"救命! 守卫! 我受到攻击!",
|
|
||||||
"守卫! 快来!",
|
|
||||||
"守卫! 守卫!",
|
|
||||||
"守卫! 这里有一个恶棍在攻击我!",
|
|
||||||
"守卫, 快杀死这个恶棍!",
|
|
||||||
"守卫! 这里有一个杀人犯!",
|
|
||||||
"守卫! 帮帮我!",
|
|
||||||
"你别想逃了! 守卫!",
|
|
||||||
"你是恶魔!",
|
|
||||||
"救命!",
|
|
||||||
"救救我!",
|
|
||||||
"哎哟! 守卫! 救命!",
|
|
||||||
"他们会来找我的!",
|
|
||||||
"救命! 救命! 我被压迫了!",
|
|
||||||
"啊, now we see the violence inherent in the system.",
|
|
||||||
"Tis but a scratch!",
|
|
||||||
"停下来!",
|
|
||||||
"我曾经对你做过什么?!",
|
|
||||||
"不要攻击我了!",
|
|
||||||
"嘿! 注意你指向的东西!",
|
|
||||||
"可恶的家伙, 你们一起去死吧!",
|
|
||||||
"停下来! 然后滚蛋!",
|
|
||||||
"你现在让我很生气!",
|
|
||||||
"噢! 你以为你是谁?!",
|
|
||||||
"我会让你听到的!",
|
|
||||||
"请停一下! 我没有任何值钱的东西!",
|
|
||||||
"I'll set my brother on you, he's bigger than I am!",
|
|
||||||
"不, 我要告诉妈妈!",
|
|
||||||
"诅咒你!",
|
|
||||||
"请不要这么做.",
|
|
||||||
"那不是很好!",
|
|
||||||
"Your weapon works, you can put it away now!",
|
|
||||||
"绕了我吧!",
|
|
||||||
"拜托了,我还有家庭!",
|
|
||||||
"我还小就要死了!",
|
|
||||||
"我们可以谈谈这个吗?",
|
|
||||||
"暴力永远不是解决问题的方式!",
|
|
||||||
"今天真是非常糟糕的一天...",
|
|
||||||
"喂, 别打我!",
|
|
||||||
"诶!",
|
|
||||||
"真没礼貌!",
|
|
||||||
"拜托, 求求你了!",
|
|
||||||
"A pox upon you!",
|
|
||||||
"这不好玩.",
|
|
||||||
"你怎么敢?!",
|
|
||||||
"你会为此复出代价的!",
|
|
||||||
"坚持下去你会后悔的!",
|
|
||||||
"不要让我伤害你!",
|
|
||||||
"一定有误会!",
|
|
||||||
"你不需要这样做!",
|
|
||||||
"再见吧, 恶魔!",
|
|
||||||
"真的好疼!",
|
|
||||||
"为什么要这么做?",
|
|
||||||
"砸瓦鲁多!",
|
|
||||||
"You must have me confused with someone else!",
|
|
||||||
"I don't deserve this!",
|
|
||||||
"请不要再这样做.",
|
|
||||||
"守卫, 把这个怪物扔进湖里!",
|
|
||||||
"I'll set my tarrasque on you!",
|
|
||||||
],
|
|
||||||
}
|
|
||||||
)
|
|
@ -1,15 +1,15 @@
|
|||||||
({
|
({
|
||||||
(Ogre, Male): (
|
(Ogre, Male): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -5.0, -6.0),
|
offset: (-8.0, -6.0, -6.5),
|
||||||
center: ("npc.ogre.male.head"),
|
center: ("npc.ogre.male.head"),
|
||||||
),
|
),
|
||||||
torso_upper: (
|
torso_upper: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-8.0, -6.0, -8.0),
|
||||||
center: ("npc.ogre.male.torso_upper"),
|
center: ("npc.ogre.male.torso_upper"),
|
||||||
),
|
),
|
||||||
torso_lower: (
|
torso_lower: (
|
||||||
offset: (-5.0, -4.5, -9.0),
|
offset: (-6.0, -5.5, -10.0),
|
||||||
center: ("npc.ogre.male.torso_lower"),
|
center: ("npc.ogre.male.torso_lower"),
|
||||||
),
|
),
|
||||||
jaw: (
|
jaw: (
|
||||||
@ -25,22 +25,22 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-5.0, -5.5, -5.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.ogre.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Ogre, Female): (
|
(Ogre, Female): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -5.0, -6.0),
|
offset: (-9.0, -5.5, -6.0),
|
||||||
center: ("npc.ogre.male.head"),
|
center: ("npc.ogre.female..head"),
|
||||||
),
|
),
|
||||||
torso_upper: (
|
torso_upper: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-6.0, -5.0, -6.0),
|
||||||
center: ("npc.ogre.male.torso_upper"),
|
center: ("npc.ogre.female.torso_upper"),
|
||||||
),
|
),
|
||||||
torso_lower: (
|
torso_lower: (
|
||||||
offset: (-5.0, -4.5, -9.0),
|
offset: (-5.0, -4.5, -6.0),
|
||||||
center: ("npc.ogre.male.torso_lower"),
|
center: ("npc.ogre.female.torso_lower"),
|
||||||
),
|
),
|
||||||
jaw: (
|
jaw: (
|
||||||
offset: (0.0, 0.0, 0.0),
|
offset: (0.0, 0.0, 0.0),
|
||||||
@ -55,8 +55,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-2.5, -5.5, -5.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.ogre.female.main"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Cyclops, Male): (
|
(Cyclops, Male): (
|
||||||
@ -116,7 +116,7 @@
|
|||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-5.0, -6.5, -4.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("npc.cyclops.male.hammer"),
|
center: ("npc.cyclops.female.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Wendigo, Male): (
|
(Wendigo, Male): (
|
||||||
@ -145,8 +145,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.wendigo.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Wendigo, Female): (
|
(Wendigo, Female): (
|
||||||
@ -175,8 +175,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.wendigo.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Troll, Male): (
|
(Troll, Male): (
|
||||||
@ -205,8 +205,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.troll.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
(Troll, Female): (
|
(Troll, Female): (
|
||||||
@ -235,8 +235,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-8.0, -4.5, -5.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("armor.empty"),
|
center: ("npc.troll.female.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -267,8 +267,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-1.5, -9.0, -10.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("npc.dullahan.male.sword"),
|
center: ("npc.cyclops.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -298,8 +298,8 @@
|
|||||||
center: ("armor.empty"),
|
center: ("armor.empty"),
|
||||||
),
|
),
|
||||||
main: (
|
main: (
|
||||||
offset: (-1.5, -9.0, -10.0),
|
offset: (-5.0, -6.5, -4.0),
|
||||||
center: ("npc.dullahan.male.sword"),
|
center: ("npc.cyclops.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
})
|
})
|
||||||
|
@ -1,70 +1,70 @@
|
|||||||
({
|
({
|
||||||
(Ogre, Male): (
|
(Ogre, Male): (
|
||||||
shoulder_l: (
|
shoulder_l: (
|
||||||
offset: (-4.0, -5.5, -4.0),
|
offset: (-6.0, -3.5, -4.0),
|
||||||
lateral: ("armor.empty"),
|
lateral: ("npc.ogre.male.shoulder_l"),
|
||||||
),
|
),
|
||||||
shoulder_r: (
|
shoulder_r: (
|
||||||
offset: (-4.0, -5.5, -4.0),
|
offset: (-6.0, -4.5, -4.0),
|
||||||
lateral: ("npc.ogre.male.shoulder_r"),
|
lateral: ("npc.ogre.male.shoulder_r"),
|
||||||
),
|
),
|
||||||
hand_l: (
|
hand_l: (
|
||||||
offset: (-2.5, -2.5, -11.0),
|
offset: (-5.5, -3.5, -15.0),
|
||||||
lateral: ("npc.ogre.male.hand_l"),
|
lateral: ("npc.ogre.male.hand_l"),
|
||||||
),
|
),
|
||||||
hand_r: (
|
hand_r: (
|
||||||
offset: (-2.5, -2.5, -11.0),
|
offset: (-5.5, -3.5, -15.0),
|
||||||
lateral: ("npc.ogre.male.hand_r"),
|
lateral: ("npc.ogre.male.hand_r"),
|
||||||
),
|
),
|
||||||
leg_l: (
|
leg_l: (
|
||||||
offset: (-6.0, -3.5, -7.0),
|
offset: (-6.0, -3.5, -8.0),
|
||||||
lateral: ("npc.ogre.male.leg_l"),
|
lateral: ("npc.ogre.male.leg_l"),
|
||||||
),
|
),
|
||||||
leg_r: (
|
leg_r: (
|
||||||
offset: (0.0, -3.5, -7.0),
|
offset: (0.0, -3.5, -8.0),
|
||||||
lateral: ("npc.ogre.male.leg_r"),
|
lateral: ("npc.ogre.male.leg_r"),
|
||||||
),
|
),
|
||||||
foot_l: (
|
foot_l: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -8.0),
|
||||||
lateral: ("npc.ogre.male.foot_l"),
|
lateral: ("npc.ogre.male.foot_l"),
|
||||||
),
|
),
|
||||||
foot_r: (
|
foot_r: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.5, -8.0),
|
||||||
lateral: ("npc.ogre.male.foot_r"),
|
lateral: ("npc.ogre.male.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(Ogre, Female): (
|
(Ogre, Female): (
|
||||||
shoulder_l: (
|
shoulder_l: (
|
||||||
offset: (-4.0, -5.5, -4.0),
|
offset: (-3.0, -3.0, -3.5),
|
||||||
lateral: ("armor.empty"),
|
lateral: ("npc.ogre.female.shoulder_l"),
|
||||||
),
|
),
|
||||||
shoulder_r: (
|
shoulder_r: (
|
||||||
offset: (-4.0, -5.5, -4.0),
|
offset: (-3.0, -3.0, -3.5),
|
||||||
lateral: ("npc.ogre.male.shoulder_r"),
|
lateral: ("npc.ogre.female.shoulder_r"),
|
||||||
),
|
),
|
||||||
hand_l: (
|
hand_l: (
|
||||||
offset: (-2.5, -2.5, -11.0),
|
offset: (-3.0, -3.0, -8.0),
|
||||||
lateral: ("npc.ogre.male.hand_l"),
|
lateral: ("npc.ogre.female.hand_l"),
|
||||||
),
|
),
|
||||||
hand_r: (
|
hand_r: (
|
||||||
offset: (-2.5, -2.5, -11.0),
|
offset: (-3.0, -3.0, -8.0),
|
||||||
lateral: ("npc.ogre.male.hand_r"),
|
lateral: ("npc.ogre.female.hand_r"),
|
||||||
),
|
),
|
||||||
leg_l: (
|
leg_l: (
|
||||||
offset: (-6.0, -3.5, -7.0),
|
offset: (-7.0, -3.5, -11.0),
|
||||||
lateral: ("npc.ogre.male.leg_l"),
|
lateral: ("npc.ogre.female.leg_l"),
|
||||||
),
|
),
|
||||||
leg_r: (
|
leg_r: (
|
||||||
offset: (0.0, -3.5, -7.0),
|
offset: (0.0, -3.5, -11.0),
|
||||||
lateral: ("npc.ogre.male.leg_r"),
|
lateral: ("npc.ogre.female.leg_r"),
|
||||||
),
|
),
|
||||||
foot_l: (
|
foot_l: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -8.0),
|
||||||
lateral: ("npc.ogre.male.foot_l"),
|
lateral: ("npc.ogre.female.foot_l"),
|
||||||
),
|
),
|
||||||
foot_r: (
|
foot_r: (
|
||||||
offset: (-3.0, -5.0, -2.5),
|
offset: (-3.0, -5.0, -8.0),
|
||||||
lateral: ("npc.ogre.male.foot_r"),
|
lateral: ("npc.ogre.female.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(Cyclops, Male): (
|
(Cyclops, Male): (
|
||||||
|
BIN
assets/voxygen/voxel/npc/cyclops/female/hammer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cyclops/female/hammer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/main.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/main.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/female/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/female/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/club_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/club_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/club_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/club_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/foot_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/foot_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/hammer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/male/hammer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/hand_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/hand_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/head.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/head.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/leg_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/leg_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/leg_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/leg_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/main.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/ogre/male/main.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/shoulder_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/shoulder_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/shoulder_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/shoulder_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/torso_lower.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/torso_lower.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/ogre/male/torso_upper.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/ogre/male/torso_upper.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/female/hammer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll/female/hammer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/hammer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/troll/male/hammer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/troll/male/shoulder_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/wendigo/male/hammer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/wendigo/male/hammer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-chat-cli"
|
name = "veloren-chat-cli"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-client"
|
name = "veloren-client"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-common"
|
name = "veloren-common"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Maciej Ćwięka <mckol363@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Maciej Ćwięka <mckol363@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-server-cli"
|
name = "veloren-server-cli"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-server"
|
name = "veloren-server"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-voxygen"
|
name = "veloren-voxygen"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
default-run = "veloren-voxygen"
|
default-run = "veloren-voxygen"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-voxygen-anim"
|
name = "veloren-voxygen-anim"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Imbris <imbrisf@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ edition = "2018"
|
|||||||
name = "voxygen_anim"
|
name = "voxygen_anim"
|
||||||
# Uncomment to use animation hot reloading
|
# Uncomment to use animation hot reloading
|
||||||
# Note: this breaks `cargo test`
|
# Note: this breaks `cargo test`
|
||||||
#crate-type = ["lib", "cdylib"]
|
# crate-type = ["lib", "cdylib"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
use-dyn-lib = ["libloading", "notify", "lazy_static", "tracing", "find_folder"]
|
use-dyn-lib = ["libloading", "notify", "lazy_static", "tracing", "find_folder"]
|
||||||
|
217
voxygen/src/anim/src/biped_large/alpha.rs
Normal file
217
voxygen/src/anim/src/biped_large/alpha.rs
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
use super::{
|
||||||
|
super::{vek::*, Animation},
|
||||||
|
BipedLargeSkeleton, SkeletonAttr,
|
||||||
|
};
|
||||||
|
use std::f32::consts::PI;
|
||||||
|
|
||||||
|
pub struct AlphaAnimation;
|
||||||
|
|
||||||
|
impl Animation for AlphaAnimation {
|
||||||
|
type Dependency = (f32, f64);
|
||||||
|
type Skeleton = BipedLargeSkeleton;
|
||||||
|
|
||||||
|
#[cfg(feature = "use-dyn-lib")]
|
||||||
|
const UPDATE_FN: &'static [u8] = b"biped_large_alpha\0";
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "be-dyn-lib", export_name = "biped_large_alpha")]
|
||||||
|
fn update_skeleton_inner(
|
||||||
|
skeleton: &Self::Skeleton,
|
||||||
|
(velocity, _global_time): Self::Dependency,
|
||||||
|
anim_time: f64,
|
||||||
|
_rate: &mut f32,
|
||||||
|
skeleton_attr: &SkeletonAttr,
|
||||||
|
) -> Self::Skeleton {
|
||||||
|
let mut next = (*skeleton).clone();
|
||||||
|
|
||||||
|
let lab = 0.55;
|
||||||
|
|
||||||
|
let slower = (((1.0)
|
||||||
|
/ (0.05
|
||||||
|
+ 0.95
|
||||||
|
* ((anim_time as f32 * lab as f32 * 10.0 - 0.8 * PI).sin()).powf(2.0 as f32)))
|
||||||
|
.sqrt())
|
||||||
|
* ((anim_time as f32 * lab as f32 * 10.0 - 0.8 * PI).sin());
|
||||||
|
|
||||||
|
let slowersmooth = (anim_time as f32 * lab as f32 * 4.0).sin();
|
||||||
|
|
||||||
|
let foothoril = (((1.0)
|
||||||
|
/ (0.4
|
||||||
|
+ (0.6)
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32)))
|
||||||
|
.sqrt())
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin());
|
||||||
|
let foothorir = (((1.0)
|
||||||
|
/ (0.4
|
||||||
|
+ (0.6)
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32)))
|
||||||
|
.sqrt())
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin());
|
||||||
|
|
||||||
|
let footrotl = (((5.0)
|
||||||
|
/ (2.5
|
||||||
|
+ (2.5)
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32)))
|
||||||
|
.sqrt())
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin());
|
||||||
|
|
||||||
|
let footrotr = (((5.0)
|
||||||
|
/ (1.0
|
||||||
|
+ (4.0)
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32)))
|
||||||
|
.sqrt())
|
||||||
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin());
|
||||||
|
|
||||||
|
let short = (anim_time as f32 * lab as f32 * 16.0).sin();
|
||||||
|
|
||||||
|
next.head.position = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) * 1.02;
|
||||||
|
next.head.orientation = Quaternion::rotation_z(slower * 1.0) * Quaternion::rotation_x(0.0);
|
||||||
|
next.head.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.main.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
next.main.orientation = Quaternion::rotation_x(0.0)
|
||||||
|
* Quaternion::rotation_y(-1.57)
|
||||||
|
* Quaternion::rotation_z(1.0);
|
||||||
|
next.main.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.second.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
next.second.orientation =
|
||||||
|
Quaternion::rotation_x(PI) * Quaternion::rotation_y(0.0) * Quaternion::rotation_z(0.0);
|
||||||
|
next.second.scale = Vec3::one() * 0.0;
|
||||||
|
|
||||||
|
next.hand_l.position = Vec3::new(
|
||||||
|
-skeleton_attr.hand.0 - 7.0,
|
||||||
|
skeleton_attr.hand.1 - 7.0,
|
||||||
|
skeleton_attr.hand.2 + 10.0,
|
||||||
|
);
|
||||||
|
next.hand_l.orientation = Quaternion::rotation_x(0.57) * Quaternion::rotation_z(1.57);
|
||||||
|
next.hand_l.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.hand_r.position = Vec3::new(
|
||||||
|
skeleton_attr.hand.0 - 7.0,
|
||||||
|
skeleton_attr.hand.1 - 7.0,
|
||||||
|
skeleton_attr.hand.2 + 10.0,
|
||||||
|
);
|
||||||
|
next.hand_r.orientation = Quaternion::rotation_x(0.57) * Quaternion::rotation_z(1.57);
|
||||||
|
next.hand_r.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.upper_torso.position = Vec3::new(
|
||||||
|
0.0,
|
||||||
|
skeleton_attr.upper_torso.0,
|
||||||
|
skeleton_attr.upper_torso.1,
|
||||||
|
);
|
||||||
|
next.upper_torso.orientation =
|
||||||
|
Quaternion::rotation_z(slower * -1.2) * Quaternion::rotation_x(-0.3);
|
||||||
|
next.upper_torso.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.control.position = Vec3::new(7.0, 9.0, -10.0);
|
||||||
|
next.control.orientation = Quaternion::rotation_x(slowersmooth * 0.35)
|
||||||
|
* Quaternion::rotation_y(0.0)
|
||||||
|
* Quaternion::rotation_z(slowersmooth * -0.5 + slower * -0.5);
|
||||||
|
next.control.scale = Vec3::one();
|
||||||
|
if velocity < 0.5 {
|
||||||
|
next.lower_torso.position = Vec3::new(
|
||||||
|
0.0,
|
||||||
|
skeleton_attr.lower_torso.0,
|
||||||
|
skeleton_attr.lower_torso.1,
|
||||||
|
);
|
||||||
|
next.lower_torso.orientation =
|
||||||
|
Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.2);
|
||||||
|
next.lower_torso.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1 * 0.0);
|
||||||
|
next.jaw.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.jaw.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.tail.position = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1);
|
||||||
|
next.tail.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.tail.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.shoulder_l.position = Vec3::new(
|
||||||
|
-skeleton_attr.shoulder.0,
|
||||||
|
skeleton_attr.shoulder.1,
|
||||||
|
skeleton_attr.shoulder.2,
|
||||||
|
);
|
||||||
|
next.shoulder_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
||||||
|
next.shoulder_l.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.shoulder_r.position = Vec3::new(
|
||||||
|
skeleton_attr.shoulder.0,
|
||||||
|
skeleton_attr.shoulder.1,
|
||||||
|
skeleton_attr.shoulder.2,
|
||||||
|
);
|
||||||
|
next.shoulder_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
||||||
|
next.shoulder_r.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.leg_l.position = Vec3::new(
|
||||||
|
-skeleton_attr.leg.0,
|
||||||
|
skeleton_attr.leg.1,
|
||||||
|
skeleton_attr.leg.2,
|
||||||
|
) * 1.02;
|
||||||
|
next.leg_l.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.leg_l.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.leg_r.position = Vec3::new(
|
||||||
|
skeleton_attr.leg.0,
|
||||||
|
skeleton_attr.leg.1,
|
||||||
|
skeleton_attr.leg.2,
|
||||||
|
) * 1.02;
|
||||||
|
next.leg_r.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.leg_r.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.foot_l.position = Vec3::new(
|
||||||
|
-skeleton_attr.foot.0,
|
||||||
|
skeleton_attr.foot.1,
|
||||||
|
skeleton_attr.foot.2,
|
||||||
|
) / 8.0;
|
||||||
|
next.foot_l.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.foot_l.scale = Vec3::one() / 8.0;
|
||||||
|
|
||||||
|
next.foot_r.position = Vec3::new(
|
||||||
|
skeleton_attr.foot.0,
|
||||||
|
skeleton_attr.foot.1,
|
||||||
|
skeleton_attr.foot.2,
|
||||||
|
) / 8.0;
|
||||||
|
next.foot_r.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.foot_r.scale = Vec3::one() / 8.0;
|
||||||
|
|
||||||
|
next.torso.position = Vec3::new(0.0, 0.0, 0.0) / 8.0;
|
||||||
|
next.torso.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.torso.scale = Vec3::one() / 8.0;
|
||||||
|
} else {
|
||||||
|
next.lower_torso.position = Vec3::new(
|
||||||
|
0.0,
|
||||||
|
skeleton_attr.lower_torso.0,
|
||||||
|
skeleton_attr.lower_torso.1,
|
||||||
|
);
|
||||||
|
next.lower_torso.orientation =
|
||||||
|
Quaternion::rotation_z(short * 0.15) * Quaternion::rotation_x(0.14);
|
||||||
|
next.lower_torso.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.shoulder_l.position = Vec3::new(
|
||||||
|
-skeleton_attr.shoulder.0,
|
||||||
|
skeleton_attr.shoulder.1 + foothoril * -1.0,
|
||||||
|
skeleton_attr.shoulder.2,
|
||||||
|
);
|
||||||
|
next.shoulder_l.orientation = Quaternion::rotation_x(0.5 + footrotl * -0.16)
|
||||||
|
* Quaternion::rotation_y(0.1)
|
||||||
|
* Quaternion::rotation_z(footrotl * 0.1);
|
||||||
|
next.shoulder_l.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.shoulder_r.position = Vec3::new(
|
||||||
|
skeleton_attr.shoulder.0,
|
||||||
|
skeleton_attr.shoulder.1 + foothorir * -1.0,
|
||||||
|
skeleton_attr.shoulder.2,
|
||||||
|
);
|
||||||
|
next.shoulder_r.orientation = Quaternion::rotation_x(0.5 + footrotr * -0.16)
|
||||||
|
* Quaternion::rotation_y(-0.1)
|
||||||
|
* Quaternion::rotation_z(footrotr * -0.1);
|
||||||
|
next.shoulder_r.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.torso.position = Vec3::new(0.0, 0.0, 0.0) / 8.0;
|
||||||
|
next.torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.25);
|
||||||
|
next.torso.scale = Vec3::one() / 8.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
next
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +1,13 @@
|
|||||||
use super::{super::Animation, BipedLargeSkeleton, SkeletonAttr};
|
use super::{
|
||||||
//use std::f32::consts::PI;
|
super::{vek::*, Animation},
|
||||||
use super::super::vek::*;
|
BipedLargeSkeleton, SkeletonAttr,
|
||||||
|
};
|
||||||
|
use std::f32::consts::PI;
|
||||||
|
|
||||||
pub struct JumpAnimation;
|
pub struct JumpAnimation;
|
||||||
|
|
||||||
impl Animation for JumpAnimation {
|
impl Animation for JumpAnimation {
|
||||||
type Dependency = (f32, f64);
|
type Dependency = f64;
|
||||||
type Skeleton = BipedLargeSkeleton;
|
type Skeleton = BipedLargeSkeleton;
|
||||||
|
|
||||||
#[cfg(feature = "use-dyn-lib")]
|
#[cfg(feature = "use-dyn-lib")]
|
||||||
@ -15,46 +17,73 @@ impl Animation for JumpAnimation {
|
|||||||
fn update_skeleton_inner(
|
fn update_skeleton_inner(
|
||||||
skeleton: &Self::Skeleton,
|
skeleton: &Self::Skeleton,
|
||||||
_global_time: Self::Dependency,
|
_global_time: Self::Dependency,
|
||||||
_anim_time: f64,
|
anim_time: f64,
|
||||||
_rate: &mut f32,
|
_rate: &mut f32,
|
||||||
skeleton_attr: &SkeletonAttr,
|
skeleton_attr: &SkeletonAttr,
|
||||||
) -> Self::Skeleton {
|
) -> Self::Skeleton {
|
||||||
let mut next = (*skeleton).clone();
|
let mut next = (*skeleton).clone();
|
||||||
|
|
||||||
next.head.position = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) * 1.02;
|
let lab = 1.0;
|
||||||
|
let torso = (anim_time as f32 * lab as f32 + 1.5 * PI).sin();
|
||||||
|
|
||||||
|
let wave_slow = (anim_time as f32 * 0.8).sin();
|
||||||
|
|
||||||
|
next.head.position = Vec3::new(
|
||||||
|
0.0,
|
||||||
|
skeleton_attr.head.0,
|
||||||
|
skeleton_attr.head.1 + torso * 0.2,
|
||||||
|
) * 1.02;
|
||||||
next.head.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.head.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
||||||
next.head.scale = Vec3::one() * 1.02;
|
next.head.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.upper_torso.position = Vec3::new(
|
next.upper_torso.position = Vec3::new(
|
||||||
0.0,
|
0.0,
|
||||||
skeleton_attr.upper_torso.0,
|
skeleton_attr.upper_torso.0,
|
||||||
skeleton_attr.upper_torso.1,
|
skeleton_attr.upper_torso.1 + torso * 0.5,
|
||||||
) / 8.0;
|
);
|
||||||
next.upper_torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.upper_torso.orientation = Quaternion::rotation_x(-0.3);
|
||||||
next.upper_torso.scale = Vec3::one() / 8.0;
|
next.upper_torso.scale = Vec3::one();
|
||||||
|
|
||||||
next.lower_torso.position = Vec3::new(
|
next.lower_torso.position = Vec3::new(
|
||||||
0.0,
|
0.0,
|
||||||
skeleton_attr.lower_torso.0,
|
skeleton_attr.lower_torso.0,
|
||||||
skeleton_attr.lower_torso.1,
|
skeleton_attr.lower_torso.1 + torso * 0.15,
|
||||||
);
|
);
|
||||||
next.lower_torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.lower_torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.2);
|
||||||
next.lower_torso.scale = Vec3::one() * 1.02;
|
next.lower_torso.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
|
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
|
||||||
next.jaw.orientation = Quaternion::rotation_z(0.0);
|
next.jaw.orientation = Quaternion::rotation_x(wave_slow * 0.09);
|
||||||
next.jaw.scale = Vec3::one();
|
next.jaw.scale = Vec3::one();
|
||||||
|
|
||||||
next.tail.position = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1 * 0.0);
|
next.tail.position = Vec3::new(
|
||||||
|
0.0,
|
||||||
|
skeleton_attr.tail.0,
|
||||||
|
skeleton_attr.tail.1 + torso * 0.0,
|
||||||
|
);
|
||||||
next.tail.orientation = Quaternion::rotation_z(0.0);
|
next.tail.orientation = Quaternion::rotation_z(0.0);
|
||||||
next.tail.scale = Vec3::one();
|
next.tail.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.control.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
next.control.orientation = Quaternion::rotation_z(0.0);
|
||||||
|
next.control.scale = Vec3::one();
|
||||||
|
|
||||||
|
next.second.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
next.second.orientation =
|
||||||
|
Quaternion::rotation_x(PI) * Quaternion::rotation_y(0.0) * Quaternion::rotation_z(0.0);
|
||||||
|
next.second.scale = Vec3::one() * 0.0;
|
||||||
|
|
||||||
|
next.main.position = Vec3::new(-5.0, -7.0, 7.0);
|
||||||
|
next.main.orientation =
|
||||||
|
Quaternion::rotation_x(PI) * Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57);
|
||||||
|
next.main.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.shoulder_l.position = Vec3::new(
|
next.shoulder_l.position = Vec3::new(
|
||||||
-skeleton_attr.shoulder.0,
|
-skeleton_attr.shoulder.0,
|
||||||
skeleton_attr.shoulder.1,
|
skeleton_attr.shoulder.1,
|
||||||
skeleton_attr.shoulder.2,
|
skeleton_attr.shoulder.2,
|
||||||
);
|
);
|
||||||
next.shoulder_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.shoulder_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.5);
|
||||||
next.shoulder_l.scale = Vec3::one();
|
next.shoulder_l.scale = Vec3::one();
|
||||||
|
|
||||||
next.shoulder_r.position = Vec3::new(
|
next.shoulder_r.position = Vec3::new(
|
||||||
@ -62,60 +91,61 @@ impl Animation for JumpAnimation {
|
|||||||
skeleton_attr.shoulder.1,
|
skeleton_attr.shoulder.1,
|
||||||
skeleton_attr.shoulder.2,
|
skeleton_attr.shoulder.2,
|
||||||
);
|
);
|
||||||
next.shoulder_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.shoulder_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.5);
|
||||||
next.shoulder_r.scale = Vec3::one();
|
next.shoulder_r.scale = Vec3::one();
|
||||||
|
|
||||||
next.hand_l.position = Vec3::new(
|
next.hand_l.position = Vec3::new(
|
||||||
-skeleton_attr.hand.0,
|
-skeleton_attr.hand.0,
|
||||||
skeleton_attr.hand.1,
|
skeleton_attr.hand.1,
|
||||||
skeleton_attr.hand.2,
|
skeleton_attr.hand.2 + torso * 0.6,
|
||||||
);
|
);
|
||||||
next.hand_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.hand_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.8);
|
||||||
next.hand_l.scale = Vec3::one() * 1.02;
|
next.hand_l.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.hand_r.position = Vec3::new(
|
next.hand_r.position = Vec3::new(
|
||||||
skeleton_attr.hand.0,
|
skeleton_attr.hand.0,
|
||||||
skeleton_attr.hand.1,
|
skeleton_attr.hand.1,
|
||||||
skeleton_attr.hand.2,
|
skeleton_attr.hand.2 + torso * 0.6,
|
||||||
);
|
);
|
||||||
next.hand_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.hand_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.8);
|
||||||
next.hand_r.scale = Vec3::one() * 1.02;
|
next.hand_r.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.leg_l.position = Vec3::new(
|
next.leg_l.position = Vec3::new(
|
||||||
-skeleton_attr.leg.0,
|
-skeleton_attr.leg.0,
|
||||||
skeleton_attr.leg.1,
|
skeleton_attr.leg.1,
|
||||||
skeleton_attr.leg.2,
|
skeleton_attr.leg.2 + torso * 0.2,
|
||||||
) * 1.02;
|
) * 1.02;
|
||||||
next.leg_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.leg_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.4);
|
||||||
next.leg_l.scale = Vec3::one() * 1.02;
|
next.leg_l.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.leg_r.position = Vec3::new(
|
next.leg_r.position = Vec3::new(
|
||||||
skeleton_attr.leg.0,
|
skeleton_attr.leg.0,
|
||||||
skeleton_attr.leg.1,
|
skeleton_attr.leg.1,
|
||||||
skeleton_attr.leg.2,
|
skeleton_attr.leg.2 + torso * 0.2,
|
||||||
) * 1.02;
|
) * 1.02;
|
||||||
next.leg_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.leg_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.4);
|
||||||
next.leg_r.scale = Vec3::one() * 1.02;
|
next.leg_r.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.foot_l.position = Vec3::new(
|
next.foot_l.position = Vec3::new(
|
||||||
-skeleton_attr.foot.0,
|
-skeleton_attr.foot.0,
|
||||||
skeleton_attr.foot.1,
|
-5.0 + skeleton_attr.foot.1,
|
||||||
skeleton_attr.foot.2,
|
skeleton_attr.foot.2,
|
||||||
) / 8.0;
|
) / 8.0;
|
||||||
next.foot_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.foot_l.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.4);
|
||||||
next.foot_l.scale = Vec3::one() / 8.0;
|
next.foot_l.scale = Vec3::one() / 8.0;
|
||||||
|
|
||||||
next.foot_r.position = Vec3::new(
|
next.foot_r.position = Vec3::new(
|
||||||
skeleton_attr.foot.0,
|
skeleton_attr.foot.0,
|
||||||
skeleton_attr.foot.1,
|
5.0 + skeleton_attr.foot.1,
|
||||||
skeleton_attr.foot.2,
|
skeleton_attr.foot.2,
|
||||||
) / 8.0;
|
) / 8.0;
|
||||||
next.foot_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.foot_r.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.4);
|
||||||
next.foot_r.scale = Vec3::one() / 8.0;
|
next.foot_r.scale = Vec3::one() / 8.0;
|
||||||
|
|
||||||
next.torso.position = Vec3::new(0.0, 0.0, 0.0);
|
next.torso.position = Vec3::new(0.0, 0.0, 0.0) / 8.0;
|
||||||
next.torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
||||||
next.torso.scale = Vec3::one();
|
next.torso.scale = Vec3::one() / 8.0;
|
||||||
|
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
pub mod alpha;
|
||||||
pub mod idle;
|
pub mod idle;
|
||||||
pub mod jump;
|
pub mod jump;
|
||||||
pub mod run;
|
pub mod run;
|
||||||
@ -5,7 +6,8 @@ pub mod wield;
|
|||||||
|
|
||||||
// Reexports
|
// Reexports
|
||||||
pub use self::{
|
pub use self::{
|
||||||
idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation, wield::WieldAnimation,
|
alpha::AlphaAnimation, idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation,
|
||||||
|
wield::WieldAnimation,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{make_bone, vek::*, Bone, FigureBoneData, Skeleton};
|
use super::{make_bone, vek::*, Bone, FigureBoneData, Skeleton};
|
||||||
@ -48,10 +50,10 @@ impl Skeleton for BipedLargeSkeleton {
|
|||||||
let upper_torso = Mat4::<f32>::from(self.upper_torso);
|
let upper_torso = Mat4::<f32>::from(self.upper_torso);
|
||||||
|
|
||||||
let torso_mat = base_mat * Mat4::<f32>::from(self.torso);
|
let torso_mat = base_mat * Mat4::<f32>::from(self.torso);
|
||||||
let control_mat = torso_mat * Mat4::<f32>::from(self.control) * upper_torso;
|
|
||||||
let upper_torso_mat = torso_mat * upper_torso;
|
let upper_torso_mat = torso_mat * upper_torso;
|
||||||
let lower_torso_mat = upper_torso_mat * Mat4::<f32>::from(self.lower_torso);
|
let lower_torso_mat = upper_torso_mat * Mat4::<f32>::from(self.lower_torso);
|
||||||
let head_mat = upper_torso_mat * Mat4::<f32>::from(self.head);
|
let head_mat = upper_torso_mat * Mat4::<f32>::from(self.head);
|
||||||
|
let control_mat = upper_torso_mat * Mat4::<f32>::from(self.control);
|
||||||
|
|
||||||
*(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [
|
*(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [
|
||||||
make_bone(head_mat),
|
make_bone(head_mat),
|
||||||
@ -115,10 +117,11 @@ impl Default for SkeletonAttr {
|
|||||||
|
|
||||||
impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr {
|
impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr {
|
||||||
fn from(body: &'a comp::biped_large::Body) -> Self {
|
fn from(body: &'a comp::biped_large::Body) -> Self {
|
||||||
use comp::biped_large::Species::*;
|
use comp::biped_large::{BodyType::*, Species::*};
|
||||||
Self {
|
Self {
|
||||||
head: match (body.species, body.body_type) {
|
head: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (3.0, 6.0),
|
(Ogre, Male) => (3.0, 9.0),
|
||||||
|
(Ogre, Female) => (1.0, 7.5),
|
||||||
(Cyclops, _) => (4.5, 7.5),
|
(Cyclops, _) => (4.5, 7.5),
|
||||||
(Wendigo, _) => (3.0, 13.5),
|
(Wendigo, _) => (3.0, 13.5),
|
||||||
(Troll, _) => (6.0, 10.0),
|
(Troll, _) => (6.0, 10.0),
|
||||||
@ -132,14 +135,16 @@ impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr {
|
|||||||
(Dullahan, _) => (0.0, 0.0),
|
(Dullahan, _) => (0.0, 0.0),
|
||||||
},
|
},
|
||||||
upper_torso: match (body.species, body.body_type) {
|
upper_torso: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (0.0, 19.0),
|
(Ogre, Male) => (0.0, 28.0),
|
||||||
|
(Ogre, Female) => (0.0, 28.0),
|
||||||
(Cyclops, _) => (-2.0, 27.0),
|
(Cyclops, _) => (-2.0, 27.0),
|
||||||
(Wendigo, _) => (-1.0, 29.0),
|
(Wendigo, _) => (-1.0, 29.0),
|
||||||
(Troll, _) => (-1.0, 27.5),
|
(Troll, _) => (-1.0, 27.5),
|
||||||
(Dullahan, _) => (0.0, 29.0),
|
(Dullahan, _) => (0.0, 29.0),
|
||||||
},
|
},
|
||||||
lower_torso: match (body.species, body.body_type) {
|
lower_torso: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (1.0, -5.5),
|
(Ogre, Male) => (1.0, -7.0),
|
||||||
|
(Ogre, Female) => (0.0, -6.0),
|
||||||
(Cyclops, _) => (1.0, -4.5),
|
(Cyclops, _) => (1.0, -4.5),
|
||||||
(Wendigo, _) => (-1.5, -6.0),
|
(Wendigo, _) => (-1.5, -6.0),
|
||||||
(Troll, _) => (1.0, -10.5),
|
(Troll, _) => (1.0, -10.5),
|
||||||
@ -153,28 +158,32 @@ impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr {
|
|||||||
(Dullahan, _) => (0.0, 0.0),
|
(Dullahan, _) => (0.0, 0.0),
|
||||||
},
|
},
|
||||||
shoulder: match (body.species, body.body_type) {
|
shoulder: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (6.1, 0.5, 2.5),
|
(Ogre, Male) => (12.0, 0.5, 0.0),
|
||||||
|
(Ogre, Female) => (8.0, 0.5, -1.0),
|
||||||
(Cyclops, _) => (9.5, 2.5, 2.5),
|
(Cyclops, _) => (9.5, 2.5, 2.5),
|
||||||
(Wendigo, _) => (9.0, 0.5, -0.5),
|
(Wendigo, _) => (9.0, 0.5, -0.5),
|
||||||
(Troll, _) => (11.0, 0.5, -1.5),
|
(Troll, _) => (11.0, 0.5, -1.5),
|
||||||
(Dullahan, _) => (14.0, 0.5, 4.5),
|
(Dullahan, _) => (14.0, 0.5, 4.5),
|
||||||
},
|
},
|
||||||
hand: match (body.species, body.body_type) {
|
hand: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (10.5, -1.0, -0.5),
|
(Ogre, Male) => (14.5, 0.0, -2.0),
|
||||||
|
(Ogre, Female) => (9.0, 0.5, -4.5),
|
||||||
(Cyclops, _) => (10.0, 2.0, -0.5),
|
(Cyclops, _) => (10.0, 2.0, -0.5),
|
||||||
(Wendigo, _) => (12.0, 0.0, -0.5),
|
(Wendigo, _) => (12.0, 0.0, -0.5),
|
||||||
(Troll, _) => (11.5, 0.0, -1.5),
|
(Troll, _) => (11.5, 0.0, -1.5),
|
||||||
(Dullahan, _) => (14.5, 0.0, -2.5),
|
(Dullahan, _) => (14.5, 0.0, -2.5),
|
||||||
},
|
},
|
||||||
leg: match (body.species, body.body_type) {
|
leg: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (0.0, 0.0, 0.0),
|
(Ogre, Male) => (0.0, 0.0, -4.0),
|
||||||
|
(Ogre, Female) => (0.0, 0.0, -2.0),
|
||||||
(Cyclops, _) => (0.0, 0.0, -5.0),
|
(Cyclops, _) => (0.0, 0.0, -5.0),
|
||||||
(Wendigo, _) => (2.0, 2.0, -2.5),
|
(Wendigo, _) => (2.0, 2.0, -2.5),
|
||||||
(Troll, _) => (5.0, 0.0, -6.0),
|
(Troll, _) => (5.0, 0.0, -6.0),
|
||||||
(Dullahan, _) => (0.0, 0.0, -5.0),
|
(Dullahan, _) => (0.0, 0.0, -5.0),
|
||||||
},
|
},
|
||||||
foot: match (body.species, body.body_type) {
|
foot: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (4.0, 2.5, 2.5),
|
(Ogre, Male) => (4.0, 2.5, 8.0),
|
||||||
|
(Ogre, Female) => (4.0, 0.5, 8.0),
|
||||||
(Cyclops, _) => (4.0, 0.5, 5.0),
|
(Cyclops, _) => (4.0, 0.5, 5.0),
|
||||||
(Wendigo, _) => (5.0, 0.5, 6.0),
|
(Wendigo, _) => (5.0, 0.5, 6.0),
|
||||||
(Troll, _) => (6.0, 0.5, 4.0),
|
(Troll, _) => (6.0, 0.5, 4.0),
|
||||||
|
@ -52,8 +52,6 @@ impl Animation for WieldAnimation {
|
|||||||
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32)))
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32)))
|
||||||
.sqrt())
|
.sqrt())
|
||||||
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin());
|
* ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin());
|
||||||
let footvertl = (anim_time as f32 * 16.0 * lab as f32).sin();
|
|
||||||
let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin();
|
|
||||||
|
|
||||||
let footrotl = (((5.0)
|
let footrotl = (((5.0)
|
||||||
/ (2.5
|
/ (2.5
|
||||||
@ -236,43 +234,6 @@ impl Animation for WieldAnimation {
|
|||||||
* Quaternion::rotation_z(footrotr * -0.1);
|
* Quaternion::rotation_z(footrotr * -0.1);
|
||||||
next.shoulder_r.scale = Vec3::one();
|
next.shoulder_r.scale = Vec3::one();
|
||||||
|
|
||||||
next.leg_l.position = Vec3::new(
|
|
||||||
-skeleton_attr.leg.0,
|
|
||||||
skeleton_attr.leg.1,
|
|
||||||
skeleton_attr.leg.2,
|
|
||||||
) * 0.98;
|
|
||||||
next.leg_l.orientation =
|
|
||||||
Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothoril * 0.3);
|
|
||||||
next.leg_l.scale = Vec3::one() * 0.98;
|
|
||||||
|
|
||||||
next.leg_r.position = Vec3::new(
|
|
||||||
skeleton_attr.leg.0,
|
|
||||||
skeleton_attr.leg.1,
|
|
||||||
skeleton_attr.leg.2,
|
|
||||||
) * 0.98;
|
|
||||||
|
|
||||||
next.leg_r.orientation =
|
|
||||||
Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothorir * 0.3);
|
|
||||||
next.leg_r.scale = Vec3::one() * 0.98;
|
|
||||||
|
|
||||||
next.foot_l.position = Vec3::new(
|
|
||||||
-skeleton_attr.foot.0,
|
|
||||||
4.0 + skeleton_attr.foot.1 + foothoril * 8.5,
|
|
||||||
skeleton_attr.foot.2 + ((footvertl * 6.5).max(0.0)),
|
|
||||||
) / 8.0;
|
|
||||||
next.foot_l.orientation =
|
|
||||||
Quaternion::rotation_x(-0.5 + footrotl * 0.85) * Quaternion::rotation_y(0.0);
|
|
||||||
next.foot_l.scale = Vec3::one() / 8.0;
|
|
||||||
|
|
||||||
next.foot_r.position = Vec3::new(
|
|
||||||
skeleton_attr.foot.0,
|
|
||||||
4.0 + skeleton_attr.foot.1 + foothorir * 8.5,
|
|
||||||
skeleton_attr.foot.2 + ((footvertr * 6.5).max(0.0)),
|
|
||||||
) / 8.0;
|
|
||||||
next.foot_r.orientation =
|
|
||||||
Quaternion::rotation_x(-0.5 + footrotr * 0.85) * Quaternion::rotation_y(0.0);
|
|
||||||
next.foot_r.scale = Vec3::one() / 8.0;
|
|
||||||
|
|
||||||
next.torso.position = Vec3::new(0.0, 0.0, 0.0) / 8.0;
|
next.torso.position = Vec3::new(0.0, 0.0, 0.0) / 8.0;
|
||||||
next.torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.25);
|
next.torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.25);
|
||||||
next.torso.scale = Vec3::one() / 8.0;
|
next.torso.scale = Vec3::one() / 8.0;
|
||||||
|
@ -1921,7 +1921,7 @@ impl FigureMgr {
|
|||||||
// In air
|
// In air
|
||||||
(false, _, false) => anim::biped_large::JumpAnimation::update_skeleton(
|
(false, _, false) => anim::biped_large::JumpAnimation::update_skeleton(
|
||||||
&BipedLargeSkeleton::default(),
|
&BipedLargeSkeleton::default(),
|
||||||
(vel.0.magnitude(), time),
|
time,
|
||||||
state.state_time,
|
state.state_time,
|
||||||
&mut state_animation_rate,
|
&mut state_animation_rate,
|
||||||
skeleton_attr,
|
skeleton_attr,
|
||||||
@ -1944,6 +1944,15 @@ impl FigureMgr {
|
|||||||
skeleton_attr,
|
skeleton_attr,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
CharacterState::BasicMelee(_) => {
|
||||||
|
anim::biped_large::AlphaAnimation::update_skeleton(
|
||||||
|
&target_base,
|
||||||
|
(vel.0.magnitude(), time),
|
||||||
|
state.state_time,
|
||||||
|
&mut state_animation_rate,
|
||||||
|
skeleton_attr,
|
||||||
|
)
|
||||||
|
},
|
||||||
// TODO!
|
// TODO!
|
||||||
_ => target_base,
|
_ => target_base,
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "veloren-world"
|
name = "veloren-world"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user