随着动画漫画产业的蓬勃发展,不少游戏中也加入了Live2D技术,比如日系厂商万代南梦宫的《偶像大师-闪耀色彩》,武士道的《BangDream ガールズバンドパーティ》以及《少女☆歌劇Revue Starlight -Re LIVE-》Cygames的《公主连接》等,韩国厂商的《明日之子》,国内厂商诸如《少女前线》和《碧蓝航线》还有我厂的《电击文库-零境交错》也采用了live2d,其实live2d也有一套为webgl开发的sdk可以使用,下面容我斗胆介绍一下
Live2D已经不是一个新鲜的东西了,遥想当初在《游戏机实用技术》上看到第一个采用Live2D技术的游戏《我的妹妹不可能那么可爱-携带版(俺の妹がこんなにかわいいわけがない ポータブル)》的时候还是非常惊艳的。后来有幸体验了这款第一次尝试采用Live2D技术制作的galgame,由衷为其人物之自由,表情动作之丰富所惊叹。
后来越来越多的游戏也开始使用live2D技术,渐渐地live2D技术的优势体现出来了,用户只需要做好贴图素材和素材骨骼,即可让静态画动起来。
包括之前上市的《偶像大师-闪耀祭典》,是一个由Pixi.js函数库的纯页游,也采用了同样的技术
其实早在14年的时候Live2D就发布了WebGL的接口,供大家使用也写了SDK。本人对Demo进行了一些魔改处理来研究Live2D的demo中如何调用所提供的接口完成Live2D的web端迁移工作。
本体Demo中,Live2D文件被划分为几个部分,JS引用部分包括7个JS文件,live2d资源部分包括live2d需要的骨骼文件moc,配置模型的model.json,配置模型Pose的文件pose.json,配置物理效果的physics.json,live2d的人物贴图texture_00.png,放置live2d表情文件的expressions/exp.json文件。
Live2D中自带了很多表情动作,比如眨眼,身体晃动,嘴动作等。这些可以在Live2D的官方文档上进行查看(可能需要一定日语基础)。
在LAppDefine.js 下,你可以配置新添加额的模组,这个是给LAppLive2DManager管理用。
MODEL添加模组的配置model.json,MOTION文件定义了需要引用的公用动作文件mtn。
var LAppDefine = {
// デバッグ。trueのときにログを表示する。
DEBUG_LOG : true, (开启Debug Console)
DEBUG_MOUSE_LOG : false, // マウス関連の冗長なログ (鼠标关联信息打印到Console)
// DEBUG_DRAW_HIT_AREA : false, // 当たり判定の可視化 (点击判定可视化)
// DEBUG_DRAW_ALPHA_MODEL : false, // 半透明のモデル描画を行うかどうか。 (半透明模型允许)
// 全体の設定
// 画面 (画面缩放设定)
VIEW_MAX_SCALE : 2,
VIEW_MIN_SCALE : 0.8,
VIEW_LOGICAL_LEFT : -1,
VIEW_LOGICAL_RIGHT : 1,
VIEW_LOGICAL_MAX_LEFT : -2,
VIEW_LOGICAL_MAX_RIGHT : 2,
VIEW_LOGICAL_MAX_BOTTOM : -2,
VIEW_LOGICAL_MAX_TOP : 2,
// モーションの優先度定数 (模型优先度确认)
PRIORITY_NONE : 0,
PRIORITY_IDLE : 2,
PRIORITY_NORMAL : 2,
PRIORITY_FORCE : 3,
// モデルの後ろにある背景の画像ファイル (模型背景图)
BACK_IMAGE_NAME : "assets/image/back_class_normal.png",
// モデル定義 (模型定义)
MODEL_HARU : "assets/live2d/haru/haru.model.json",
MODEL_HARU_A : "assets/live2d/haru/haru_01.model.json",
MODEL_HARU_B : "assets/live2d/haru/haru_02.model.json",
MODEL_SHIZUKU : "assets/live2d/shizuku/shizuku.model.json",
MODEL_KASUMI: "assets/live2d/kasumi/kasumi.model.json",
MODEL_WANKO : "assets/live2d/wanko/wanko.model.json",
MODEL_EPSILON : "assets/live2d/Epsilon2.1/Epsilon2.1.model.json",
// 外部定義ファイル(json)と合わせる (外部文件Json合并(动作))
MOTION_GROUP_IDLE : "idle", // アイドリング
MOTION_GROUP_TAP_BODY : "tap_body", // 体をタップしたとき
MOTION_GROUP_FLICK_HEAD : "angry01", // 頭を撫でた時
MOTION_GROUP_PINCH_IN : "surprised02", // 拡大した時 (放大时动作)
MOTION_GROUP_PINCH_OUT : "bye01", // 縮小した時 (缩小时动作)
MOTION_GROUP_SHAKE : "shake", // シェイク
MOTION_GROUP_FACE:"angry01",
// 外部定義ファイル(json)と合わせる (外部文件Json合并(点击区域))
HIT_AREA_HEAD : "head",
HIT_AREA_BODY : "body"
};