null
BIN
issue/screenshots/issue-9-0001.png
Executable file
After Width: | Height: | Size: 174 KiB |
BIN
issue/screenshots/issue-9-0002.png
Executable file
After Width: | Height: | Size: 93 KiB |
BIN
issue/screenshots/issue-9-0003.png
Executable file
After Width: | Height: | Size: 792 KiB |
BIN
issue/screenshots/issue-9-0004.png
Executable file
After Width: | Height: | Size: 64 KiB |
56
plugins/vmc4ue/VMC4UEBlueprintFunctionLibrary.cpp.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
--- ./VMC4UE/Source/VMC4UE/Source/VMC4UEBlueprintFunctionLibrary.cpp
|
||||||
|
+++ ./VMC4UE_54/Source/VMC4UE/Source/VMC4UEBlueprintFunctionLibrary.cpp
|
||||||
|
@@ -119,27 +119,29 @@
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ UVMC4UEStreamingSkeletalMeshTransform* StreamingSkeletalMeshTransform = nullptr;
|
||||||
|
+
|
||||||
|
+ // Try to get existing transform
|
||||||
|
{
|
||||||
|
- // Get
|
||||||
|
FRWScopeLock RWScopeLock(OSCManager->RWLock, FRWScopeLockType::SLT_ReadOnly);
|
||||||
|
- auto StreamingSkeletalMeshTransform = OSCManager->StreamingSkeletalMeshTransformMap.Find(Port);
|
||||||
|
- if (StreamingSkeletalMeshTransform != nullptr)
|
||||||
|
+ auto FoundTransform = OSCManager->StreamingSkeletalMeshTransformMap.Find(Port);
|
||||||
|
+ if (FoundTransform != nullptr)
|
||||||
|
{
|
||||||
|
- return *StreamingSkeletalMeshTransform;
|
||||||
|
+ return *FoundTransform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // Create new transform if not found
|
||||||
|
{
|
||||||
|
- // Create
|
||||||
|
FRWScopeLock RWScopeLock(OSCManager->RWLock, FRWScopeLockType::SLT_Write);
|
||||||
|
- auto StreamingSkeletalMeshTransform = OSCManager->StreamingSkeletalMeshTransformMap.Find(Port);
|
||||||
|
- if (StreamingSkeletalMeshTransform != nullptr)
|
||||||
|
+ auto FoundTransform = OSCManager->StreamingSkeletalMeshTransformMap.Find(Port);
|
||||||
|
+ if (FoundTransform != nullptr)
|
||||||
|
{
|
||||||
|
- return *StreamingSkeletalMeshTransform;
|
||||||
|
+ return *FoundTransform;
|
||||||
|
}
|
||||||
|
- UVMC4UEStreamingSkeletalMeshTransform* NewStreamingSkeletalMeshTransform = NewObject<UVMC4UEStreamingSkeletalMeshTransform>();
|
||||||
|
|
||||||
|
- //FRWScopeLock RWScopeLock2(NewStreamingSkeletalMeshTransform->RWLock, FRWScopeLockType::SLT_Write);
|
||||||
|
+ UVMC4UEStreamingSkeletalMeshTransform* NewStreamingSkeletalMeshTransform = NewObject<UVMC4UEStreamingSkeletalMeshTransform>();
|
||||||
|
OSCManager->StreamingSkeletalMeshTransformMap.Emplace(Port, NewStreamingSkeletalMeshTransform);
|
||||||
|
|
||||||
|
// Bind Port
|
||||||
|
@@ -149,9 +151,10 @@
|
||||||
|
|
||||||
|
OSCManager->OscReceivers.Emplace(OscReceiver);
|
||||||
|
|
||||||
|
- return NewStreamingSkeletalMeshTransform;
|
||||||
|
+ StreamingSkeletalMeshTransform = NewStreamingSkeletalMeshTransform;
|
||||||
|
}
|
||||||
|
- return nullptr;
|
||||||
|
+
|
||||||
|
+ return StreamingSkeletalMeshTransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UVMC4UEBlueprintFunctionLibrary::RefreshConnection(float Seconds)
|
25
plugins/vmc4ue/VMC4UEBoneMappingAssetFactory.cpp.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
--- ./VMC4UE/Source/VMC4UEEd/Source/VMC4UEBoneMappingAssetFactory.cpp
|
||||||
|
+++ ./VMC4UE_54/Source/VMC4UEEd/Source/VMC4UEBoneMappingAssetFactory.cpp
|
||||||
|
@@ -5,6 +5,8 @@
|
||||||
|
#include "../../VMC4UE/Include/VMC4UEStreamingData.h"
|
||||||
|
#include "Dom/JsonObject.h"
|
||||||
|
#include "JsonObjectConverter.h"
|
||||||
|
+#include "UObject/ConstructorHelpers.h"
|
||||||
|
+#include "UObject/UObjectGlobals.h"
|
||||||
|
|
||||||
|
UVMC4UEBoneMappingAssetFactory::UVMC4UEBoneMappingAssetFactory(const FObjectInitializer &ObjectInitializer)
|
||||||
|
: Super(ObjectInitializer)
|
||||||
|
@@ -26,11 +28,12 @@
|
||||||
|
return UVMC4UEVRMMapping::StaticClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
UObject *UVMC4UEBoneMappingAssetFactory::FactoryCreateText(UClass *InClass, UObject *InParent, FName InName, EObjectFlags Flags, UObject *Context, const TCHAR *Type, const TCHAR *&Buffer, const TCHAR *BuferEnd, FFeedbackContext *Warn)
|
||||||
|
{
|
||||||
|
FString TextData = FString(Buffer);
|
||||||
|
|
||||||
|
- UVMC4UEVRMMapping *NewAsset = CastChecked<UVMC4UEVRMMapping>(StaticConstructObject_Internal(InClass, InParent, InName, Flags));
|
||||||
|
+ UVMC4UEVRMMapping* NewAsset = NewObject<UVMC4UEVRMMapping>(InParent, InClass, InName, Flags);
|
||||||
|
if (!IsValid(NewAsset))
|
||||||
|
{
|
||||||
|
return nullptr;
|
8
plugins/vmc4ue/readme.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
vmc4u patch rebuild for `ue5.4`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ git clone https://github.com/HAL9HARUKU/VMC4UE
|
||||||
|
|
||||||
|
# example
|
||||||
|
$ patch -u ./VMC4UE/VMC4UE/Source/VMC4UEEd/Source/VMC4UEBoneMappingAssetFactory.cpp < VMC4UEBoneMappingAssetFactory.cpp.patch
|
||||||
|
```
|
BIN
texture/T__02.PNG
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
verse/img/ep.mdp
Normal file
BIN
verse/img/ep.png
Normal file
After Width: | Height: | Size: 433 KiB |
Before Width: | Height: | Size: 441 KiB |
Before Width: | Height: | Size: 126 KiB |
BIN
verse/img/mode_ai.png
Normal file
After Width: | Height: | Size: 476 KiB |
BIN
verse/img/mode_normal.png
Normal file
After Width: | Height: | Size: 432 KiB |
BIN
verse/img/shinryu.png
Normal file
After Width: | Height: | Size: 202 KiB |
BIN
verse/img/ue.mdp
Normal file
BIN
verse/img/ue.png
Normal file
After Width: | Height: | Size: 561 KiB |
BIN
verse/img/wa.png
Normal file
After Width: | Height: | Size: 140 KiB |
@ -14,10 +14,3 @@ THE FUZZY ONE
|
|||||||
|text|「hello ai !」 一つの言葉しか覚えられない。自分やリスナーのことをアイと呼ぶ。世界を作るのが趣味。普段は地球を歩き回っている。|
|
|text|「hello ai !」 一つの言葉しか覚えられない。自分やリスナーのことをアイと呼ぶ。世界を作るのが趣味。普段は地球を歩き回っている。|
|
||||||
|en|"Hello Ai!" I can only remember one word. I call myself and my listeners Ai. My hobby is creating worlds. I usually walk around the Earth.|
|
|en|"Hello Ai!" I can only remember one word. I call myself and my listeners Ai. My hobby is creating worlds. I usually walk around the Earth.|
|
||||||
|
|
||||||
## LIKES
|
|
||||||
|
|
||||||
USA, hololine en(fuwamoco), bird
|
|
||||||
|
|
||||||
## ref
|
|
||||||
|
|
||||||
https://www.youtube.com/watch?v=Kttt7pb5o6I&t=448s
|
|
54
verse/md/ue.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Unreal Engine 5.4 | 初めてのゲーム制作、世界を作る
|
||||||
|
|
||||||
|
## vrm4u
|
||||||
|
|
||||||
|
キャラクターを表示しよう。
|
||||||
|
|
||||||
|
## game animation sample
|
||||||
|
|
||||||
|
今後はこの形式が基本になりそう。
|
||||||
|
|
||||||
|
## city sample
|
||||||
|
|
||||||
|
最初に難易度と負荷を高くする。
|
||||||
|
|
||||||
|
## sky atmoshpere + volumetric cloud
|
||||||
|
|
||||||
|
`dynamic volumetric sky -> ultra dynamic sky`
|
||||||
|
|
||||||
|
## whisper + chatgpt + elevenlabs
|
||||||
|
|
||||||
|
- whisper : RuntimeSpeechRecognizer
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# perplexity.ai
|
||||||
|
$ curl https://api.openai.com/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: Bearer YOUR_API_KEY" \
|
||||||
|
-d '{
|
||||||
|
"model": "gpt-4o-mini",
|
||||||
|
"messages": [{"role": "user", "content": "Your question here"}],
|
||||||
|
"temperature": 0.7
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# perplexity.ai
|
||||||
|
$ curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/VOICE_ID" \
|
||||||
|
-H "xi-api-key: YOUR_API_KEY" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"text": "Hello world!",
|
||||||
|
"model_id": "eleven_monolingual_v1",
|
||||||
|
"voice_settings": {
|
||||||
|
"stability": 0.5,
|
||||||
|
"similarity_boost": 0.5
|
||||||
|
}
|
||||||
|
}' \
|
||||||
|
--output output.mp3
|
||||||
|
```
|
||||||
|
|
||||||
|
## ue vs unity
|
||||||
|
|
||||||
|
ueは手順通りやっても動くことは稀。つまり、動かない。そのため情報も少ない。unityがおすすめ。
|
||||||
|
|
@ -2,36 +2,6 @@
|
|||||||
|
|
||||||
aiverse project [@syai](https://www.youtube.com/@syai).
|
aiverse project [@syai](https://www.youtube.com/@syai).
|
||||||
|
|
||||||
respect vtubers and create something different.
|
|
||||||
|
|
||||||
aituber provides stories and ai models.
|
|
||||||
|
|
||||||
## syai
|
|
||||||
|
|
||||||
"hello ai !"
|
|
||||||
|
|
||||||
calls himself and the viewers "ai", not smart and can only remember one word. my hobby is creating world. i usually walks around the earth.
|
|
||||||
|
|
||||||
## aituber
|
|
||||||
|
|
||||||
a virtual youtuber using character ai.
|
|
||||||
|
|
||||||
## rules
|
|
||||||
|
|
||||||
allows fan fiction of ai. gather your allies.
|
|
||||||
|
|
||||||
there are one rules for fan fiction.
|
|
||||||
|
|
||||||
- add ai to the end of the name
|
|
||||||
|
|
||||||
members are selected through auditions, participation in the beta version of the game is given.
|
|
||||||
|
|
||||||
## policy
|
|
||||||
|
|
||||||
a culture of connecting through your favorite idols. the most interesting content is the interactions between vtubers, show off what you like.
|
|
||||||
|
|
||||||
stream only positive things, so that the viewers can enjoy it.
|
|
||||||
|
|
||||||
## bgm
|
## bgm
|
||||||
|
|
||||||
- https://suno.com/@syui
|
- https://suno.com/@syui
|
||||||
@ -39,7 +9,6 @@ stream only positive things, so that the viewers can enjoy it.
|
|||||||
## link
|
## link
|
||||||
|
|
||||||
- https://www.youtube.com/@syai
|
- https://www.youtube.com/@syai
|
||||||
- https://mozilla.social/@ai
|
|
||||||
|
|
||||||
## ref
|
## ref
|
||||||
|
|
||||||
|
47
verse/slidev/aibot.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
theme: eloc
|
||||||
|
class: text-center
|
||||||
|
highlighter: shiki
|
||||||
|
lineNumbers: false
|
||||||
|
info: |
|
||||||
|
## Slidev Starter Template
|
||||||
|
Presentation slides for developers.
|
||||||
|
|
||||||
|
Learn more at [Sli.dev](https://sli.dev)
|
||||||
|
drawings:
|
||||||
|
persist: false
|
||||||
|
transition: slide-left
|
||||||
|
title: ai bot
|
||||||
|
---
|
||||||
|
|
||||||
|
## ai `bot`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [yui.syui.ai](https://yui.syui.ai)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[yui.syui.ai](https://yui.syui.ai) access
|
||||||
|
|
||||||
|
<kbd>ctrl</kbd> + <kbd>enter</kbd>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.slidev-layout {
|
||||||
|
@apply overflow-visible;
|
||||||
|
filter: invert();
|
||||||
|
pre {
|
||||||
|
font-size:70px;
|
||||||
|
@apply opacity-95;
|
||||||
|
}
|
||||||
|
&::before {
|
||||||
|
@apply absolute white -z-1 w-screen h-screen min-w-full min-h-full;
|
||||||
|
content: '';
|
||||||
|
filter: invert();
|
||||||
|
background: center/cover url();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
---
|
||||||
|
|
||||||
|
@syui.ai
|
94
verse/slidev/slides.md
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
---
|
||||||
|
theme: eloc
|
||||||
|
class: text-center
|
||||||
|
highlighter: shiki
|
||||||
|
lineNumbers: false
|
||||||
|
info: |
|
||||||
|
## Slidev Starter Template
|
||||||
|
Presentation slides for developers.
|
||||||
|
|
||||||
|
Learn more at [Sli.dev](https://sli.dev)
|
||||||
|
drawings:
|
||||||
|
persist: false
|
||||||
|
transition: slide-left
|
||||||
|
title: Unreal Engine 5.4 | 初めてのゲーム制作、世界を作る
|
||||||
|
---
|
||||||
|
|
||||||
|
## 初めてのゲーム制作、世界を作る
|
||||||
|
|
||||||
|
`Unreal Engine 5.4.4`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `vrm4u`
|
||||||
|
|
||||||
|
キャラクターを表示しよう
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `game animation sample`
|
||||||
|
|
||||||
|
今後はこの形式が基本になりそう
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `city sample`
|
||||||
|
|
||||||
|
最初に難易度と負荷を高くする
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `sky atmoshpere` + `volumetric cloud`
|
||||||
|
|
||||||
|
- dynamic volumetric sky -> ultra dynamic sky
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `whisper` + `chatgpt` + `elevenlabs`
|
||||||
|
|
||||||
|
- whisper : RuntimeSpeechRecognizer
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# perplexity.ai
|
||||||
|
$ curl https://api.openai.com/v1/chat/completions \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-H "Authorization: Bearer YOUR_API_KEY" \
|
||||||
|
-d '{
|
||||||
|
"model": "gpt-4o-mini",
|
||||||
|
"messages": [{"role": "user", "content": "Your question here"}],
|
||||||
|
"temperature": 0.7
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# perplexity.ai
|
||||||
|
$ curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/VOICE_ID" \
|
||||||
|
-H "xi-api-key: YOUR_API_KEY" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"text": "Hello world!",
|
||||||
|
"model_id": "eleven_monolingual_v1",
|
||||||
|
"voice_settings": {
|
||||||
|
"stability": 0.5,
|
||||||
|
"similarity_boost": 0.5
|
||||||
|
}
|
||||||
|
}' \
|
||||||
|
--output output.mp3
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `account`
|
||||||
|
|
||||||
|
- atproto(bluesky)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
@syui.ai
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Bluesky_Logo.svg/1200px-Bluesky_Logo.svg.png" width="30px">
|