Результаты поиска
| |
Vip_and_Rip | Дата: Среда, 11 Июня 2014, 18:55 | Сообщение # 61 | Тема: Плесень |
почетный гость
Сейчас нет на сайте
| Была проблема с плесенью после установки новых окон (швы неплотно были заделаны, появилась сырость, и плесень на стенах). Помогло средство специальное, против плесени, в магазине хозяйственном брал... Вот названия, к сожалению, не помню.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Среда, 11 Июня 2014, 16:44 | Сообщение # 62 | Тема: RGM v4.47 + New Tool |
почетный гость
Сейчас нет на сайте
| Пятая уже в разработке Жду - не дождусь.
Надеюсь, к версии этак 20-й, они все-таки позволят использовать HD текстуры
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Среда, 11 Июня 2014, 16:45 |
|
| |
Vip_and_Rip | Дата: Пятница, 06 Июня 2014, 10:02 | Сообщение # 63 | Тема: Это возможно? |
почетный гость
Сейчас нет на сайте
| Честно говоря, лучше учить не яву, а шарп. Он немного посложнее, но Unity, по большей части, под него и заточен, да и на шарпе сделать можно гораздо большее, нежели на яве. По учебникам можно выучить (на C# их еще больше), но нельзя и о практике забывать. Сделать самому небольшой скриптик (или переписать чужой на свой лад, выучив переменные) гораздо полезнее, чем прочитать тонну мануалов.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Четверг, 05 Июня 2014, 18:35 | Сообщение # 64 | Тема: Трехмерная спрайт-графика |
почетный гость
Сейчас нет на сайте
| Всем спасибо, разобрался. Хотя делать игры такого рода на Unity - тот еще садизм...
Цитата Storm54 ( ) Накидал тебе класс билборда. Кстати, скрипт не работает. И стандартную плашку пробовал, и созданную в 3ds - никакой реакции.
Цитата Daly ( ) Если я не ошибаюсь, то на этой идеи построена игра (Генерал 4) Отнюдь. Примеры игр я уже привел - Arena, Daggerfall, Wolfenstein. То есть, с видом от первого лица и спрайтами заместо моделей.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Четверг, 05 Июня 2014, 18:35 |
|
| |
Vip_and_Rip | Дата: Воскресенье, 01 Июня 2014, 01:48 | Сообщение # 65 | Тема: Трехмерная спрайт-графика |
почетный гость
Сейчас нет на сайте
| falcoware, была такая идея, но показалась слишком уж примитивной. Искал более "изящные" способы решения этой проблемы
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Воскресенье, 01 Июня 2014, 00:08 | Сообщение # 66 | Тема: Работы новичков |
почетный гость
Сейчас нет на сайте
| Немного персонажной графики. Сгодится в качестве эскиза к какой-нибудь игре.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Воскресенье, 01 Июня 2014, 00:09 |
|
| |
Vip_and_Rip | Дата: Суббота, 31 Мая 2014, 23:42 | Сообщение # 67 | Тема: Трехмерная спрайт-графика |
почетный гость
Сейчас нет на сайте
| Надоело возиться с 3d моделям, и появилась идея создать трехмерную игру, но с полным спрайтовым окружением (включая мобов и оружие) - наподобие того, что было в первых 3d-играх, вроде Doom или TES Arena. Собственно, вопрос - реально-ли такое осуществить на Unity? Если реально, то хотелось бы увидеть хоть одно пособие или описание привязки спрайта к трехмерному миру. Ежели кто поможет или даст ссылку на нужную литературу\урок, буду благодарен.
robertono, на святое не покушаюсь, но графика планировалась такого технического плана: 3d, но спрайты.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Воскресенье, 01 Июня 2014, 01:41 |
|
| |
Vip_and_Rip | Дата: Четверг, 07 Июня 2012, 19:56 | Сообщение # 68 | Тема: На каком движке лучше всего сделать целую планету? |
почетный гость
Сейчас нет на сайте
| Quote (CrazyBrain) Можно взять Unity - прост в обращении и крайне не прихотлив в плане програмирования На Юньке я уже давно сижу, да вот только проблема, как описал Demeron - объекты такого масштаба она обрабатывает с трудом.
Хотя, конечно, можно попробовать импортировать модель из Max'а.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Четверг, 07 Июня 2012, 19:57 |
|
| |
Vip_and_Rip | Дата: Четверг, 07 Июня 2012, 19:24 | Сообщение # 69 | Тема: На каком движке лучше всего сделать целую планету? |
почетный гость
Сейчас нет на сайте
| Сразу скажу: планета - значит, огромный шарик, покрытый мутными текстурами воды и рельефа. Никаких детализированных моделей городов, NPC, баз и пр. и пр. Проблема в том, что этот самый шарик должен загружаться единовременно, и при этом быть действительно колоссальных, "планетарных", масштабов.
P.S, да, да, я лол, перепутал категорию. Модератор, если не трудно - будь человеком, перенеси в обсуждение движков!
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Четверг, 07 Июня 2012, 19:26 |
|
| |
Vip_and_Rip | Дата: Вторник, 05 Июня 2012, 10:43 | Сообщение # 70 | Тема: Как сделать реалистичную темноту? |
почетный гость
Сейчас нет на сайте
| Quote (Povstalez) Edit > Render Settings > Ambient Light Странно, что я раньше до этого не дошел... Если еще с текстурами освещения поиграть, то вообще все кошерно выходит.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Понедельник, 04 Июня 2012, 23:39 | Сообщение # 71 | Тема: Как сделать реалистичную темноту? |
почетный гость
Сейчас нет на сайте
| Уже дошел до середины работы со своим проектом, и ВНЕЗАПНО столкнулся с проблемой: как сделать реалистичное затемнение? Поскольку действие игры происходит в канализации, то и освещение должно быть соответствующим - фонарик ГГ и горящие бочки. Но при этом просто отключение главного источника света не дает никакого эффекта (все видно), и использование Fog "заглушает" любое освещение, в том числе и фонарик.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Суббота, 24 Марта 2012, 15:10 | Сообщение # 72 | Тема: Где скачать Unity3D 3.5?? |
почетный гость
Сейчас нет на сайте
| У меня бесплатная Free-версия, зарегистрированная. Ничего сложного, зато багов нет.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Суббота, 24 Марта 2012, 11:19 | Сообщение # 73 | Тема: Очень странная проблема (РЕШЕНО). |
почетный гость
Сейчас нет на сайте
| Все, проблема решена - дело было в расхождении оси между игроком и оружием (я его сначала выравнивал, а потом добавлял в перфеб, а нужно было наоборот). Всем спасибо, все свободны
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Суббота, 24 Марта 2012, 10:36 | Сообщение # 74 | Тема: Очень странная проблема (РЕШЕНО). |
почетный гость
Сейчас нет на сайте
| Скрипт стандартный, Unity'вский. (ThirdPersonController). Висит на родительском перфебе, т.е, и оружие от него тоже зависит.
Code // Require a character controller to be attached to the same game object @script RequireComponent(CharacterController)
public var idleAnimation : AnimationClip; public var walkAnimation : AnimationClip; public var runAnimation : AnimationClip; public var jumpPoseAnimation : AnimationClip;
public var walkMaxAnimationSpeed : float = 0.75; public var trotMaxAnimationSpeed : float = 1.0; public var runMaxAnimationSpeed : float = 1.0; public var jumpAnimationSpeed : float = 1.15; public var landAnimationSpeed : float = 1.0;
private var _animation : Animation;
enum CharacterState { Idle = 0, Walking = 1, Trotting = 2, Running = 3, Jumping = 4, }
private var _characterState : CharacterState;
// The speed when walking var walkSpeed = 2.0; // after trotAfterSeconds of walking we trot with trotSpeed var trotSpeed = 4.0; // when pressing "Fire3" button (cmd) we start running var runSpeed = 6.0;
var inAirControlAcceleration = 3.0;
// How high do we jump when pressing jump and letting go immediately var jumpHeight = 0.5;
// The gravity for the character var gravity = 20.0; // The gravity in controlled descent mode var speedSmoothing = 10.0; var rotateSpeed = 500.0; var trotAfterSeconds = 3.0;
var canJump = true;
private var jumpRepeatTime = 0.05; private var jumpTimeout = 0.15; private var groundedTimeout = 0.25;
// The camera doesnt start following the target immediately but waits for a split second to avoid too much waving around. private var lockCameraTimer = 0.0;
// The current move direction in x-z private var moveDirection = Vector3.zero; // The current vertical speed private var verticalSpeed = 0.0; // The current x-z move speed private var moveSpeed = 0.0;
// The last collision flags returned from controller.Move private var collisionFlags : CollisionFlags;
// Are we jumping? (Initiated with jump button and not grounded yet) private var jumping = false; private var jumpingReachedApex = false;
// Are we moving backwards (This locks the camera to not do a 180 degree spin) private var movingBack = false; // Is the user pressing any keys? private var isMoving = false; // When did the user start walking (Used for going into trot after a while) private var walkTimeStart = 0.0; // Last time the jump button was clicked down private var lastJumpButtonTime = -10.0; // Last time we performed a jump private var lastJumpTime = -1.0;
// the height we jumped from (Used to determine for how long to apply extra jump power after jumping.) private var lastJumpStartHeight = 0.0;
private var inAirVelocity = Vector3.zero;
private var lastGroundedTime = 0.0;
private var isControllable = true;
function Awake () { moveDirection = transform.TransformDirection(Vector3.forward); _animation = GetComponent(Animation); if(!_animation) Debug.Log("The character you would like to control doesn't have animations. Moving her might look weird."); /* public var idleAnimation : AnimationClip; public var walkAnimation : AnimationClip; public var runAnimation : AnimationClip; public var jumpPoseAnimation : AnimationClip; */ if(!idleAnimation) { _animation = null; Debug.Log("No idle animation found. Turning off animations."); } if(!walkAnimation) { _animation = null; Debug.Log("No walk animation found. Turning off animations."); } if(!runAnimation) { _animation = null; Debug.Log("No run animation found. Turning off animations."); } if(!jumpPoseAnimation && canJump) { _animation = null; Debug.Log("No jump animation found and the character has canJump enabled. Turning off animations."); } }
function UpdateSmoothedMovementDirection () { var cameraTransform = Camera.main.transform; var grounded = IsGrounded(); // Forward vector relative to the camera along the x-z plane var forward = cameraTransform.TransformDirection(Vector3.forward); forward.y = 0; forward = forward.normalized;
// Right vector relative to the camera // Always orthogonal to the forward vector var right = Vector3(forward.z, 0, -forward.x);
var v = Input.GetAxisRaw("Vertical"); var h = Input.GetAxisRaw("Horizontal");
// Are we moving backwards or looking backwards if (v < -0.2) movingBack = true; else movingBack = false; var wasMoving = isMoving; isMoving = Mathf.Abs (h) > 0.1 || Mathf.Abs (v) > 0.1; // Target direction relative to the camera var targetDirection = h * right + v * forward; // Grounded controls if (grounded) { // Lock camera for short period when transitioning moving & standing still lockCameraTimer += Time.deltaTime; if (isMoving != wasMoving) lockCameraTimer = 0.0;
// We store speed and direction seperately, // so that when the character stands still we still have a valid forward direction // moveDirection is always normalized, and we only update it if there is user input. if (targetDirection != Vector3.zero) { // If we are really slow, just snap to the target direction if (moveSpeed < walkSpeed * 0.9 && grounded) { moveDirection = targetDirection.normalized; } // Otherwise smoothly turn towards it else { moveDirection = Vector3.RotateTowards(moveDirection, targetDirection, rotateSpeed * Mathf.Deg2Rad * Time.deltaTime, 1000); moveDirection = moveDirection.normalized; } } // Smooth the speed based on the current target direction var curSmooth = speedSmoothing * Time.deltaTime; // Choose target speed //* We want to support analog input but make sure you cant walk faster diagonally than just forward or sideways var targetSpeed = Mathf.Min(targetDirection.magnitude, 1.0); _characterState = CharacterState.Idle; // Pick speed modifier if (Input.GetKey (KeyCode.LeftShift) | Input.GetKey (KeyCode.RightShift)) { targetSpeed *= runSpeed; _characterState = CharacterState.Running; } else if (Time.time - trotAfterSeconds > walkTimeStart) { targetSpeed *= trotSpeed; _characterState = CharacterState.Trotting; } else { targetSpeed *= walkSpeed; _characterState = CharacterState.Walking; } moveSpeed = Mathf.Lerp(moveSpeed, targetSpeed, curSmooth); // Reset walk time start when we slow down if (moveSpeed < walkSpeed * 0.3) walkTimeStart = Time.time; } // In air controls else { // Lock camera while in air if (jumping) lockCameraTimer = 0.0;
if (isMoving) inAirVelocity += targetDirection.normalized * Time.deltaTime * inAirControlAcceleration; }
}
function ApplyJumping () { // Prevent jumping too fast after each other if (lastJumpTime + jumpRepeatTime > Time.time) return;
if (IsGrounded()) { // Jump // - Only when pressing the button down // - With a timeout so you can press the button slightly before landing if (canJump && Time.time < lastJumpButtonTime + jumpTimeout) { verticalSpeed = CalculateJumpVerticalSpeed (jumpHeight); SendMessage("DidJump", SendMessageOptions.DontRequireReceiver); } } }
function ApplyGravity () { if (isControllable) // don't move player at all if not controllable. { // Apply gravity var jumpButton = Input.GetButton("Jump"); // When we reach the apex of the jump we send out a message if (jumping && !jumpingReachedApex && verticalSpeed <= 0.0) { jumpingReachedApex = true; SendMessage("DidJumpReachApex", SendMessageOptions.DontRequireReceiver); } if (IsGrounded ()) verticalSpeed = 0.0; else verticalSpeed -= gravity * Time.deltaTime; } }
function CalculateJumpVerticalSpeed (targetJumpHeight : float) { // From the jump height and gravity we deduce the upwards speed // for the character to reach at the apex. return Mathf.Sqrt(2 * targetJumpHeight * gravity); }
function DidJump () { jumping = true; jumpingReachedApex = false; lastJumpTime = Time.time; lastJumpStartHeight = transform.position.y; lastJumpButtonTime = -10; _characterState = CharacterState.Jumping; }
function Update() { if (!isControllable) { // kill all inputs if not controllable. Input.ResetInputAxes(); }
if (Input.GetButtonDown ("Jump")) { lastJumpButtonTime = Time.time; }
UpdateSmoothedMovementDirection(); // Apply gravity // - extra power jump modifies gravity // - controlledDescent mode modifies gravity ApplyGravity ();
// Apply jumping logic ApplyJumping (); // Calculate actual motion var movement = moveDirection * moveSpeed + Vector3 (0, verticalSpeed, 0) + inAirVelocity; movement *= Time.deltaTime; // Move the controller var controller : CharacterController = GetComponent(CharacterController); collisionFlags = controller.Move(movement); // ANIMATION sector if(_animation) { if(_characterState == CharacterState.Jumping) { if(!jumpingReachedApex) { _animation[jumpPoseAnimation.name].speed = jumpAnimationSpeed; _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever; _animation.CrossFade(jumpPoseAnimation.name); } else { _animation[jumpPoseAnimation.name].speed = -landAnimationSpeed; _animation[jumpPoseAnimation.name].wrapMode = WrapMode.ClampForever; _animation.CrossFade(jumpPoseAnimation.name); } } else { if(controller.velocity.sqrMagnitude < 0.1) { _animation.CrossFade(idleAnimation.name); } else { if(_characterState == CharacterState.Running) { _animation[runAnimation.name].speed = Mathf.Clamp(controller.velocity.magnitude, 0.0, runMaxAnimationSpeed); _animation.CrossFade(runAnimation.name); } else if(_characterState == CharacterState.Trotting) { _animation[walkAnimation.name].speed = Mathf.Clamp(controller.velocity.magnitude, 0.0, trotMaxAnimationSpeed); _animation.CrossFade(walkAnimation.name); } else if(_characterState == CharacterState.Walking) { _animation[walkAnimation.name].speed = Mathf.Clamp(controller.velocity.magnitude, 0.0, walkMaxAnimationSpeed); _animation.CrossFade(walkAnimation.name); } } } } // ANIMATION sector // Set rotation to the move direction if (IsGrounded()) { transform.rotation = Quaternion.LookRotation(moveDirection); } else { var xzMove = movement; xzMove.y = 0; if (xzMove.sqrMagnitude > 0.001) { transform.rotation = Quaternion.LookRotation(xzMove); } } // We are in jump mode but just became grounded if (IsGrounded()) { lastGroundedTime = Time.time; inAirVelocity = Vector3.zero; if (jumping) { jumping = false; SendMessage("DidLand", SendMessageOptions.DontRequireReceiver); } } }
function OnControllerColliderHit (hit : ControllerColliderHit ) { // Debug.DrawRay(hit.point, hit.normal); if (hit.moveDirection.y > 0.01) return; }
function GetSpeed () { return moveSpeed; }
function IsJumping () { return jumping; }
function IsGrounded () { return (collisionFlags & CollisionFlags.CollidedBelow) != 0; }
function GetDirection () { return moveDirection; }
function IsMovingBackwards () { return movingBack; }
function GetLockCameraTimer () { return lockCameraTimer; }
function IsMoving () : boolean { return Mathf.Abs(Input.GetAxisRaw("Vertical")) + Mathf.Abs(Input.GetAxisRaw("Horizontal")) > 0.5; }
function HasJumpReachedApex () { return jumpingReachedApex; }
function IsGroundedWithTimeout () { return lastGroundedTime + groundedTimeout > Time.time; }
function Reset () { gameObject.tag = "Player"; }
При повороте оружия на 90' по оси Y все приходит в норму.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Суббота, 24 Марта 2012, 10:38 |
|
| |
Vip_and_Rip | Дата: Пятница, 23 Марта 2012, 23:01 | Сообщение # 75 | Тема: Очень странная проблема (РЕШЕНО). |
почетный гость
Сейчас нет на сайте
| При движение игрока (от третьего лица), его начинает "сносить" в сторону, как будто нарушена система координат (хотя все выставлено). Появилась эта проблема после прикреплению к персу оружия (тоже с настроенными координатами). Определенно, дело в координатах, и в оружие, но как именно - без понятия. Есть идеи, что-бы это могло быть?
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Суббота, 24 Марта 2012, 11:20 |
|
| |
Vip_and_Rip | Дата: Пятница, 16 Марта 2012, 23:39 | Сообщение # 76 | Тема: Что не так в скрипте? (РЕШЕНО) |
почетный гость
Сейчас нет на сайте
| А хотя нет, все заработало. Для тех, кто столкнется с этой-же вопиющей несправедливостью по отношению к переменной "impact", делаем следующим образом: Code function Update () { if (Input.GetButton ("Fire1")) // вызываем ее кликом мыши animation.Play("Имя вашей анимации"); //что надо проиграть. } А затем в разделе "Animation" модельки выбираем нужную анимацию (ту, что указана в скрипте) и снимаем отметку с "Play Automatically". Готово.Добавлено (16.03.2012, 23:39) ---------------------------------------------
Quote (Nekit_Aut) var impact : AnimationClip; function Start(){
animation.AddClip(impact, "impact");
}
function Update () { if (Input.GetButton ("Fire1")) animation.CrossFade("impact"); // Можно использовать ещё и animation.CrossFade(); Можно и с Play, но... Поясняю: Play - анимация без смешивания, а CrossFade - со смешиванием Спасибо, но уже сам разобрался.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Пятница, 16 Марта 2012, 23:30 | Сообщение # 77 | Тема: Что не так в скрипте? (РЕШЕНО) |
почетный гость
Сейчас нет на сайте
| Code var impact : AnimationClip; //выбираем анимацию
function Update () { if (Input.GetButton ("Fire1")) // вызываем ее кликом мыши animation.Play(impact); //проигрываем
}
А в ответ: Code Assets/AnimationShot.js(5,22): BCE0023: No appropriate version of 'UnityEngine.Animation.Play' for the argument list '(UnityEngine.AnimationClip)' was found. Из ошибки видно, что "не назначен клип". Но для этого задана функция var impact. Танцы с бубном вокруг имени анимации ( animation.Play("name")) тоже окончились провалом.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Пятница, 16 Марта 2012, 23:39 |
|
| |
Vip_and_Rip | Дата: Пятница, 16 Марта 2012, 22:12 | Сообщение # 78 | Тема: Ищу движок для java игр |
почетный гость
Сейчас нет на сайте
| Позырь на этом сайте в разделе "java": Java, там полно этих движков.
Больше никогда не буду делать игры.
Сообщение отредактировал Vip_and_Rip - Пятница, 16 Марта 2012, 22:13 |
|
| |
Vip_and_Rip | Дата: Пятница, 16 Марта 2012, 19:25 | Сообщение # 79 | Тема: Как узнать, что объект уничтожен? |
почетный гость
Сейчас нет на сайте
| Все оказалось куда проще: Code var impact : AudioClip;
function OnDestroy () {
audio.PlayOneShot(impact);
} Только теперь другая проблема: объект исчезает вместе с источником звука.
Больше никогда не буду делать игры.
|
|
| |
Vip_and_Rip | Дата: Пятница, 16 Марта 2012, 16:00 | Сообщение # 80 | Тема: Как узнать, что объект уничтожен? |
почетный гость
Сейчас нет на сайте
| Есть скрипт: Code var impact : AudioClip; //выбираем звук
function Update() {
if (Destroy (GameObject)) // проверяем, уничтожен-ли объект
audio.PlayOneShot(impact); // проигрываем звук
} Цель достаточно банальна - воспроизвести аудиоклип после уничтожения объекта. Понятное дело, что он не работает по причине этого самого "if destroy". Какая переменная отвечает за проверку дестроя?
Больше никогда не буду делать игры.
|
|
| |
|