2016年3月6日日曜日

UE4.x XMLのテスト1

プロジェクト名.Build.cs
PublicDependencyModuleNames に XmlParser を追加してビルド
プロジェクト設定/パッケージ化の Additional Non-Asset Directories to Packageに
Content/ThirdPerson/TextFiles を追加した
XMLのパーステスト

#include "XmlParser.h" // <- 追加

// OpenStreetMapのxmlファイルを読み込んでパースするテスト
// TestXml1(TEXT("Content/ThirdPerson/TextFiles/map_0001.osm"));
void TestXml1(const FString& path)
{
 UE_LOG(LogTemp, Display, TEXT("FPaths::GameDir() %s"), *FPaths::GameDir());

 FXmlFile xmlFile;
 xmlFile.LoadFile(FPaths::GameDir() + path);

 FXmlNode* pRoot = xmlFile.GetRootNode();
 if(!pRoot)
 {
  UE_LOG(LogTemp, Error, TEXT("%s RootNode not found"), *path);
  return;
 }

 UE_LOG(LogTemp, Display, TEXT("RootNode Tag %s"), *(pRoot->GetTag()));

 // ルートの子ノードの配列を取得
 const TArray<FXmlNode*>& childNode = pRoot->GetChildrenNodes();
 for(int i = 0; i < childNode.Num(); i++)
 {
  const FString& tag = childNode[i]->GetTag();
  UE_LOG(LogTemp, Display, TEXT("\tChildNode %d Tag %s"), i, *tag);

  if(tag == TEXT("node"))
  {
   UE_LOG(LogTemp, Display, TEXT("\t\tnode content %s"), *(childNode[i]->GetContent()));

   // ノードの属性の配列を取得
   const TArray<FXmlAttribute>& attrib = childNode[i]->GetAttributes();
   for(auto a : attrib)
   {
    const FString& tag = a.GetTag();
    const FString& value = a.GetValue();

    UE_LOG(LogTemp, Display, TEXT("\t\t\t%s = %s"), *tag, *value);
   }
  }
 }
}



2016年3月5日土曜日

UE4.x Jsonのテスト1

*.Build.cs の PublicDependencyModuleNames に Json を追加してビルドした

Jsonのパーステスト

#include "Json.h"  // 追加

void TestJson1() {

 FString jsonData = 
 "{\
  \"objArray\" : [\
   { \"pos\": [1.23, 2.33, 1.2345], \"rot\": [ 0.0, 0.0, 0.0] },\
   { \"pos\": [10.23, 20.33, 10.2345], \"rot\": [ 3.0, 6.0, 9.0] },\
   { \"pos\": [20.23, 40.33, 20.2345], \"rot\": [ 10.0, 20.0, 30.0] }\
  ]\
 }";

 // jsonDataをデシリアイズする
 TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
 TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(jsonData);
 bool result = FJsonSerializer::Deserialize(JsonReader, JsonObject);

 // objArrayを取得
 // フィールド名から配列を取得
 const TArray< TSharedPtr<FJsonValue> >& objArray = JsonObject->GetArrayField(TEXT("objArray"));
 for(int32 i = 0; i < objArray.Num(); i++)
 {
  // 配列内のJSONオブジェクトをパース
  // FJsonObjectに変換
  const TSharedPtr<FJsonObject>& Obj = objArray[i]->AsObject();

  const TArray< TSharedPtr<FJsonValue> >& pos = Obj->GetArrayField(TEXT("pos"));
  for(int32 i = 0; i < pos.Num(); i++)
  {
   UE_LOG(LogTemp, Display, TEXT("pos %d %lf"), i, pos[i]->AsNumber());
  }

  const TArray< TSharedPtr<FJsonValue> >& rot = Obj->GetArrayField(TEXT("rot"));
  for(int32 i = 0; i < rot.Num(); i++)
  {
   UE_LOG(LogTemp, Display, TEXT("rot %d %lf"), i, rot[i]->AsNumber());
  }
 }
}

2015年10月21日水曜日

Win8 -> Win8.1にアップグレードしたら

Visual Studio 2013 新規作成 / プロジェクト が動作しない
ファイルも
2012, 2010も 同様

エラーダイアログ
「テキスト '..\Images\Medium.png' から 'ImageSource' を作成できませんでした。」

が出現して作成できない

「何だとてー!」

Images\Medium.png ImageSource で検索したら
FastPictureViewer Codec が古いのが原因らしい?

そのCodecを入れていなかったので、どうも違うみたい

Visual Studio Community 2015 を入れてみよう
復元ポイントが作成され
途中で KB2829760 が適用された

インストール終了後
再起動してください -> 再起動に成功

新規作成 / プロジェクト が動作した

SSDの空きが 17.8G だと8.1のアップグレードに失敗
20GB 以上いる

2015年3月29日日曜日

Gのレコンギスタ 最終回

どんな結末なのかと見ていたら
日本の FUJI山 エンド
直前のシーンで 新幹線 らしき物が走行

ジャブローらしき跡地に
ズゴックが x2

ジムもどこかに埋もれてる?

そういえば 以前 富士山 に上った時に
下山途中の 砂エリアを
駆け下りていくのが爽快で面白かった

2015年3月8日日曜日

Gのレコンギスタ#23

「なァんじゃとて! ビームが 渦になったぁ!?」

「だぁーんまく 薄ぃでしょー!」
www

「名前で勝てたり! 生き残ったりします?」

次回予告のGアルケイン 何している?

2015年3月7日土曜日

UE4.X のテスト

無料でUE4のソースが見れるようになったので
github からソースを落としてビルド&実行

SSDの直下に展開して、ビルド
起動後のディスク使用量が 23GB

パッケージング処理 超長い 途中でキャンセル

ActorX の Importer を使用して
PC版のGears of war の marcus の upkからFBXを作成してインポート

テクスチャが張られていない 真っ白

マテリアルの修正 TextureSamplerを追加して
テクスチャを割り当てた後に クラッシュする なんじゃトテーー
同じ操作を再起動後に行っても落ちる 3回中 3回

VSからF5で起動させるとテクスチャの割り当て後に落ちなかった
なんで??
エラーレポート送信ウィンドウが表示されたけど
どこで落ちたのかが?

アイドル時でも超重い
t.MaxFPS 15 をコマンドラインから入力すると軽くなった
毎回入力するのが、めんどくさい

%UE4ROOT%/Engine/Config/ConsoleVariables.ini の最後に
t.MaxFPS=15 を追加すると t.MaxFPS が15になってた

void FConfigCacheIni::LoadConsoleVariablesFromINI() で
iniファイルを読み込んでいるみたい

業務で使うには ウルトラでエクストリームなPCでも
仕事にならない

※ SSDは必須

メモリを使いまくるので、2時間に1回は、エディタを落とさないと駄目
(ガベージコレクタが正しく動作している?)



Gのレコンギスタ#22

「フルライトだ! 満艦飾!」

電飾が点灯? 何じゃとてー

パーフェクトパックがチート
フォトントルピード 触れた物体が消滅している?

モンテーロが量産されていた 緑色