ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» UE4 | страница 2 |
|
|
|
Канал Игры Мечты: «UE4» |
|
|
Clanfear
635 EGP
    Репутация: 142 Сообщения: 4647 Откуда: Default City Зарегистрирован: 08.07.2006
 |
|
хз сюда вопрос или нет, но раз уж тема есть...
использую Epic Games Launcher для доступа к ARK дев киту, соответственно UE4, всё в целом работает, одна проблема - всё жутко медленное, нереально долгая загрузка дев кита, большое время отклика всяких менюшек (даже переключение закладок самого ланчера), долгие подгрузки копеечных файлов в процессе, долгий кукинг мода... что то мне подсказывает, что так быть не должно и где то зарылась трабла
винты вроде не тормознутые, оперы 12 гигов, на фоне ничего тяжелого не работает
_________________ TITS OR GTFO |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Clanfear : |
к ARK дев киту
|
Ни разу не использовал, но что-то мне подсказывает, что там это реализовано в виде upack файла (как и плагины). Т.е. при включении каждый раз он разворачивается (либо разворачивается кусками по необходимости). А кукинг у UE всегда долгий был.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Clanfear
635 EGP
    Репутация: 142 Сообщения: 4647 Откуда: Default City Зарегистрирован: 08.07.2006
 |
|
хм, значит получается без варинтов, печаль
а еще такой вопрос - можно как то дев кит на другой диск перетащить?
т.е. где прописать новые пути к этому делу, чтоб он без проблем их скушал
один винт есть чуть по шустрей, хочу попробовать его, но перекачивать 60+ гигов дев кита как то не очень, в ланчере настроек нет, в реестре ничего не нашел, конфиги где то?
з.ы. пробовал тупо перекидывать папки, делать новую установку ланчера и подкидывать ему кит, но в любом случае начинает качать с нуля при проверки
_________________ TITS OR GTFO
Последний раз редактировалось: Clanfear (11:48 17-06-2016), всего редактировалось 1 раз |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ты поищи сначала файл. Если я прав и он представлен паком, то ты его можешь распаковать через консольный UnrealPack.exe и заюзать в проекте на нативном UnrealEngine.
Есть утилита в Engine/Binaries/Win64
Называется UnrealVersionSelector-Win64-Shipping. При запуске генерериует ключи реестра и устанавливает директорию, в которой она находится рабочей.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (12:46 17-06-2016), всего редактировалось 3 раз(а) |
|
|
Clanfear
635 EGP
    Репутация: 142 Сообщения: 4647 Откуда: Default City Зарегистрирован: 08.07.2006
 |
|
дев кит то? там точно не пак, структура как у установленной игры, все файлы не запакованной кучей по своим папкам
сейчас пока на работе, вечером попробую еще покапаться и потыкать экзешники
_________________ TITS OR GTFO |
|
|
Clanfear
635 EGP
    Репутация: 142 Сообщения: 4647 Откуда: Default City Зарегистрирован: 08.07.2006
 |
|
нашел среди бинарников дев кита UnrealVersionSelector (как раз \Epic Games\ARKDevKit\Engine\Binaries\Win64), он вроде как подтвердил, в реестр записал, но ланчер все так же пытается выкачать 69 гигов причем качает он по старому пути, не смотря на то, что я сделал полное удаление и установил ланчер на другой диск
нашел какой то батник который запускает дев кит напрямую, без ланчера, так то работает, но к сожалению не выход, потому как обновление идет похоже только через ланчер, а разрабы выпускают новые версии через день если не чаще
_________________ TITS OR GTFO |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Господа, тут вопрос появился. Скажите, пожалуйста, кто-нибудь делал оверайд на класс UParticleModule ? Почему-то не удается задать координаты частицам индивидуально через функцию Spawn и структуру FBaseParticle. Максимум, что удалось получить, что оно работает при первом запуске. При втором спавне, если инстанция движка не менялась, координаты игнорируются.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Понемногу пытаюсь сам разобраться с UE4, пока перевес в этой борьбе не в мою пользу. Вот на основе учебного примера заготовка для проекта UEF. https://yadi.sk/d/Sz2kR2dY3NFTUw
Пока стоит задача сделать редактор космических станций и кораблей из модулей, более подробно расписал здесь: https://uengine.ru/forum/viewtopic.php?f=2&t=11067&start=10
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (08:42 27-09-2017), всего редактировалось 1 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Zachesa : |
Вот на основе учебного примера заготовка для проекта UEF
|
Ты бы хоть скриншоты выложил, а то как запустить - непонятно
|
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
БулерМэн : |
Ты бы хоть скриншоты выложил, а то как запустить - непонятно
|
Чтоб запустить надо поставить лаунчер UE4 https://www.unrealengine.com/en-US/what-is-unreal-engine-4 (потребуется регистрация). Через лаунчер можно будет установить последнюю версию движка, а также различный дополнительный контент (много интересного есть бесплатно). Далее в папке "мои документы" найдите папку с проектами Unreal Projects, куда можно закинуть эту заготовку. Впрочем после установки движка проект сможет открываться из любого места на диске.
После запуска редактора, внизу вы увидите окно браузера ресурсов, в папке Maps открыть уровень SpaceMap, а вверху редактора есть треугольник плеера, через который запускается открытый уровень.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Лучше юзай хабовскую версию. Там функционала поболее будет, чем в бинарной.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
ТехноМаг : |
Лучше юзай хабовскую версию. Там функционала поболее будет, чем в бинарной.
|
Потом да, так и думал сделать, когда получше разберусь со структурой и базовой функциональностью движка. Кстати на Githab есть дополнение, чтоб использовать Python https://github.com/20tab/UnrealEnginePython
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Zachesa : |
Кстати на Githab есть дополнение
|
Ох. Любой скриптовый движок прикрутить модулем можешь ты. Если не понятно, спроси меня как. Но опять же это лишь дополнительные сложности при сборке контента, ибо это все придется завязывать на актеров.
В готовом модуле это естно уже сделано, но какие костыли при этом использовались одному Ктулху известно. Поэтому прежде чем ставить какой-либо модуль от третьих лиц, советую покурить исходники.
Конкретно по примеру: Быстрый просмотр Makefile (в UE это NAME.Build.cs и NAMETargetName.Target.cs) показал, что он использует не builtin версию, а установленную самостоятельно (причем по дефолтному пути), а это черевато тем, что работать проект будет по разному, в зависимости от того, какой Питон был поставлен.
Более правильно было бы предсобрать либу в ThirdParty и написать cs как модуль (но это уже IMHO)
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Не получается сделать сохранение
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
добавлено спустя 5 минут:
Такое впечатление, что выполнение скрипта обрывается при чём каждый раз по разному.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (15:35 18-10-2017), всего редактировалось 3 раз(а) |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
убери скрины под спойлер нафиг
Смотри как это работает (малина в последнем кате):
SaveGameSystem.h (кликните здесь для просмотра)
Код: |
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "HAL/FileManager.h"
#include "Misc/FileHelper.h"
#include "Misc/Paths.h"
/**
* Interface for platform feature modules
*/
/** Defines the interface to platform's save game system (or a generic file based one) */
class ISaveGameSystem
{
public:
// Possible result codes when using DoesSaveGameExist.
// Not all codes are guaranteed to be returned on all platforms.
enum class ESaveExistsResult
{
OK, // Operation on the file completely successfully.
DoesNotExist, // Operation on the file failed, because the file was not found / does not exist.
Corrupt, // Operation on the file failed, because the file was corrupt.
UnspecifiedError // Operation on the file failed due to an unspecified error.
};
/** Returns true if the platform has a native UI (like many consoles) */
virtual bool PlatformHasNativeUI() = 0;
/** Return true if the named savegame exists (probably not useful with NativeUI */
virtual bool DoesSaveGameExist(const TCHAR* Name, const int32 UserIndex) = 0;
/** Similar to DoesSaveGameExist, except returns a result code with more information. */
virtual ESaveExistsResult DoesSaveGameExistWithResult(const TCHAR* Name, const int32 UserIndex) = 0;
/** Saves the game, blocking until complete. Platform may use FGameDelegates to get more information from the game */
virtual bool SaveGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex, const TArray<uint8>& Data) = 0;
/** Loads the game, blocking until complete */
virtual bool LoadGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex, TArray<uint8>& Data) = 0;
/** Delete an existing save game, blocking until complete */
virtual bool DeleteGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex) = 0;
};
/** A generic save game system that just uses IFileManager to save/load with normal files */
class FGenericSaveGameSystem : public ISaveGameSystem
{
public:
virtual bool PlatformHasNativeUI() override
{
return false;
}
virtual ESaveExistsResult DoesSaveGameExistWithResult(const TCHAR* Name, const int32 UserIndex) override
{
if (IFileManager::Get().FileSize(*GetSaveGamePath(Name)) >= 0)
{
return ESaveExistsResult::OK;
}
return ESaveExistsResult::DoesNotExist;
}
virtual bool DoesSaveGameExist(const TCHAR* Name, const int32 UserIndex) override
{
return ESaveExistsResult::OK == DoesSaveGameExistWithResult(Name, UserIndex);
}
virtual bool SaveGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex, const TArray<uint8>& Data) override
{
return FFileHelper::SaveArrayToFile(Data, *GetSaveGamePath(Name));
}
virtual bool LoadGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex, TArray<uint8>& Data) override
{
return FFileHelper::LoadFileToArray(Data, *GetSaveGamePath(Name));
}
virtual bool DeleteGame(bool bAttemptToUseUI, const TCHAR* Name, const int32 UserIndex) override
{
return IFileManager::Get().Delete(*GetSaveGamePath(Name), true, false, !bAttemptToUseUI);
}
protected:
/** Get the path to save game file for the given name, a platform _may_ be able to simply override this and no other functions above */
virtual FString GetSaveGamePath(const TCHAR* Name)
{
return FString::Printf(TEXT("%sSaveGames/%s.sav"), *FPaths::GameSavedDir(), Name);
}
}; |
|
SaveGame.h (кликните здесь для просмотра)
Код: |
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "SaveGame.generated.h"
/**
* This class acts as a base class for a save game object that can be used to save state about the game.
* When you create your own save game subclass, you would add member variables for the information that you want to save.
* Then when you want to save a game, create an instance of this object using CreateSaveGameObject, fill in the data, and use SaveGameToSlot, providing a slot name.
* To load the game you then just use LoadGameFromSlot, and read the data from the resulting object.
*
* @see https://docs.unrealengine.com/latest/INT/Gameplay/SaveGame
*/
UCLASS(abstract, Blueprintable, BlueprintType)
class ENGINE_API USaveGame : public UObject
{
/**
* @see UGameplayStatics::CreateSaveGameObject
* @see UGameplayStatics::SaveGameToSlot
* @see UGameplayStatics::DoesSaveGameExist
* @see UGameplayStatics::LoadGameFromSlot
* @see UGameplayStatics::DeleteGameInSlot
*/
GENERATED_UCLASS_BODY()
}; |
|
GameplayStatics.cpp (кликните здесь для просмотра)
Код: |
bool UGameplayStatics::SaveGameToSlot(USaveGame* SaveGameObject, const FString& SlotName, const int32 UserIndex)
{
ISaveGameSystem* SaveSystem = IPlatformFeaturesModule::Get().GetSaveGameSystem();
// If we have a system and an object to save and a save name...
if(SaveSystem && SaveGameObject && (SlotName.Len() > 0))
{
TArray<uint8> ObjectBytes;
FMemoryWriter MemoryWriter(ObjectBytes, true);
// write file type tag. identifies this file type and indicates it's using proper versioning
// since older UE4 versions did not version this data.
int32 FileTypeTag = UE4_SAVEGAME_FILE_TYPE_TAG;
MemoryWriter << FileTypeTag;
// Write version for this file format
int32 SavegameFileVersion = FSaveGameFileVersion::LatestVersion;
MemoryWriter << SavegameFileVersion;
// Write out engine and UE4 version information
int32 PackageFileUE4Version = GPackageFileUE4Version;
MemoryWriter << PackageFileUE4Version;
FEngineVersion SavedEngineVersion = FEngineVersion::Current();
MemoryWriter << SavedEngineVersion;
// Write out custom version data
ECustomVersionSerializationFormat::Type const CustomVersionFormat = ECustomVersionSerializationFormat::Latest;
int32 CustomVersionFormatInt = static_cast<int32>(CustomVersionFormat);
MemoryWriter << CustomVersionFormatInt;
FCustomVersionContainer CustomVersions = FCustomVersionContainer::GetRegistered();
CustomVersions.Serialize(MemoryWriter, CustomVersionFormat);
// Write the class name so we know what class to load to
FString SaveGameClassName = SaveGameObject->GetClass()->GetName();
MemoryWriter << SaveGameClassName;
// Then save the object state, replacing object refs and names with strings
FObjectAndNameAsStringProxyArchive Ar(MemoryWriter, false);
SaveGameObject->Serialize(Ar);
// Stuff that data into the save system with the desired file name
return SaveSystem->SaveGame(false, *SlotName, UserIndex, ObjectBytes);
}
return false;
}
} |
|
Теперь по делу:
Проверь, задается ли у тебя где-нибудь SlotName. Это переменная, которая является именем файла, куда все это бобро и будет писаться. Если оно не задано, то функция просто не выполнится.
Ну и поставь проверку на выходе блока SaveToSlot.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (12:25 18-10-2017), всего редактировалось 14 раз(а) |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Слот задаётся, запись то в некоторых случаях срабатывает.
На счёт проверки, хорошо попробую добавить.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Если не разберешься, проектик собери куда-нить. Я после 21:0 Мск гляну. Но вообще, конечно, странно что не брякает в этом случае.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Посмотрел. Либо я что-то ни так делаю, либо все работает. 10 сохранений из 10и попыток 3кб файл с именем Space10.
ADD:
НО! У меня отсутствовала пара блюпринтов, ибо на хабовскую версию нельзя поставить плагины через маркет. В общем надо дебажить как тогда, со сборкой.
Тестил я, добавив в евент OnBeginPlay на карте Space принудительный вывод UI паузы и оттуда тестил. Т.ч. возможно в плагинах что-то не так, но это не точно - мне не проверить.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей."
Последний раз редактировалось: ТехноМаг (23:01 18-10-2017), всего редактировалось 4 раз(а) |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
А что ты сохраняешь? Тут же важно сохранить, то что построено, а не сам факт создания файла сохранения.
Вот копирую, чтоб не отправлять на сайт.
Цитата: |
Техническое демо, где можно полетать немного по космосу и построить космическую станцию, выбирая блоки из виджета кнопка «С» и ставить их сколько хочешь, вращая в одной плоскости колёсиком мыши, перемещая управляя кораблём ADWS(QE), клик установка (правый клик отмена). На «V» удалить ненужный блок. Ускорение левый контрл (назад) и шифт, на пробел быстро вперёд.
|
То есть надо удалить те блоки которые уже поставлены для примера, они то в файл сохранения и так попадают, и поставить несколько новых блоков.
Плагины фактически во всём этом не участвуют. Один (для управления дронами) я так и не задействовал, а Substance используется для "пылания" солнца.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
ТехноМаг
360 EGP
     Рейтинг канала: 2(19) Репутация: 93 Сообщения: 2516 Откуда: Кронштадт Зарегистрирован: 09.04.2007
 |
|
Ога... ок еще вечером сегодня поковыряю.
_________________ (Л)"Алекс, я живу уже почти 200 лет. но как видишь, выгляжу я всего на 20. И это не единственное отличие меня от людей." |
|
|
|
|
|
Канал Игры Мечты: «UE4» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: У каждого человека есть одна маленькая, сморщенная вещь. Коричневого цвета. Блин, забыл, как она называется.......о, вспомнил! Изюминка! (fox68)
|
» UE4 | страница 2 |
|