live2d+live2dcubismcore+pixi实现二次元看板娘数字虚拟直播通过文本生成说话效果代码

代码语言:html

所属分类:其他

代码描述:live2d+live2dcubismcore+pixi实现二次元看板娘数字虚拟直播通过文本生成说话效果代码

代码标签: live2d live2dcubismcore pixi 二次元 看板娘 数字 虚拟 主播 说话

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  


  
<style>
#control {
  position: absolute;
  top: 8px;
  left: 24px;
  color: #fff;
  font-size: 18px;
}
</style>

  
  
</head>

<body >
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/live2dcubismcore.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/live2d.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pixi.6.5.2.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pixi-live2d-display.index.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pixi-live2d-display.extra.js"></script>

<canvas id=canvas></canvas>

<div id="control">
    <a onclick="beginsay();" href="#">开始说话</a>
    <a  onclick="endspeak();" href="#">停止说话</a>
</div>
 
  
      <script  >
    var ssu = new SpeechSynthesisUtterance();
    ssu.pitch=2;
       ssu.rate=0.8;
       // ssu.volume = 100  // 声音的音量

        //ssu.rate = 1 // 语速,数值,默认值是1,范围是0.1到10

        //ssu.pitch = 1.5 // 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1
      
        

        // lang:使用的语言,字符串(比如:"zh-cn")

        //volume:音量,值在0-1之间(默认是1)

        //rate:语速的倍数,值在0.1-10之间(默认1倍)

        //pitch:音高,值在0-2之间,(默认是1)

        //voiceURI:指定希望使用的声音,字符串

        //既然有属性肯定有方法,该对象还提供了一些事件的回调

        ssu.onstart = (e)=> {
            console.log("开始。。。");
            console.log(e);
        }
        ssu.onend = (e)=> {
            console.log("结束。。。");
            endspeak();
            console.log(e);
        }

const cubism4Model =
"//repo.bfw.wiki/bfwrepo/images/live2dm3/Haru/Haru.model3.json";

const live2d = PIXI.live2d;
let models =[];
(async function main() {
  const app = new PIXI.Application({
    view: document.getElementById("canvas"),
    autoStart: true,
    resizeTo: window,
    backgroundColor: 0xffffff });


   models = await Promise.all([

  live2d.Live2DModel.from(cubism4Model, { autoInteract: false })]);


  models.forEach(model => {
    app.stage.addChild(model);

    const scaleX = innerWidth * 1.2 / model.width;
    const scaleY = innerHeight * 0.8 / model.height;

    // fit the window
    model.scale.set(Math.min(scaleX, scaleY));

    model.y = innerHeight * 0.........完整代码请登录后点击上方下载按钮下载查看

网友评论0