// Some copyright should be here...
using UnrealBuildTool;
public class furcraHomeAIServerChat2 : ModuleRules
{
public furcraHomeAIServerChat2(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
// ... add public include paths required here ...
}
);
PrivateIncludePaths.AddRange(
new string[] {
// ... add other private include paths required here ...
}
);
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core", "CoreUObject", "Engine", "UMG","HTTP", "Json", "JsonUtilities"
// ... add other public dependencies that you statically link with here ...
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
"DeveloperSettings",
// ... add private dependencies that you statically link with here ...
}
);
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
// ... add any modules that your module loads dynamically here ...
}
);
}
}
// Fill out your copyright notice in the Description page of Project Settings.
#include "AiChatTypes.h"
AiChatTypes::AiChatTypes()
{
}
AiChatTypes::~AiChatTypes()
{
}
AiLinkAsyncChat.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintAsyncActionBase.h"
#include "AiChatTypes.h"
#include "AiLinkAsyncChat.generated.h"
// Forward declarations for HTTP interfaces to avoid including HTTP headers in this public header
class IHttpRequest;
class IHttpResponse;
using FHttpRequestPtr = TSharedPtr<IHttpRequest, ESPMode::ThreadSafe>;
using FHttpResponsePtr = TSharedPtr<IHttpResponse, ESPMode::ThreadSafe>;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAiChatSuccess, const FString&, AssistantText);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAiChatError, const FString&, Error);
UCLASS()
class FURCRAHOMEAISERVERCHAT2_API UAiLinkAsyncChat : public UBlueprintAsyncActionBase
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable) FAiChatSuccess OnSuccess;
UPROPERTY(BlueprintAssignable) FAiChatError OnError;
// Messagesは「system + 履歴 + 今回のuser」を含めて渡す
UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"))
static UAiLinkAsyncChat* SendChat(const TArray<FAiChatMessage>& Messages);
virtual void Activate() override;
private:
TArray<FAiChatMessage> MessagesInternal;
void HandleResponse(FHttpRequestPtr Req, FHttpResponsePtr Resp, bool bOk);
};
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
/**
*
*/
class FURCRAHOMEAISERVERCHAT2_API AiLinkRequestTypes
{
public:
AiLinkRequestTypes();
~AiLinkRequestTypes();
};
//#pragma once
//#include "CoreMinimal.h"
#include "AiLinkRequestTypes.generated.h"
USTRUCT()
struct FOllamaGenerateRequest
{
GENERATED_BODY()
UPROPERTY() FString model;
UPROPERTY() FString prompt;
UPROPERTY() bool stream = false;
};
USTRUCT()
struct FOllamaGenerateResponse
{
GENERATED_BODY()
UPROPERTY() FString response;
UPROPERTY() bool done = false;
};
AiLinkRequestTypes.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "AiLinkRequestTypes.h"
AiLinkRequestTypes::AiLinkRequestTypes()
{
}
AiLinkRequestTypes::~AiLinkRequestTypes()
{
}
UAiLinkSettings.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DeveloperSettings.h"
#include "UAiLinkSettings.generated.h"
UCLASS(Config = Game, DefaultConfig, meta = (DisplayName = "Home AI Chat"))
class FURCRAHOMEAISERVERCHAT2_API UAiLinkSettings : public UDeveloperSettings
{
GENERATED_BODY()
public:
UPROPERTY(Config, EditAnywhere, Category = "AI")
FString BaseUrl = TEXT("http://192.168.1.23:11434");
UPROPERTY(Config, EditAnywhere, Category = "AI")
//FString Model = TEXT("llama3.1");
//FString Model = TEXT("deepseek-r1:32b");llama3.1:8b
//FString Model = TEXT("llama3.1:70b");//llama3.1:8b
FString Model = TEXT("llama3.1:8b");//
UPROPERTY(Config, EditAnywhere, Category = "AI")
float TimeoutSeconds = 120.0f;
// 例: "You are NPC assistant in my game..."
UPROPERTY(Config, EditAnywhere, Category = "AI")
FString SystemPrompt = TEXT("You are a helpful in-game NPC. Keep replies concise.");
};
UAiLinkSettings.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "UAiLinkSettings.h"
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
なので3つの設定をやってしまった。
ーーーーーーーーーーーーーーーーーーーーーー
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build EventのPostを
xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86\*.dll" "$(OutDir)" /i /s /y
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
なので3つの設定をやってしまった。
ーーーーーーーーーーーーーーーーーーーーーー
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build EventのPostを
xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86\*.dll" "$(OutDir)" /i /s /y
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
なので3つの設定をやってしまった。
ーーーーーーーーーーーーーーーーーーーーーー
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build EventのPostを
xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86\*.dll" "$(OutDir)" /i /s /y
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
なので3つの設定をやってしまった。
ーーーーーーーーーーーーーーーーーーーーーー
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build EventのPostを
xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86\*.dll" "$(OutDir)" /i /s /y
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
なので3つの設定をやってしまった。
ーーーーーーーーーーーーーーーーーーーーーー
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Build EventのPreを
xcopy "$(ProjectDir)\..\external\SDL\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "$(ProjectDir)\..\external\GLEW\lib\win\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86\*.dll" "$(OutDir)" /i /s /y
xcopy "D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86\*.dll" "$(OutDir)" /i /s /y
あとはコメント化して無効化の修正
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\AudioSystem.cpp(59,11): error C2039: ‘getLowLevelSystem’: is not a member of ‘FMOD::Studio::System’ //mSystem->getLowLevelSystem(&mLowLevelSystem);にコメントして無効化
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\SoundEvent.cpp(83,10): error C2039: ‘setParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ //event->setParameterValue(name.c_str(), value);にコメントして無効化
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter10\SoundEvent.cpp(126,10): error C2039: ‘getParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ //event->getParameterValue(name.c_str(), &retVal);にコメントして無効化
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter09\SoundEvent.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp’: No such file or directory
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter09\AudioSystem.cpp(59,11): error C2039: ‘getLowLevelSystem’: is not a member of ‘FMOD::Studio::System’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(36,11): //mSystem->getLowLevelSystem(&mLowLevelSystem);//コメントアウト
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter09\SoundEvent.cpp(83,10): error C2039: ‘setParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> see declaration of ‘FMOD::Studio::EventInstance’ //event->setParameterValue(name.c_str(), value);//コメントアウト
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter09\SoundEvent.cpp(126,10): error C2039: ‘getParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> see declaration of ‘FMOD::Studio::EventInstance’ //event->getParameterValue(name.c_str(), &retVal);//コメントアウト
で解決して次のエラー
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter07\AudioSystem.cpp(11,10): error C1083: Cannot open include file: ‘fmod_studio.hpp‘: No such file or directory
1>D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio_common.h(14,10): error C1083: Cannot open include file: ‘fmod.h‘: No such file or directory 1>(compiling source file ‘AudioSystem.cpp’)
Visual Studioの場合: Gameプロジェクトを右クリックし、[プロパティ]を選択。 [C/C++] → [追加のインクルードディレクトリ] を選び、FMODのインクルードフォルダのパス (例: D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\inc )を追加。 変更後、プロジェクトを再ビルドしてみてください。
英語 1>D:\Sandbox\gameprogcpp_code\code-master\Chapter07\SoundEvent.cpp(83,10): error C2039: ‘setParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> see declaration of ‘FMOD::Studio::EventInstance’ 1>D:\Sandbox\gameprogcpp_code\code-master\Chapter07\SoundEvent.cpp(126,10): error C2039: ‘getParameterValue’: is not a member of ‘FMOD::Studio::EventInstance’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> see declaration of ‘FMOD::Studio::EventInstance’
1>D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> ‘FMOD::Studio::EventInstance’ の宣言を参照してください 1>D:\Sandbox\gameprogcpp_code\code-master\Chapter07\SoundEvent.cpp(126,10): エラー C2039: ‘getParameterValue‘: は ‘FMOD::Studio::EventInstance’ のメンバーではありません 127行をコメントアウト //event->getParameterValue(name.c_str(), &retVal); 1>D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(184,11): 1> ‘FMOD::Studio::EventInstance’ の宣言を参照してください
1>D:\Sandbox\gameprogcpp_code\code-master\Chapter07\AudioSystem.cpp(59,11): error C2039: ‘getLowLevelSystem‘: is not a member of ‘FMOD::Studio::System’ 1> D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\inc\fmod_studio.hpp(36,11): 1> see declaration of ‘FMOD::Studio::System’ AudioSystem.cpp(59,11)をコメントアウト //mSystem->getLowLevelSystem(&mLowLevelSystem);
1>LINK : fatal error LNK1104: cannot open file ‘fmodL_vc.lib’ 1>LINK : fatal error LNK1104: cannot open file ‘fmodstudioL_vc.lib’ [リンカー] → [追加の依存ファイル]にFMODのライブラリを追加します。 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\core\lib\x86 D:\Program Files (x86)\FMOD SoundSystem\FMOD Studio API Windows\api\studio\lib\x86