lipsync sample
5
sample-lipsync/build.gradle
Normal file
@@ -0,0 +1,5 @@
|
||||
apply plugin: "korge"
|
||||
|
||||
korge {
|
||||
id = "com.soywiz.samples.lipsync"
|
||||
}
|
||||
28
sample-lipsync/src/commonMain/kotlin/main.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
import com.soywiz.korev.*
|
||||
import com.soywiz.korge.*
|
||||
import com.soywiz.korge.atlas.*
|
||||
import com.soywiz.korge.lipsync.*
|
||||
import com.soywiz.korge.view.*
|
||||
import com.soywiz.korio.async.*
|
||||
import com.soywiz.korio.file.std.*
|
||||
|
||||
suspend fun main() = Korge {
|
||||
val atlas = resourcesVfs["lips.atlas.json"].readAtlas(views)
|
||||
val lips = image(atlas["lisa-A.png"].texture)
|
||||
val lips2 = image(atlas["lisa-A.png"].texture).position(400, 0)
|
||||
addEventListener<LipSyncEvent> {
|
||||
println(it)
|
||||
if (it.name == "lisa") {
|
||||
lips2.texture = atlas["lisa-${it.lip}.png"].texture
|
||||
}
|
||||
}
|
||||
launchImmediately {
|
||||
fun handler(it: LipSyncEvent) {
|
||||
views.dispatch(it)
|
||||
lips.texture = atlas["lisa-${it.lip}.png"].texture
|
||||
}
|
||||
|
||||
resourcesVfs["002.voice.wav"].readVoice().play("lisa") { handler(it) }
|
||||
resourcesVfs["simple.voice.wav"].readVoice().play("lisa") { handler(it) }
|
||||
}
|
||||
}
|
||||
BIN
sample-lipsync/src/commonMain/resources/001.voice.wav
Normal file
BIN
sample-lipsync/src/commonMain/resources/002.voice.wav
Normal file
BIN
sample-lipsync/src/commonMain/resources/003.voice.wav
Normal file
BIN
sample-lipsync/src/commonMain/resources/004.voice.wav
Normal file
1
sample-lipsync/src/commonMain/resources/lips.atlas
Normal file
@@ -0,0 +1 @@
|
||||
lips
|
||||
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-A.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-B.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-C.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-D.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-E.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-F.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-G.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-H.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
sample-lipsync/src/commonMain/resources/lips/lisa-X.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
sample-lipsync/src/commonMain/resources/simple.voice.wav
Normal file
@@ -1,6 +1,5 @@
|
||||
include(":sample-atlas")
|
||||
include(":sample-box2d")
|
||||
include(":sample-scenes")
|
||||
include(":sample-tic-tac-toe-swf")
|
||||
include(":sample-bitmap-font")
|
||||
include(":sample-input")
|
||||
for (file in rootDir.listFiles()) {
|
||||
if (file.isDirectory && file.name.startsWith("sample-") && (File(file, "build.gradle").exists() || File(file, "build.gradle.kts").exists())) {
|
||||
include(":${file.name}")
|
||||
}
|
||||
}
|
||||
|
||||