Refine Lancet silhouette with swept X wings
Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -176,7 +176,7 @@ be87037b84cd45b2c53d7fde6653f51769e782eea1b8586383afcfababf19ab6 assets/airdef/
|
||||
be9eb1389e169a76732f16e604499260b147b524b4c929d2a4e77b580a032fb7 assets/airdef/models/block/kh101.json
|
||||
ea7c9af888f1285502b2ca51114f226573311be6fb90b8d449b9f75cfbb6b885 assets/airdef/models/block/kh22.json
|
||||
7b73015e33d85d4cef31660ef874ba8dcd6e07ae3a95416d0ead1d325bd0cb6c assets/airdef/models/block/kinzhal.json
|
||||
911e55de28058e1723a61d15de80676789e57ab15bfc09fd75757cc85095fbcb assets/airdef/models/block/lancet.json
|
||||
69135e90a1a7fb21d9f47b1854c5a3648e296136c2375acd9db5a48b0ad40887 assets/airdef/models/block/lancet.json
|
||||
15c9884ce51311cf4b9b9d106e142e33d72c5ba18dc9236c5b51da01232f8e44 assets/airdef/models/block/launch_ramp.json
|
||||
159fa5e3b6a096a1872dec2a550bfa30575d57519654a860607e20dab8f35f53 assets/airdef/models/block/launcher_truck.json
|
||||
2069198ba24a932816f504fb52f53dc4bc740cacaf45637698a17d9175da851c assets/airdef/models/block/m48n6.json
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
# Модель «Ланцета» (#115)
|
||||
|
||||
Промежуточная игровая стилизация: у двух Х-образных пар крыльев появились ступенчатые стреловидные кромки, нос стал более плавным, добавлены небольшие детали корпуса. Положение винта и идентификатор модели сохранены. Модель состоит из 49 элементов вместо 17; влияние на производительность массового сценария не измерено.
|
||||
|
||||
Редактируемый источник — `airdef-mod/source-assets/assets/airdef/models/block/lancet.json`. Его можно переэкспортировать командой `python3 tools/aircraft_models.py`, затем установить ресурсы и пересчитать габариты командой `python3 tools/gen_models.py`.
|
||||
|
||||
Модель проверена как статичный блок в изолированном мире Horizon с двух ракурсов. Ракурсы показывают силуэт и нос, но кадры слишком тёмные для полноценной оценки поверхностей; полёт, анимация и массовая производительность не проверены. Художественная приёмка крупного плана остаётся открытой.
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Export authored aircraft silhouettes; run gen_models.py after editing."""
|
||||
import math
|
||||
import gen_models as g
|
||||
from pilot_models import export
|
||||
|
||||
|
||||
def lancet():
|
||||
# Keep the former fuselage length, two X-wing stations and propeller origin.
|
||||
p = g.ogive(-16, -10, 2.0, "lancet", 4) + g.oct_z(-10, 20, 2.0, "lancet")
|
||||
p += [g.B(-1.2, 5.2, -14, 1.2, 6.4, -9, "bare_lamp"),
|
||||
g.B(-0.8, 5.05, -13.4, 0.8, 5.2, -10, "dark_metal"),
|
||||
g.B(-0.8, 9.9, -6, 0.8, 10.1, 5, "dark_metal")]
|
||||
# Individual short diagonal panels approximate swept wings while keeping the
|
||||
# former maximum span. Each piece rotates around its own centre.
|
||||
for z0, z1, span in [(-5, 1, 13), (12, 18, 11)]:
|
||||
for sign_x in (-1, 1):
|
||||
for sign_y in (-1, 1):
|
||||
angle = 45 * sign_x * sign_y
|
||||
for i in range(4):
|
||||
lo, hi = span * i / 4, span * (i + 1) / 4
|
||||
mid = (lo + hi) / (2 * math.sqrt(2))
|
||||
half = (hi - lo) / 2 + .08
|
||||
sweep = (i / 4) * 2.0
|
||||
p.append(g.B(sign_x * mid - half, 8 + sign_y * mid - .22, z0 + sweep,
|
||||
sign_x * mid + half, 8 + sign_y * mid + .22, z1 - .5 * sweep,
|
||||
"lancet", rot=("z", angle)))
|
||||
p += g.oct_z(20, 24, 1.5, "dark_metal")
|
||||
p += [g.B(-5, 7.85, 24, 5, 8.15, 24.5, "prop"),
|
||||
g.B(-.15, 3, 24, .15, 13, 24.5, "prop")]
|
||||
return p
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parts = lancet()
|
||||
export("lancet", parts)
|
||||
print("lancet", len(parts), "elements")
|
||||
Reference in New Issue
Block a user