mayx 4 年 前
コミット
9514c64633
54 ファイル変更3170 行追加0 行削除
  1. 339 0
      Live2dHistoire/LICENSE
  2. 103 0
      Live2dHistoire/README.md
  3. 45 0
      Live2dHistoire/demo.html
  4. 940 0
      Live2dHistoire/live2d/css/live2d.css
  5. BIN
      Live2dHistoire/live2d/images/info.png
  6. BIN
      Live2dHistoire/live2d/images/music.png
  7. BIN
      Live2dHistoire/live2d/images/pasue.png
  8. BIN
      Live2dHistoire/live2d/images/quite.png
  9. BIN
      Live2dHistoire/live2d/images/talk.png
  10. BIN
      Live2dHistoire/live2d/images/youdu.png
  11. 1 0
      Live2dHistoire/live2d/js/live2d.js
  12. 482 0
      Live2dHistoire/live2d/js/message.js
  13. 42 0
      Live2dHistoire/live2d/message.json
  14. BIN
      Live2dHistoire/live2d/model/histoire/histoire.1024/texture_00.png
  15. BIN
      Live2dHistoire/live2d/model/histoire/histoire.1024/texture_01.png
  16. BIN
      Live2dHistoire/live2d/model/histoire/histoire.1024/texture_02.png
  17. BIN
      Live2dHistoire/live2d/model/histoire/histoire.1024/texture_03.png
  18. BIN
      Live2dHistoire/live2d/model/histoire/ico_histoire.png
  19. 59 0
      Live2dHistoire/live2d/model/histoire/model.json
  20. BIN
      Live2dHistoire/live2d/model/histoire/model.moc
  21. 36 0
      Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M01.mtn
  22. 36 0
      Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M02.mtn
  23. 36 0
      Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M04.mtn
  24. 33 0
      Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0011.mtn
  25. 33 0
      Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0041.mtn
  26. 33 0
      Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0061.mtn
  27. 33 0
      Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0067.mtn
  28. 46 0
      Live2dHistoire/live2d/model/histoire/motions/tap/m_06.mtn
  29. 46 0
      Live2dHistoire/live2d/model/histoire/motions/tap/m_13.mtn
  30. 44 0
      Live2dHistoire/live2d/model/histoire/motions/tap/nep_touch_boobs_1.mtn
  31. 60 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_01.mtn
  32. 49 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_09.mtn
  33. 52 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_13.mtn
  34. 76 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_14.mtn
  35. 53 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_19.mtn
  36. 43 0
      Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_21.mtn
  37. BIN
      Live2dHistoire/live2d/model/nep/histoire.1024/0.png
  38. BIN
      Live2dHistoire/live2d/model/nep/histoire.1024/1.png
  39. BIN
      Live2dHistoire/live2d/model/nep/histoire.1024/normal_2.png
  40. BIN
      Live2dHistoire/live2d/model/nep/ico_histoire.png
  41. 58 0
      Live2dHistoire/live2d/model/nep/model.json
  42. BIN
      Live2dHistoire/live2d/model/nep/model.moc
  43. 44 0
      Live2dHistoire/live2d/model/nep/motions/idle/idle_00.mtn
  44. 44 0
      Live2dHistoire/live2d/model/nep/motions/idle/idle_01.mtn
  45. 44 0
      Live2dHistoire/live2d/model/nep/motions/idle/idle_02.mtn
  46. BIN
      Live2dHistoire/live2d/model/nep/motions/tap/nep_slide_head_2.mtn
  47. 44 0
      Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_belly_1.mtn
  48. 41 0
      Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_belly_2.mtn
  49. 44 0
      Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_boobs_1.mtn
  50. BIN
      Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_head_1.mtn
  51. 33 0
      Live2dHistoire/live2d/model/nep/motions/tap/refuse.mtn
  52. 31 0
      Live2dHistoire/live2d/model/nep/motions/tap/shake.mtn
  53. 34 0
      Live2dHistoire/live2d/model/nep/motions/tap/smile.mtn
  54. 33 0
      Live2dHistoire/live2d/model/nep/motions/tap/tilt_head.mtn

+ 339 - 0
Live2dHistoire/LICENSE

@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., [http://fsf.org/]
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    {description}
+    Copyright (C) 2018  广树
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  {signature of Ty Coon}, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.

+ 103 - 0
Live2dHistoire/README.md

@@ -0,0 +1,103 @@
+# Live2d的看板娘——伊斯特瓦尔(Histoire) 
+#### 可用于网页端显示Live2D版的伊斯特瓦尔(Histoire) emlog插件版可以看这里:[传送门](https://www.wikimoe.com/?post=75)
+#### 基于[《给博客添加能动的看板娘(Live2D)-将其添加到网页上吧》](https://imjad.cn/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02)上的源码进行修改。
+#### 在原先的基础上加上了如下功能:
+
+	1.可以基于图灵机器人的聊天功能(需要自己写接口,默认隐藏)。
+	2.能够随意移动并记录位置(关闭浏览器后失效)。
+	3.能够随意唤醒或者关闭并记录状态。
+	4.自动判断浏览器是否为IE或者手机浏览器,如果判断为true则不加载伊斯。
+	5.给骚扰伊斯加了限制频率,不能狂骚扰伊斯了。
+
+### 准备工作
+首先到下载代码。
+
+然后把解压出来的文件夹改名为:live2d 。
+
+### 正式开工,文字部分参考自[在 Web 上展示 Live2D 吧!](https://github.com/galnetwen/Live2D)
+在需要页面的头部文件(header)引入界面样式,在 head 标签内插入如下代码:
+```html
+<link rel="stylesheet" href="/live2d/css/live2d.css" />
+```
+
+在 需要页面的body 标签内找到合适的位置插入 Live2D 看板娘的元素,按照 Html 书写规范写 
+```html
+<div id="landlord" style="left:5px;bottom:0px;">
+    <div class="message" style="opacity:0"></div>
+    <canvas id="live2d" width="500" height="560" class="live2d"></canvas>
+    <div class="live_talk_input_body">
+    	<div class="live_talk_input_name_body">
+        	<input name="name" type="text" class="live_talk_name white_input" id="AIuserName" autocomplete="off" placeholder="你的名字" />
+        </div>
+        <div class="live_talk_input_text_body">
+        	<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?"/>
+            <button type="button" class="live_talk_send_btn" id="talk_send">发送</button>
+        </div>
+    </div>
+    <input name="live_talk" id="live_talk" value="1" type="hidden" />
+    <div class="live_ico_box">
+    	<div class="live_ico_item type_info" id="showInfoBtn"></div>
+    	<div class="live_ico_item type_talk" id="showTalkBtn"></div>
+        <div class="live_ico_item type_music" id="musicButton"></div>
+        <div class="live_ico_item type_youdu" id="youduButton"></div>
+        <div class="live_ico_item type_quit" id="hideButton"></div>
+        <input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
+        <audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
+        <input name="live2dBGM" value="音乐地址" type="hidden">
+        <input id="duType" value="douqilai,l2d_caihong" type="hidden">
+    </div>
+</div>
+<div id="open_live2d">召唤伊斯特瓦尔</div>
+```
+如果需要BGM支持可以按照上面的例子添加:
+```html
+<input name="live2dBGM" value="音乐地址" type="hidden">
+```
+在 需要页面的 body 标签结束前插入如下代码:
+```html
+<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.7.1/jquery.min.js"></script>
+<script>
+var message_Path = '/live2d/';//资源目录,如果目录不对请更改
+var talkAPI = "";//如果有类似图灵机器人的聊天接口请填写接口路径
+</script>
+<script type="text/javascript" src="live2d/js/live2d.js"></script>
+<script type="text/javascript" src="live2d/js/message.js"></script>
+```
+
+鼠标放在页面某个元素上时,需要 Live2D 看板娘提示的请修改 message.json 文件。
+
+**示例:**
+
+	{
+		"mouseover": [
+			{
+				"selector": ".title a",  //此处修改为你页面元素的标签名
+				"text": ["要看看 {text} 么?"]  //此处修改为你需要提示的文字
+			},
+			{
+				"selector": "#searchbox",
+				"text": ["在找什么东西呢,需要帮忙吗?"]
+			}
+		],
+		"click": [  //此处是 Live2D 看板娘的触摸事件提示
+			{
+				"selector": "#landlord #live2d",
+				"text": ["不要动手动脚的!快把手拿开~~", "真…真的是不知羞耻!","Hentai!", "再摸的话我可要报警了!⌇●﹏●⌇", "110吗,这里有个变态一直在摸我(ó﹏ò。)"]
+			}
+		]
+	}
+
+
+然后,刷新你的页面,看看效果吧!
+
+注意路径别弄错了噢 ~  
+PHP 程序推荐使用主题函数获取绝对路径。
+
+### 效果预览
+![](https://t1.aixinxi.net/o_1c3mofql9osmpeb1hfvsbv1hqua.gif-j.jpg)  
+
+	
+### 模型说明
+本插件仅供学习和交流使用,禁止用于商业用途。
+本插件用到的模型为《超次元游戏海王星》系列中的伊斯特瓦尔,动作表情则是取自Live2d官网的demo,故版权归各官方所有。
+原项目使用了 GPL v2 开源协议。

+ 45 - 0
Live2dHistoire/demo.html

@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+	<title>Live2D!</title>
+    <link rel="stylesheet" href="live2d/css/live2d.css" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+</head>
+<body>
+<div id="landlord" style="left:5px;bottom:0px;">
+    <div class="message" style="opacity:0"></div>
+    <canvas id="live2d" width="500" height="560" class="live2d"></canvas>
+    <div class="live_talk_input_body">
+    	<div class="live_talk_input_name_body">
+        	<input name="name" type="text" class="live_talk_name white_input" id="AIuserName" autocomplete="off" placeholder="你的名字" />
+        </div>
+        <div class="live_talk_input_text_body">
+        	<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?"/>
+            <button type="button" class="live_talk_send_btn" id="talk_send">发送</button>
+        </div>
+    </div>
+    <input name="live_talk" id="live_talk" value="1" type="hidden" />
+    <div class="live_ico_box">
+    	<div class="live_ico_item type_info" id="showInfoBtn"></div>
+    	<div class="live_ico_item type_talk" id="showTalkBtn"></div>
+        <div class="live_ico_item type_music" id="musicButton"></div>
+        <div class="live_ico_item type_youdu" id="youduButton"></div>
+        <div class="live_ico_item type_quit" id="hideButton"></div>
+        <input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
+        <audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
+        <input name="live2dBGM" value="https://t1.aixinxi.net/o_1c52p4qbp15idv6bl55h381moha.mp3" type="hidden">
+        <input name="live2dBGM" value="https://t1.aixinxi.net/o_1c52p8frrlmf1aled1e14m56una.mp3" type="hidden">
+        <input id="duType" value="douqilai,l2d_caihong" type="hidden">
+    </div>
+</div>
+<div id="open_live2d">召唤伊斯特瓦尔</div>
+<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.7.1/jquery.min.js"></script>
+<script>
+var message_Path = '/histoire/live2d/';//资源目录,如果目录不对请更改
+var talkAPI = "";//如果有类似图灵机器人的聊天接口请填写接口路径
+</script>
+<script type="text/javascript" src="live2d/js/live2d.js"></script>
+<script type="text/javascript" src="live2d/js/message.js"></script>
+</body>
+</html>

+ 940 - 0
Live2dHistoire/live2d/css/live2d.css

@@ -0,0 +1,940 @@
+#landlord {
+    user-select: none;
+    position: fixed;
+    left: 5px;
+    bottom: 0;
+    width: 250px;
+    height: 280px;
+    z-index: 10000;
+    font-size: 0;
+    /*transition: all .3s ease-in-out;*/
+	display:none;
+}
+#open_live2d{
+	border: 2px solid rgba(75,127,199,0.9);
+    border-radius: 2px;
+    background-color: rgba(74, 59, 114,0.9);
+	padding:2px 10px;
+	color:#fff;
+	height:24px;
+	line-height:24px;
+	font-size:12px;
+	position:fixed;
+	right:5px;
+	bottom:5px;
+	z-index:10000;
+	cursor:pointer;
+	display:none;
+}
+#showInfoBtn{
+ 	display:none;
+}
+#live2d {
+	width: 250px;
+    height: 280px;
+    position: relative;
+	z-index:3;
+}
+
+.message {
+    opacity: 0;
+    color: #fff;
+	box-sizing: border-box;
+    width: 250px;
+    height: auto;
+    margin: auto;
+    padding: 7px;
+    bottom: 280px;
+    left: 0px;
+    text-align: center;
+    border: 2px solid rgba(75,127,199,0.9);
+    border-radius: 5px;
+    background-color: rgba(74, 59, 114,0.9);
+    font-size: 13px;
+    font-weight: 400;
+    text-overflow: ellipsis;
+    text-transform: uppercase;
+    overflow: hidden;
+    position: absolute;
+    /*animation-delay: 5s;
+    animation-duration: 50s;
+    animation-iteration-count: infinite;
+    animation-name: shake;
+    animation-timing-function: ease-in-out;*/
+}
+.live_talk_input_body{
+	position:absolute;
+	bottom:15px;
+	left:0;
+	width:250px;
+	display:none;
+	z-index:4;
+}
+.live_talk_input_text_body{
+	width:250px;
+	box-sizing:border-box;
+	height:28px;
+	border: 2px solid rgb(223, 179, 241);
+    border-radius: 5px;
+    background-color: rgba(74, 59, 114,0.9);
+}
+.live_talk_input_name_body{
+	width:70px;
+	box-sizing:border-box;
+	height:24px;
+	border: 2px solid rgb(223, 179, 241);
+    border-radius: 5px;
+    background-color: rgba(74, 59, 114,0.9);
+	margin-bottom:3px;
+}
+.live_talk_name{
+	background-color:transparent;
+	border:0px;
+	margin:0;
+	width:66px;
+	height:20px;
+	line-height:20px;
+	text-align:center;
+	font-size:12px;
+	color:#fff;
+	outline:none;
+	box-sizing:border-box;
+	padding:0 3px;
+}
+.live_talk_talk{
+	background-color:transparent;
+	border:0px;
+	margin:0;
+	width:206px;
+	height:24px;
+	line-height:24px;
+	text-align:left;
+	font-size:12px;
+	color:#fff;
+	outline:none;
+	box-sizing:border-box;
+	padding:0 3px;
+	float:left;
+}
+.live_talk_send_btn{
+	background-color:transparent;
+	color:#fff;
+	border:0px;
+	cursor:pointer;
+	padding:0 4px;
+	border-left:1px solid #fff;
+	font-size:12px;
+	float:right;
+	height:18px;
+	line-height:18px;
+	outline:none;
+	margin:3px 0 0 0;
+}
+.white_input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
+    color: #E4E4E4;  
+	opacity: 1;
+}
+ 
+.white_input::-moz-placeholder {  /* Mozilla Firefox 19+*/ 
+    color: #E4E4E4;
+	opacity: 1;
+}
+ 
+.white_input:-ms-input-placeholder {
+    color: #E4E4E4;
+}
+ 
+.white_input::-webkit-input-placeholder {
+    color: #E4E4E4;
+}
+
+
+.hide-button {
+    position: absolute;
+    top: 10px;
+    right: 0;
+    /* bottom: 30px; */
+    display: none;
+    overflow: hidden;
+    /* padding: 4px; */
+    width: 60px;
+    height: 20px;
+    border: 1px solid rgba(255,137,255,.4);
+    border-radius: 12px;
+    background: rgba(255,137,255,.2);
+    box-shadow: 0 3px 15px 2px rgba(255,137,255,.4);
+    text-align: center;
+    font-size: 12px;
+    cursor: pointer;
+}
+
+.hide-button:hover {
+    border: 1px solid #f4a7b9;
+    background: #f4f6f8;
+}
+.live_ico_box{
+	width:15px;
+	position:absolute;
+	z-index:5;
+	right:0;
+	top:10px;
+	opacity:0.9;
+}
+.live_ico_item{
+	width:15px;
+	height: 20px;
+	cursor:pointer;
+	background-position:center center;
+	background-repeat:no-repeat;
+	background-size:15px;
+}
+.live_ico_item.type_talk{
+	background-image:url(../images/talk.png);
+}
+.live_ico_item.type_quit{
+	background-image:url(../images/quite.png);
+}
+.live_ico_item.type_info{
+	background-image:url(../images/info.png);
+}
+.live_ico_item.type_music{
+	background-image:url(../images/music.png);
+}
+.live_ico_item.type_youdu{
+	background-image:url(../images/youdu.png);
+}
+.live_ico_item.type_music.play{
+	background-image:url(../images/pasue.png);
+}
+.live_ico_item.type_youdu.doudong{
+    -webkit-animation-name: shake-little;
+    -ms-animation-name: shake-little;
+    animation-name: shake-little;
+    -webkit-animation-duration: 100ms;
+    -ms-animation-duration: 100ms;
+    animation-duration: 100ms;
+    -webkit-animation-iteration-count: infinite;
+    -ms-animation-iteration-count: infinite;
+    animation-iteration-count: infinite;
+    -webkit-animation-timing-function: ease-in-out;
+    -ms-animation-timing-function: ease-in-out;
+    animation-timing-function: ease-in-out;
+    -webkit-animation-delay: 0s;
+    -ms-animation-delay: 0s;
+    animation-delay: 0s;
+    -webkit-animation-play-state: running;
+    -ms-animation-play-state: running;
+    animation-play-state: running
+}
+.douqilai,.douqilai *{
+    animation: shake-it .5s reverse infinite cubic-bezier(0.68, -0.55, 0.27, 1.55);
+}
+.l2d_caihong{
+    animation: rainbow 1.5s infinite;
+}
+@media (max-width: 860px) {
+    #landlord {
+        display: none!important;
+    }
+}
+
+@keyframes shake {
+    2% {
+        transform: translate(0.5px, -1.5px) rotate(-0.5deg);
+    }
+
+    4% {
+        transform: translate(0.5px, 1.5px) rotate(1.5deg);
+    }
+
+    6% {
+        transform: translate(1.5px, 1.5px) rotate(1.5deg);
+    }
+
+    8% {
+        transform: translate(2.5px, 1.5px) rotate(0.5deg);
+    }
+
+    10% {
+        transform: translate(0.5px, 2.5px) rotate(0.5deg);
+    }
+
+    12% {
+        transform: translate(1.5px, 1.5px) rotate(0.5deg);
+    }
+
+    14% {
+        transform: translate(0.5px, 0.5px) rotate(0.5deg);
+    }
+
+    16% {
+        transform: translate(-1.5px, -0.5px) rotate(1.5deg);
+    }
+
+    18% {
+        transform: translate(0.5px, 0.5px) rotate(1.5deg);
+    }
+
+    20% {
+        transform: translate(2.5px, 2.5px) rotate(1.5deg);
+    }
+
+    22% {
+        transform: translate(0.5px, -1.5px) rotate(1.5deg);
+    }
+
+    24% {
+        transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
+    }
+
+    26% {
+        transform: translate(1.5px, 0.5px) rotate(1.5deg);
+    }
+
+    28% {
+        transform: translate(-0.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    30% {
+        transform: translate(1.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    32% {
+        transform: translate(2.5px, -1.5px) rotate(1.5deg);
+    }
+
+    34% {
+        transform: translate(2.5px, 2.5px) rotate(-0.5deg);
+    }
+
+    36% {
+        transform: translate(0.5px, -1.5px) rotate(0.5deg);
+    }
+
+    38% {
+        transform: translate(2.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    40% {
+        transform: translate(-0.5px, 2.5px) rotate(0.5deg);
+    }
+
+    42% {
+        transform: translate(-1.5px, 2.5px) rotate(0.5deg);
+    }
+
+    44% {
+        transform: translate(-1.5px, 1.5px) rotate(0.5deg);
+    }
+
+    46% {
+        transform: translate(1.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    48% {
+        transform: translate(2.5px, -0.5px) rotate(0.5deg);
+    }
+
+    50% {
+        transform: translate(-1.5px, 1.5px) rotate(0.5deg);
+    }
+
+    52% {
+        transform: translate(-0.5px, 1.5px) rotate(0.5deg);
+    }
+
+    54% {
+        transform: translate(-1.5px, 1.5px) rotate(0.5deg);
+    }
+
+    56% {
+        transform: translate(0.5px, 2.5px) rotate(1.5deg);
+    }
+
+    58% {
+        transform: translate(2.5px, 2.5px) rotate(0.5deg);
+    }
+
+    60% {
+        transform: translate(2.5px, -1.5px) rotate(1.5deg);
+    }
+
+    62% {
+        transform: translate(-1.5px, 0.5px) rotate(1.5deg);
+    }
+
+    64% {
+        transform: translate(-1.5px, 1.5px) rotate(1.5deg);
+    }
+
+    66% {
+        transform: translate(0.5px, 2.5px) rotate(1.5deg);
+    }
+
+    68% {
+        transform: translate(2.5px, -1.5px) rotate(1.5deg);
+    }
+
+    70% {
+        transform: translate(2.5px, 2.5px) rotate(0.5deg);
+    }
+
+    72% {
+        transform: translate(-0.5px, -1.5px) rotate(1.5deg);
+    }
+
+    74% {
+        transform: translate(-1.5px, 2.5px) rotate(1.5deg);
+    }
+
+    76% {
+        transform: translate(-1.5px, 2.5px) rotate(1.5deg);
+    }
+
+    78% {
+        transform: translate(-1.5px, 2.5px) rotate(0.5deg);
+    }
+
+    80% {
+        transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
+    }
+
+    82% {
+        transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
+    }
+
+    84% {
+        transform: translate(-0.5px, 0.5px) rotate(1.5deg);
+    }
+
+    86% {
+        transform: translate(2.5px, 1.5px) rotate(0.5deg);
+    }
+
+    88% {
+        transform: translate(-1.5px, 0.5px) rotate(1.5deg);
+    }
+
+    90% {
+        transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    92% {
+        transform: translate(-1.5px, -1.5px) rotate(1.5deg);
+    }
+
+    94% {
+        transform: translate(0.5px, 0.5px) rotate(-0.5deg);
+    }
+
+    96% {
+        transform: translate(2.5px, -0.5px) rotate(-0.5deg);
+    }
+
+    98% {
+        transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
+    }
+
+    0%, 100% {
+        transform: translate(0, 0) rotate(0);
+    }
+}
+
+@keyframes quan {
+      0%   { transform:rotate(0);
+             animation-timing-function:linear; }
+      100% { transform:rotate(360deg); }
+}
+@-webkit-keyframes quan {
+      0%   { -webkit-transform:rotate(0);
+             -webkit-animation-timing-function:linear; }
+      100% { -webkit-transform:rotate(360deg); }
+}
+@-moz-keyframes quan {
+      0%   { -moz-transform:rotate(0);
+             -moz-animation-timing-function:linear; }
+      100% { -moz-transform:rotate(360deg); }
+}
+@-o-keyframes quan {
+      0%   { -o-transform:rotate(0);
+             -o-animation-timing-function:linear; }
+      100% { -o-transform:rotate(360deg); }
+}
+@-ms-keyframes quan {
+      0%   { -ms-transform:rotate(0);
+             -ms-animation-timing-function:linear; }
+      100% { -ms-transform:rotate(360deg); }
+}
+@-webkit-keyframes shake-little {
+    0% {
+        -webkit-transform: translate(0px, 0px) rotate(0deg)
+    }
+    2% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    4% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    6% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    8% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    10% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    12% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    14% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    16% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    18% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    20% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    22% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    24% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    26% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    28% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    30% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    32% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    34% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    36% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    38% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    40% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    42% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    44% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    46% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    48% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    50% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    52% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    54% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    56% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    58% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    60% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    62% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    64% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    66% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    68% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    70% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    72% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    74% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    76% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    78% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    80% {
+        -webkit-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    82% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    84% {
+        -webkit-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    86% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    88% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    90% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    92% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    94% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    96% {
+        -webkit-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    98% {
+        -webkit-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+}
+@-ms-keyframes shake-little {
+    0% {
+        -ms-transform: translate(0px, 0px) rotate(0deg)
+    }
+    2% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    4% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    6% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    8% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    10% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    12% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    14% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    16% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    18% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    20% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    22% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    24% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    26% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    28% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    30% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    32% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    34% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    36% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    38% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    40% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    42% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    44% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    46% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    48% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    50% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    52% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    54% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    56% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    58% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    60% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    62% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    64% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    66% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    68% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    70% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    72% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    74% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    76% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    78% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    80% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    82% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    84% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    86% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    88% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    90% {
+        -ms-transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    92% {
+        -ms-transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    94% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    96% {
+        -ms-transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    98% {
+        -ms-transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+}
+@keyframes shake-little {
+    0% {
+        transform: translate(0px, 0px) rotate(0deg)
+    }
+    2% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    4% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    6% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    8% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    10% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    12% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    14% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    16% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    18% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    20% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    22% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    24% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    26% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    28% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    30% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    32% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    34% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    36% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    38% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    40% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    42% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    44% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    46% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    48% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    50% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    52% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    54% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    56% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    58% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    60% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    62% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    64% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    66% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    68% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    70% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    72% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    74% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    76% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    78% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    80% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    82% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    84% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    86% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    88% {
+        transform: translate(0px, 0px) rotate(-0.5deg)
+    }
+    90% {
+        transform: translate(-1px, -1px) rotate(-0.5deg)
+    }
+    92% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    94% {
+        transform: translate(-1px, 0px) rotate(-0.5deg)
+    }
+    96% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+    98% {
+        transform: translate(0px, -1px) rotate(-0.5deg)
+    }
+}
+@keyframes shake-it{
+    0%{
+        text-shadow: 0 0 rgba(0, 255, 255, .5), 0 0 rgba(255, 0, 0, .5);
+    }
+    25%{
+        text-shadow: -2px 0 rgba(0, 255, 255, .5), 2px 0 rgba(255, 0, 0, .5);
+    }
+    50%{
+        text-shadow: -5px 0 rgba(0, 255, 255, .5), 3px 0 rgba(255, 0, 0, .5);
+    }
+    100%{
+        text-shadow: 3px 0 rgba(0, 255, 255, .5), 5px 0 rgba(255, 0, 0, .5);
+    }
+}
+@keyframes rainbow {
+    100% { filter: hue-rotate(360deg); }
+}

BIN
Live2dHistoire/live2d/images/info.png


BIN
Live2dHistoire/live2d/images/music.png


BIN
Live2dHistoire/live2d/images/pasue.png


BIN
Live2dHistoire/live2d/images/quite.png


BIN
Live2dHistoire/live2d/images/talk.png


BIN
Live2dHistoire/live2d/images/youdu.png


ファイルの差分が大きいため隠しています
+ 1 - 0
Live2dHistoire/live2d/js/live2d.js


+ 482 - 0
Live2dHistoire/live2d/js/message.js

@@ -0,0 +1,482 @@
+var home_Path = document.location.protocol +'//' + window.document.location.hostname +'/';
+
+var userAgent = window.navigator.userAgent.toLowerCase();
+console.log(userAgent);
+var norunAI = [ "android", "iphone", "ipod", "ipad", "windows phone"];
+var norunFlag = false;
+
+
+for(var i=0;i<norunAI.length;i++){
+	if(userAgent.indexOf(norunAI[i]) > -1){
+		norunFlag = true;
+		break;
+	}
+}
+
+if(!window.WebGLRenderingContext){
+	norunFlag = true;
+}
+
+if(!norunFlag){
+	var hitFlag = false;
+	var AIFadeFlag = false;
+	var liveTlakTimer = null;
+	var sleepTimer_ = null;
+	var AITalkFlag = false;
+	var talkNum = 0;
+	(function (){
+		function renderTip(template, context) {
+			var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g;
+			return template.replace(tokenReg, function (word, slash1, token, slash2) {
+				if (slash1 || slash2) {
+					return word.replace('\\', '');
+				}
+				var variables = token.replace(/\s/g, '').split('.');
+				var currentObject = context;
+				var i, length, variable;
+				for (i = 0, length = variables.length; i < length; ++i) {
+					variable = variables[i];
+					currentObject = currentObject[variable];
+					if (currentObject === undefined || currentObject === null) return '';
+				}
+				return currentObject;
+			});
+		}
+		
+		String.prototype.renderTip = function (context) {
+			return renderTip(this, context);
+		};
+		
+		var re = /x/;
+		re.toString = function() {
+			showMessage('哈哈,你打开了控制台,是想要看看我的秘密吗?', 5000);
+			return '';
+		};
+		
+		$(document).on('copy', function (){
+			showMessage('你都复制了些什么呀,转载要记得加上出处哦~~', 5000);
+		});
+		
+		function initTips(){
+			$.ajax({
+				cache: true,
+				url: message_Path+'message.json',
+				dataType: "json",
+				success: function (result){
+					$.each(result.mouseover, function (index, tips){
+						$(tips.selector).mouseover(function (){
+							var text = tips.text;
+							if(Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1)-1];
+							text = text.renderTip({text: $(this).text()});
+							showMessage(text, 3000);
+							talkValTimer();
+							clearInterval(liveTlakTimer);
+							liveTlakTimer = null;
+						});
+						$(tips.selector).mouseout(function (){
+							showHitokoto();
+							if(liveTlakTimer == null){
+								liveTlakTimer = window.setInterval(function(){
+									showHitokoto();
+								},15000);
+							};
+						});
+					});
+					$.each(result.click, function (index, tips){
+						$(tips.selector).click(function (){
+							if(hitFlag){
+								return false
+							}
+							hitFlag = true;
+							setTimeout(function(){
+								hitFlag = false;
+							},8000);
+							var text = tips.text;
+							if(Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1)-1];
+							text = text.renderTip({text: $(this).text()});
+							showMessage(text, 3000);
+						});
+						clearInterval(liveTlakTimer);
+						liveTlakTimer = null;
+						if(liveTlakTimer == null){
+							liveTlakTimer = window.setInterval(function(){
+								showHitokoto();
+							},15000);
+						};
+					});
+				}
+			});
+		}
+		initTips();
+	
+		var text;
+		if(document.referrer !== '' && document.referrer.split('/')[2] !== window.location.host ){
+			var referrer = document.createElement('a');
+			referrer.href = document.referrer;
+			text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
+			var domain = referrer.hostname.split('.')[1];
+			if (domain == 'baidu') {
+				text = '嗨! 来自 百度搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
+			}else if (domain == 'so') {
+				text = '嗨! 来自 360搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
+			}else if (domain == 'google') {
+				text = '嗨! 来自 谷歌搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
+			}
+		}else {
+			if (window.location.href == home_Path) { //主页URL判断,需要斜杠结尾
+				var now = (new Date()).getHours();
+				if (now > 23 || now <= 5) {
+					text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
+				} else if (now > 5 && now <= 7) {
+					text = '早上好!一日之计在于晨,美好的一天就要开始了!';
+				} else if (now > 7 && now <= 11) {
+					text = '上午好!工作顺利嘛,不要久坐,多起来走动走动哦!';
+				} else if (now > 11 && now <= 14) {
+					text = '中午了,工作了一个上午,现在是午餐时间!';
+				} else if (now > 14 && now <= 17) {
+					text = '午后很容易犯困呢,今天的运动目标完成了吗?';
+				} else if (now > 17 && now <= 19) {
+					text = '傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~~';
+				} else if (now > 19 && now <= 21) {
+					text = '晚上好,今天过得怎么样?';
+				} else if (now > 21 && now <= 23) {
+					text = '已经这么晚了呀,早点休息吧,晚安~~';
+				} else {
+					text = '嗨~ 快来逗我玩吧!';
+				}
+			}else {
+				text = '欢迎阅读<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
+			}
+		}
+		showMessage(text, 12000);
+	})();
+	
+	liveTlakTimer = setInterval(function(){
+		showHitokoto();
+	},15000);
+	
+	function showHitokoto(){
+		if(sessionStorage.getItem("Sleepy")!=="1"){
+			if(!AITalkFlag){
+				$.getJSON('https://v1.hitokoto.cn/',function(result){
+					talkValTimer();
+					showMessage(result.hitokoto, 0);
+				});
+			}
+		}else{
+			hideMessage(0);
+			if(sleepTimer_==null){
+				sleepTimer_ = setInterval(function(){
+					checkSleep();
+				},200);
+			}
+			console.log(sleepTimer_);
+		}
+	}
+	
+	function checkSleep(){
+		var sleepStatu = sessionStorage.getItem("Sleepy");
+		if(sleepStatu!=='1'){
+			talkValTimer();
+			showMessage('你回来啦~', 0);
+			clearInterval(sleepTimer_);
+			sleepTimer_= null;
+		}
+	}
+	
+	function showMessage(text, timeout){
+		if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1];
+		//console.log('showMessage', text);
+		$('.message').stop();
+		$('.message').html(text);
+		$('.message').fadeTo(200, 1);
+		//if (timeout === null) timeout = 5000;
+		//hideMessage(timeout);
+	}
+	function talkValTimer(){
+		$('#live_talk').val('1');
+	}
+	
+	function hideMessage(timeout){
+		//$('.message').stop().css('opacity',1);
+		if (timeout === null) timeout = 5000;
+		$('.message').delay(timeout).fadeTo(200, 0);
+	}
+	
+	function initLive2d (){
+		$('#hideButton').on('click', function(){
+			if(AIFadeFlag){
+				return false;
+			}else{
+				AIFadeFlag = true;
+				localStorage.setItem("live2dhidden", "0");
+				$('#landlord').fadeOut(200);
+				$('#open_live2d').delay(200).fadeIn(200);
+				setTimeout(function(){
+					AIFadeFlag = false;
+				},300);
+			}
+		});
+		$('#open_live2d').on('click', function(){
+			if(AIFadeFlag){
+				return false;
+			}else{
+				AIFadeFlag = true;
+				localStorage.setItem("live2dhidden", "1");
+				$('#open_live2d').fadeOut(200);
+				$('#landlord').delay(200).fadeIn(200);
+				setTimeout(function(){
+					AIFadeFlag = false;
+				},300);
+			}
+		});
+		$('#youduButton').on('click',function(){
+			if($('#youduButton').hasClass('doudong')){
+				var typeIs = $('#youduButton').attr('data-type');
+				$('#youduButton').removeClass('doudong');
+				$('body').removeClass(typeIs);
+				$('#youduButton').attr('data-type','');
+			}else{
+				var duType = $('#duType').val();
+				var duArr = duType.split(",");
+				var dataType = duArr[Math.floor(Math.random() * duArr.length)];
+
+				$('#youduButton').addClass('doudong');
+				$('#youduButton').attr('data-type',dataType);
+				$('body').addClass(dataType);
+			}
+		});
+		if(talkAPI!==""){
+			$('#showInfoBtn').on('click',function(){
+				var live_statu = $('#live_statu_val').val();
+				if(live_statu=="0"){
+					return
+				}else{
+					$('#live_statu_val').val("0");
+					$('.live_talk_input_body').fadeOut(500);
+					AITalkFlag = false;
+					showHitokoto();
+					$('#showTalkBtn').show();
+					$('#showInfoBtn').hide();
+				}
+			});
+			$('#showTalkBtn').on('click',function(){
+				var live_statu = $('#live_statu_val').val();
+				if(live_statu=="1"){
+					return
+				}else{
+					$('#live_statu_val').val("1");
+					$('.live_talk_input_body').fadeIn(500);
+					AITalkFlag = true;
+					$('#showTalkBtn').hide();
+					$('#showInfoBtn').show();
+					
+				}
+			});
+			$('#talk_send').on('click',function(){
+				var info_ = $('#AIuserText').val();
+				var userid_ = $('#AIuserName').val();
+				if(info_ == "" ){
+					showMessage('写点什么吧!',0);
+					return;
+				}
+				if(userid_ == ""){
+					showMessage('聊之前请告诉我你的名字吧!',0);
+					return;
+				}
+				showMessage('思考中~', 0);
+				$.ajax({
+					type: 'POST',
+					url: talkAPI,
+					data: {
+						"info":info_,
+						"userid":userid_
+					},
+					success: function(res) {
+						if(res.code !== 100000){
+							talkValTimer();
+							showMessage('似乎有什么错误,请和站长联系!',0);
+						}else{
+							talkValTimer();
+							showMessage(res.text,0);
+						}
+						console.log(res);
+						$('#AIuserText').val("");
+						sessionStorage.setItem("live2duser", userid_);
+					}
+				});
+			});
+		}else{
+			$('#showInfoBtn').hide();
+			$('#showTalkBtn').hide();
+			
+		}
+		//获取音乐信息初始化
+		var bgmListInfo = $('input[name=live2dBGM]');
+		if(bgmListInfo.length == 0){
+			$('#musicButton').hide();
+		}else{
+			var bgmPlayNow = parseInt($('#live2d_bgm').attr('data-bgm'));
+			var bgmPlayTime = 0;
+			var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
+			var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
+			if(live2dBGM_Num){
+				if(live2dBGM_Num<=$('input[name=live2dBGM]').length-1){
+					bgmPlayNow = parseInt(live2dBGM_Num);
+				}
+			}
+			if(live2dBGM_PlayTime){
+				bgmPlayTime = parseInt(live2dBGM_PlayTime);
+			}
+			var live2dBGMSrc = bgmListInfo.eq(bgmPlayNow).val();
+			$('#live2d_bgm').attr('data-bgm',bgmPlayNow);
+			$('#live2d_bgm').attr('src',live2dBGMSrc);
+			$('#live2d_bgm')[0].currentTime = bgmPlayTime;
+			$('#live2d_bgm')[0].volume = 0.5;
+			var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
+			var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
+			if(live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0'){
+				$('#live2d_bgm')[0].play();
+				$('#musicButton').addClass('play');
+			}
+			sessionStorage.setItem("live2dBGM_WindowClose" , '1');
+			$('#musicButton').on('click',function(){
+				if($('#musicButton').hasClass('play')){
+					$('#live2d_bgm')[0].pause();
+					$('#musicButton').removeClass('play');
+					sessionStorage.setItem("live2dBGM_IsPlay",'1');
+				}else{
+					$('#live2d_bgm')[0].play();
+					$('#musicButton').addClass('play');
+					sessionStorage.setItem("live2dBGM_IsPlay",'0');
+				}
+			});
+			window.onbeforeunload = function(){ 
+			 	sessionStorage.setItem("live2dBGM_WindowClose" , '0');
+				if($('#musicButton').hasClass('play')){
+					sessionStorage.setItem("live2dBGM_IsPlay",'0');
+				}
+			} 
+			document.getElementById('live2d_bgm').addEventListener("timeupdate", function(){
+				var live2dBgmPlayTimeNow = document.getElementById('live2d_bgm').currentTime;
+				sessionStorage.setItem("live2dBGM_PlayTime" , live2dBgmPlayTimeNow );
+			});
+			document.getElementById('live2d_bgm').addEventListener("ended", function(){
+				var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
+				listNow ++ ;
+				if(listNow > $('input[name=live2dBGM]').length-1){
+					listNow = 0;
+				}
+				var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
+				sessionStorage.setItem("live2dBGM_Num",listNow);
+				$('#live2d_bgm').attr('src',listNewSrc);
+				$('#live2d_bgm')[0].play();
+				$('#live2d_bgm').attr('data-bgm',listNow);
+			});
+			document.getElementById('live2d_bgm').addEventListener("error", function(){
+				$('#live2d_bgm')[0].pause();
+				$('#musicButton').removeClass('play');
+				showMessage('音乐似乎加载不出来了呢!',0);
+			});
+		}
+		//获取用户名
+		var live2dUser = sessionStorage.getItem("live2duser");
+		if(live2dUser !== null){
+			$('#AIuserName').val(live2dUser);
+		}
+		//获取位置
+		var landL = sessionStorage.getItem("historywidth");
+		var landB = sessionStorage.getItem("historyheight");
+		if(landL == null || landB ==null){
+			landL = '5px'
+			landB = '0px'
+		}
+		$('#landlord').css('left',landL+'px');
+		$('#landlord').css('bottom',landB + 'px');
+		//移动
+		function getEvent() {
+			return window.event || arguments.callee.caller.arguments[0];
+		}
+		var smcc = document.getElementById("landlord");
+		var moveX = 0;
+		var moveY = 0;
+		var moveBottom = 0;
+		var moveLeft = 0;
+		var moveable = false;
+		var docMouseMoveEvent = document.onmousemove;
+		var docMouseUpEvent = document.onmouseup;
+		smcc.onmousedown = function(){
+			var ent = getEvent();
+			moveable = true;
+			moveX = ent.clientX;
+			moveY = ent.clientY;
+			var obj = smcc;
+			moveBottom = parseInt(obj.style.bottom);
+			moveLeft = parseInt(obj.style.left);
+			if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
+				window.getSelection().removeAllRanges();
+			}			
+			document.onmousemove = function(){
+				if(moveable){
+					var ent = getEvent();
+					var x = moveLeft + ent.clientX - moveX;
+					var y = moveBottom +  (moveY - ent.clientY);
+					obj.style.left = x + "px";
+					obj.style.bottom = y + "px";
+				}
+			};
+			document.onmouseup = function(){
+				if(moveable){
+					var historywidth = obj.style.left;
+					var historyheight = obj.style.bottom;
+					historywidth = historywidth.replace('px', '');
+					historyheight = historyheight.replace('px', '');
+					sessionStorage.setItem("historywidth", historywidth);
+					sessionStorage.setItem("historyheight", historyheight);
+					document.onmousemove = docMouseMoveEvent;
+					document.onmouseup = docMouseUpEvent;
+					moveable = false; 
+					moveX = 0;
+					moveY = 0;
+					moveBottom = 0;
+					moveLeft = 0;
+				}
+			};
+		};
+	}
+	$(document).ready(function() {
+		var AIimgSrc = [
+			home_Path + message_Path + "model/histoire/histoire.1024/texture_00.png",
+			home_Path + message_Path + "model/histoire/histoire.1024/texture_01.png",
+			home_Path + message_Path + "model/histoire/histoire.1024/texture_02.png",
+			home_Path + message_Path + "model/histoire/histoire.1024/texture_03.png"
+		]
+		var images = [];
+		var imgLength = AIimgSrc.length;
+		var loadingNum = 0;
+		for(var i=0;i<imgLength;i++){
+			images[i] = new Image();
+			images[i].src = AIimgSrc[i];
+			images[i].onload = function(){
+				loadingNum++;
+				if(loadingNum===imgLength){
+					var live2dhidden = localStorage.getItem("live2dhidden");
+					if(live2dhidden==="0"){
+						setTimeout(function(){
+							$('#open_live2d').fadeIn(200);
+						},1300);
+					}else{
+						setTimeout(function(){
+							$('#landlord').fadeIn(200);
+						},1300);
+					}
+					setTimeout(function(){
+						loadlive2d("live2d", message_Path+"model/histoire/model.json");
+					},1000);
+					initLive2d ();
+					images = null;
+				}
+			}
+		}
+	});
+}

+ 42 - 0
Live2dHistoire/live2d/message.json

@@ -0,0 +1,42 @@
+{
+    "mouseover": [
+        {
+            "selector": "#showInfoBtn",
+            "text": ["不和我聊了吗?"]
+        },
+		{
+            "selector": "#showTalkBtn",
+            "text": ["要和我聊天吗?"]
+        },
+		{
+            "selector": "#hideButton",
+            "text": ["隐藏伊斯特瓦尔,希望隐藏后我们还能再见面!"]
+        },
+		{
+            "selector": "#musicButton",
+            "text": ["给页面加点音乐吗?"]
+        },
+        {
+            "selector": "#youduButton",
+            "text": ["按钮有毒,癫痫患者不要开启!!!<br>点一下开启,再点一下可以关闭。"]
+        },
+		{
+            "selector": ".post-link",
+            "text": ["要看看 {text} 么?"]
+        },
+        {
+            "selector": "#search-input",
+            "text": ["在找什么东西呢,需要帮忙吗?"]
+        },
+	{
+            "selector": "#search-input-all",
+            "text": ["在找什么东西呢,需要帮忙吗?"]
+        }
+    ],
+    "click": [
+        {
+            "selector": "#landlord #live2d",
+            "text": ["不要动手动脚的!快把手拿开~~", "真…真的是不知羞耻!","Hentai!", "再摸的话我可要报警了!", "110吗,这里有个变态!"]
+        }
+    ]
+}

BIN
Live2dHistoire/live2d/model/histoire/histoire.1024/texture_00.png


BIN
Live2dHistoire/live2d/model/histoire/histoire.1024/texture_01.png


BIN
Live2dHistoire/live2d/model/histoire/histoire.1024/texture_02.png


BIN
Live2dHistoire/live2d/model/histoire/histoire.1024/texture_03.png


BIN
Live2dHistoire/live2d/model/histoire/ico_histoire.png


+ 59 - 0
Live2dHistoire/live2d/model/histoire/model.json

@@ -0,0 +1,59 @@
+{
+    "version":"1.0.0",
+    "model":"model.moc",
+    "textures":[
+        "histoire.1024/texture_00.png",
+		"histoire.1024/texture_01.png",
+		"histoire.1024/texture_02.png",
+		"histoire.1024/texture_03.png"
+    ],
+    "layout":{
+        "center_x":0.0,
+        "center_y":-0.05,
+        "width":2.0
+    },
+    "hit_areas_custom":{
+        "head_x":[-1, 1],
+        "head_y":[1, -1],
+        "body_x":[-1, -1],
+        "body_y":[1, -1]
+    },
+    "motions":{
+        "idle":[
+            {"file":"motions/idle/NOZOMU_M01.mtn"},
+			{"file":"motions/idle/NOZOMU_M02.mtn"}
+        ],
+        "sleepy":[
+			{"file":"motions/idle/NOZOMU_M04.mtn"}
+        ],
+        "flick_head":[
+			{"file":"motions/tap/DK_NOZOMU_0011.mtn"},
+			{"file":"motions/tap/tsumiki_m_14.mtn"},
+			{"file":"motions/tap/m_06.mtn"}
+        ],
+        "tap_body":[
+			{"file":"motions/tap/DK_NOZOMU_0011.mtn"},
+			{"file":"motions/tap/m_13.mtn"}
+
+        ],
+        "talk":[
+			{"file":"motions/tap/DK_NOZOMU_0041.mtn"},
+			{"file":"motions/tap/DK_NOZOMU_0061.mtn"},
+			{"file":"motions/tap/DK_NOZOMU_0067.mtn"}
+        ],
+		"rest":[
+			{"file":"motions/tap/tsumiki_m_01.mtn"},
+			{"file":"motions/tap/tsumiki_m_09.mtn"},
+			{"file":"motions/tap/tsumiki_m_13.mtn"},
+			{"file":"motions/tap/tsumiki_m_19.mtn"},
+			{"file":"motions/tap/tsumiki_m_21.mtn"}
+        ],
+		"":[
+			{"file":"motions/tap/tsumiki_m_01.mtn"},
+			{"file":"motions/tap/tsumiki_m_09.mtn"},
+			{"file":"motions/tap/tsumiki_m_13.mtn"},
+			{"file":"motions/tap/tsumiki_m_19.mtn"},
+			{"file":"motions/tap/tsumiki_m_21.mtn"}
+		]
+    }
+}

BIN
Live2dHistoire/live2d/model/histoire/model.moc


ファイルの差分が大きいため隠しています
+ 36 - 0
Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M01.mtn


ファイルの差分が大きいため隠しています
+ 36 - 0
Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M02.mtn


ファイルの差分が大きいため隠しています
+ 36 - 0
Live2dHistoire/live2d/model/histoire/motions/idle/NOZOMU_M04.mtn


ファイルの差分が大きいため隠しています
+ 33 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0011.mtn


ファイルの差分が大きいため隠しています
+ 33 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0041.mtn


ファイルの差分が大きいため隠しています
+ 33 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0061.mtn


+ 33 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/DK_NOZOMU_0067.mtn

@@ -0,0 +1,33 @@
+# Live2D Animator Motion Data
+$fps=30
+PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.16,-0.36,-0.65,-1.03,-1.48,-2.03,-2.65,-3.37,-4.17,-5.05,-6,-7.04,-8.15,-9.34,-10.61,-11.93,-13.34,-14.8,-16.62,-18.27,-19.83,-21.25,-22.55,-23.74,-24.83,-25.8,-26.69,-27.45,-28.12,-28.69,-29.16,-29.52,-29.79,-29.95,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30

+PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.33,0.73,1.27,1.94,2.74,3.65,4.64,5.73,6.91,8.15,9.42,10.76,12.12,13.52,14.94,16.35,17.78,19.2,20.88,22.32,23.61,24.72,25.68,26.52,27.25,27.85,28.38,28.81,29.16,29.44,29.66,29.82,29.92,29.98,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30

+PARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.65,-1.12,-1.66,-2.28,-2.95,-3.65,-4.36,-5.07,-5.76,-6.41,-7.01,-7.55,-8.01,-8.39,-8.67,-8.84,-8.9,-8.41,-7.1,-5.1,-2.61,0.27,3.41,6.75,10.09,13.5,16.72,19.78,22.59,25.07,27.11,28.66,29.65,30,29.86,29.47,28.86,28.08,27.18,26.18,25.16,24.11,23.1,22.12,21.25,20.48,19.85,19.39,19.1,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19

+PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_L_SMILE=0

+PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_R_SMILE=0

+PARAM_EYE_FORM=0

+PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.011,0.025,0.043,0.07,0.09,0.12,0.16,0.19,0.23,0.27,0.31,0.35,0.39,0.43,0.47,0.51,0.56,0.59,0.64,0.68,0.71,0.74,0.77,0.788,0.806,0.82,0.833,0.842,0.85,0.856,0.86,0.863,0.865,0.866,0.866,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87

+PARAM_EYE_BALL_Y=0

+PARAM_EYE_BALL_FORM=0

+PARAM_BROW_L_Y=0

+PARAM_BROW_R_Y=0

+PARAM_BROW_L_X=0

+PARAM_BROW_R_X=0

+PARAM_BROW_L_ANGLE=0

+PARAM_BROW_R_ANGLE=0

+PARAM_BROW_L_FORM=0

+PARAM_BROW_R_FORM=0

+PARAM_MOUTH_FORM=0

+PARAM_MOUTH_OPEN_Y=0,0.39,0.78,0.71,0.64,0.32,0,0.4,0.79,0.775,0.758,0.741,0.724,0.707,0.69,0.38,0.08,0.075,0.072,0.069,0.066,0.063,0.06,0.057,0.054,0.051,0.048,0.045,0.042,0.039,0.036,0.033,0.03,0.027,0.024,0.021,0.018,0.015,0.012,0.009,0.006,0.003,0,0.09,0.19,0.5,0.82,0.42,0.03,0.98,1,1,0.37,1,1,1,1,1,1,1,1,1,0.84,0.65,0.47,0.43,0.38,0.34,0.29,0.6,0.9,0.67,0.43,0.48,0.53,0.58,0.63,0.78,0.94,1,1,0.54,0.02,0.19,0.36,0.18,0,0,0,0,0,0,0,0

+PARAM_CHEEK=0

+PARAM_SWEAT=0

+PARAM_ARM_L=0

+PARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.014,-0.06,-0.13,-0.23,-0.37,-0.53,-0.72,-0.94,-1.19,-1.48,-1.79,-2.12,-2.49,-2.88,-3.29,-3.74,-4.2,-4.69,-5.2,-5.76,-6.28,-6.77,-7.22,-7.61,-7.97,-8.27,-8.53,-8.73,-8.88,-8.97,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9

+PARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.012,-0.05,-0.1,-0.19,-0.29,-0.42,-0.58,-0.75,-0.95,-1.18,-1.42,-1.69,-1.98,-2.28,-2.61,-2.96,-3.32,-3.7,-4.1,-4.54,-4.94,-5.31,-5.65,-5.95,-6.23,-6.46,-6.65,-6.8,-6.91,-6.98,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7

+PARAM_BODY_ANGLE_Y=0

+PARAM_BREATH=0

+PARAM_HAIR_FRONT=0

+PARAM_HAIR_BACK=0

+PARAM_ACCESSORIES=0

+ 46 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/m_06.mtn

@@ -0,0 +1,46 @@
+# Live2D Animator Motion Data
+$fps=30
+
+$fadein=300
+
+$fadeout=500
+
+PARAM_ANGLE_X=0

+PARAM_ANGLE_Y=0,0,0,0,0,0,0,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.3,-27.35,-24.27,-20.36,-15.69,-10.61,-5.24,0.24,5.61,10.69,15.36,19.27,22.35,24.3,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25

+PARAM_ANGLE_Z=0

+PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_FORM=0

+PARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,-0.002,-0.006,-0.012,-0.017,-0.022,-0.026,-0.029,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.028,-0.022,-0.015,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_EYE_BALL_FORM=0

+PARAM_BROW_L_Y=0

+PARAM_BROW_R_Y=0

+PARAM_BROW_L_X=0

+PARAM_BROW_R_X=0

+PARAM_BROW_L_ANGLE=0

+PARAM_BROW_R_ANGLE=0

+PARAM_BROW_L_FORM=0

+PARAM_BROW_R_FORM=0

+PARAM_MOUTH_FORM=1

+PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_CHEEK=0

+PARAM_ARM_L_01=0,0,0,0,0,0,0,0,-0.44,-1.51,-2.82,-4.1,-5.13,-5.78,-6,-6.014,-6.019,-5.96,-5.8,-5.53,-5.17,-4.75,-4.3,-3.83,-3.36,-2.94,-2.56,-2.26,-2.07,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2

+PARAM_ARM_L_02=0,0,0,0,0,0,0,0,0.29,1.01,1.94,2.91,3.79,4.5,5,5.28,5.37,5.64,6.13,6.62,7.13,7.63,8.09,8.54,8.95,9.29,9.59,9.81,9.95,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10

+PARAM_HAND_L=0

+PARAM_ARM_R_01=0,0,0,0,0,0,0,0,-0.29,-1.01,-1.88,-2.73,-3.42,-3.85,-4,-3.997,-3.85,-3.35,-2,-0.57,0.91,2.43,4,7.73,11.93,15.1,17,18.39,18.91,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19

+PARAM_ARM_R_02=0,0,0,0,0,0,0,0,0.18,0.66,1.36,2.2,3.12,4.07,5,6,6.77,7.59,8.68,9.31,9.71,9.93,10,9.8,9.03,7.71,6,2.15,-1.99,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4

+PARAM_HAND_R=0

+PARAM_LEG_L=0,0,0,0,0,0,0,0,-0.1,-0.37,-0.76,-1.21,-1.68,-2.11,-2.48,-2.76,-2.94,-3,-2.94,-2.76,-2.48,-2.12,-1.7,-1.24,-0.75,-0.25,0.24,0.7,1.12,1.48,1.76,1.94,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2

+PARAM_LEG_R=0,0,0,0,0,0,0,0,-0.1,-0.37,-0.76,-1.21,-1.68,-2.11,-2.48,-2.76,-2.94,-3,-2.96,-2.86,-2.69,-2.47,-2.22,-1.94,-1.65,-1.35,-1.06,-0.78,-0.53,-0.31,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_BODY_ANGLE_X=0

+PARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,-0.34,-1.25,-2.55,-4.04,-5.58,-7.03,-8.26,-9.2,-9.79,-10,-9.76,-9.08,-8.02,-6.67,-5.06,-3.3,-1.44,0.44,2.3,4.06,5.67,7.02,8.08,8.76,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9

+PARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0.21,0.76,1.56,2.51,3.49,4.44,5.24,5.79,6,5.86,5.47,4.86,4.08,3.18,2.18,1.16,0.11,-0.9,-1.88,-2.75,-3.52,-4.15,-4.61,-4.9,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5

+PARAM_BREATH=0

+PARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.88,0.62,0.29,-0.05,-0.36,-0.62,-0.79,-0.85,-0.77,-0.58,-0.36,-0.12,0.09,0.27,0.39,0.43,0.415,0.38,0.32,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0

+PARAM_HAIR_FRONT=0

+PARAM_HAIR_BACK=0

+PARAM_BASE_X=0

+PARAM_BASE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.67,2.71,5.75,9.4,15.27,19.98,22,19.5,15.18,10.59,6.36,2.92,0.62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+ 46 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/m_13.mtn

@@ -0,0 +1,46 @@
+# Live2D Animator Motion Data
+$fps=30
+
+$fadein=200
+
+$fadeout=500
+
+PARAM_ANGLE_X=0

+PARAM_ANGLE_Y=0,0,0,0,0,0,-0.69,-2.49,-5.1,-8.08,-11.17,-14.05,-16.52,-18.4,-19.58,-20,-19.62,-18.63,-17.18,-15.39,-13.4,-11.31,-9.21,-7.16,-5.25,-3.53,-2.1,-0.98,-0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

+PARAM_ANGLE_Z=0

+PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_L_SMILE=0

+PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_EYE_R_SMILE=0

+PARAM_EYE_FORM=0

+PARAM_EYE_BALL_X=0

+PARAM_EYE_BALL_Y=0

+PARAM_EYE_BALL_FORM=0

+PARAM_BROW_L_Y=0

+PARAM_BROW_R_Y=0

+PARAM_BROW_L_X=0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.045,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.23,-0.26,-0.28,-0.31,-0.324,-0.339,-0.351,-0.358,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36

+PARAM_BROW_R_X=0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.044,-0.07,-0.09,-0.12,-0.14,-0.17,-0.2,-0.23,-0.25,-0.28,-0.3,-0.315,-0.33,-0.341,-0.348,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35

+PARAM_BROW_L_ANGLE=0,0,0,0,0,0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.39,-0.405,-0.419,-0.427,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43

+PARAM_BROW_R_ANGLE=0,0,0,0,0,0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.39,-0.405,-0.419,-0.427,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43

+PARAM_BROW_L_FORM=0,0,0,0,0,0,-0.004,-0.016,-0.035,-0.06,-0.09,-0.12,-0.16,-0.19,-0.23,-0.27,-0.3,-0.34,-0.37,-0.4,-0.42,-0.443,-0.458,-0.467,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47

+PARAM_BROW_R_FORM=0,0,0,0,0,0,-0.004,-0.017,-0.035,-0.06,-0.09,-0.12,-0.16,-0.2,-0.24,-0.27,-0.31,-0.35,-0.38,-0.41,-0.43,-0.452,-0.467,-0.477,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48

+PARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.87,0.59,0.23,-0.13,-0.47,-0.75,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

+PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

+PARAM_CHEEK=0

+PARAM_ARM_L_01=0,0,0,0,0,0,0.05,0.21,0.45,0.76,1.13,1.55,2.01,2.5,3,3.5,3.99,4.45,4.87,5.24,5.55,5.79,5.95,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6

+PARAM_ARM_L_02=0,0,0,0,0,0,-0.18,-0.69,-1.49,-2.53,-3.76,-5.18,-6.72,-8.34,-10,-11.66,-13.28,-14.82,-16.24,-17.47,-18.51,-19.31,-19.82,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20

+PARAM_HAND_L=0

+PARAM_ARM_R_01=0,0,0,0,0,0,0.005,0.03,0.11,0.26,0.48,0.79,1.2,1.7,2.3,3,4.71,6.95,9.38,11.75,13.83,15.5,16.6,17,16.4,14.94,13,11.06,9.6,9,9.24,9.89,10.82,11.93,13.07,14.18,15.11,15.76,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16

+PARAM_ARM_R_02=0,0,0,0,0,0,0.34,1.25,2.55,4.04,5.58,7.03,8.26,9.2,9.79,10,9.41,8.14,6.55,4.9,3.39,2.14,1.31,1,1.68,3.32,5.5,7.68,9.32,10,9.72,8.99,7.92,6.65,5.35,4.08,3.01,2.28,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2

+PARAM_HAND_R=0

+PARAM_LEG_L=0,0,0,0,0,0,0.06,0.24,0.52,0.89,1.32,1.81,2.35,2.92,3.5,4.08,4.65,5.19,5.68,6.11,6.48,6.76,6.94,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7

+PARAM_LEG_R=0,0,0,0,0,0,-0.04,-0.14,-0.3,-0.51,-0.75,-1.04,-1.34,-1.67,-2,-2.33,-2.66,-2.96,-3.25,-3.49,-3.7,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4

+PARAM_BODY_ANGLE_X=0,0,0,0,0,0,0.09,0.34,0.74,1.26,1.87,2.56,3.32,4.1,4.9,5.7,6.47,7.2,7.88,8.48,9,9.43,9.74,9.93,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10

+PARAM_BODY_ANGLE_Y=0,0,0,0,0,0,-0.04,-0.14,-0.29,-0.5,-0.75,-1.02,-1.33,-1.64,-1.96,-2.28,-2.59,-2.88,-3.15,-3.39,-3.6,-3.77,-3.9,-3.97,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4

+PARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0.09,0.34,0.74,1.26,1.87,2.56,3.32,4.1,4.9,5.7,6.47,7.2,7.88,8.48,9,9.43,9.74,9.93,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10

+PARAM_BREATH=0

+PARAM_HAIR_FLUFFY=0

+PARAM_HAIR_FRONT=0

+PARAM_HAIR_BACK=0

+PARAM_BASE_X=0

+PARAM_BASE_Y=0

ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/nep_touch_boobs_1.mtn


ファイルの差分が大きいため隠しています
+ 60 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_01.mtn


ファイルの差分が大きいため隠しています
+ 49 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_09.mtn


ファイルの差分が大きいため隠しています
+ 52 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_13.mtn


ファイルの差分が大きいため隠しています
+ 76 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_14.mtn


ファイルの差分が大きいため隠しています
+ 53 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_19.mtn


ファイルの差分が大きいため隠しています
+ 43 - 0
Live2dHistoire/live2d/model/histoire/motions/tap/tsumiki_m_21.mtn


BIN
Live2dHistoire/live2d/model/nep/histoire.1024/0.png


BIN
Live2dHistoire/live2d/model/nep/histoire.1024/1.png


BIN
Live2dHistoire/live2d/model/nep/histoire.1024/normal_2.png


BIN
Live2dHistoire/live2d/model/nep/ico_histoire.png


+ 58 - 0
Live2dHistoire/live2d/model/nep/model.json

@@ -0,0 +1,58 @@
+{
+    "version":"1.0.0",
+    "model":"model.moc",
+    "textures":[
+        "histoire.1024/0.png",
+		"histoire.1024/1.png",
+		"histoire.1024/normal_2.png"
+    ],
+    "layout":{
+        "center_x":0.0,
+        "center_y":-0.05,
+        "width":2.0
+    },
+    "hit_areas_custom":{
+        "head_x":[-1, 1],
+        "head_y":[1, -1],
+        "body_x":[-1, -1],
+        "body_y":[1, -1]
+    },
+    "motions":{
+        "idle":[
+            {"file":"motions/idle/idle_00.mtn"},
+			{"file":"motions/idle/idle_01.mtn"},
+			{"file":"motions/idle/idle_02.mtn"}
+        ],
+        "sleepy":[
+			{"file":"motions/tap/shake.mtn"}
+        ],
+        "flick_head":[
+			{"file":"motions/tap/refuse.mtn"},
+			{"file":"motions/tap/nep_slide_head_2.mtn"},
+			{"file":"motions/tap/nep_touch_belly_2.mtn"},
+			{"file":"motions/tap/nep_touch_boobs_1.mtn"}
+        ],
+        "tap_body":[
+			{"file":"motions/tap/smile.mtn"}
+
+        ],
+        "talk":[
+			{"file":"motions/tap/nep_touch_belly_1.mtn"},
+			{"file":"motions/tap/nep_slide_head_2.mtn"},
+			{"file":"motions/tap/nep_touch_head_1.mtn"}
+
+        ],
+		"rest":[
+			{"file":"motions/tap/tilt_head.mtn"},
+			{"file":"motions/idle/idle_00.mtn"},
+			{"file":"motions/idle/idle_01.mtn"},
+			{"file":"motions/idle/idle_02.mtn"}
+        ],
+		"":[
+			{"file":"motions/tap/nep_touch_belly_1.mtn"},
+			{"file":"motions/tap/nep_slide_head_2.mtn"},
+			{"file":"motions/tap/nep_touch_head_1.mtn"},
+			{"file":"motions/tap/nep_touch_boobs_1.mtn"}
+		]
+    }
+}

BIN
Live2dHistoire/live2d/model/nep/model.moc


ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/nep/motions/idle/idle_00.mtn


ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/nep/motions/idle/idle_01.mtn


ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/nep/motions/idle/idle_02.mtn


BIN
Live2dHistoire/live2d/model/nep/motions/tap/nep_slide_head_2.mtn


ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_belly_1.mtn


ファイルの差分が大きいため隠しています
+ 41 - 0
Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_belly_2.mtn


ファイルの差分が大きいため隠しています
+ 44 - 0
Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_boobs_1.mtn


BIN
Live2dHistoire/live2d/model/nep/motions/tap/nep_touch_head_1.mtn


+ 33 - 0
Live2dHistoire/live2d/model/nep/motions/tap/refuse.mtn

@@ -0,0 +1,33 @@
+# Live2D Animator Motion Data
+$fps=30
+PARAM_BROW_L_ANGLE=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5
+PARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.78,-14.21,-13.45,-12.55,-11.62,-10.71,-9.84,-9.11,-8.52,-8.14,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
+PARAM_BODY_ANGLE_X=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.66,-6.9,-6,-5.05,-4.39,-3.89,-3.53,-3.28,-3.12,-3.03,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.22,-1.99,-1.75,-1.5,-1.25,-1.01,-0.78,-0.56,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0
+PARAM_BODY_ANGLE_Y=0
+PARAM_BODY_ANGLE_Z=5
+PARAM_BREATH=0
+PARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13.97,-13.89,-13.78,-13.65,-13.52,-13.39,-13.26,-13.16,-13.07,-13.02,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.83,-12.63,-12.37,-12.06,-11.71,-11.32,-10.92,-10.5,-10.08,-9.68,-9.29,-8.94,-8.63,-8.37,-8.17,-8.04,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8
+PARAM_BROW_R_Y=0
+PARAM_ANGLE_X=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-13.11,-8.34,-2.17,4.36,10.38,15.36,19,22.21,23.04,23.06,23,23,23,23,23,23,23,22.87,22.48,21.88,21.1,20.18,19.12,17.96,16.75,15.5,14.25,13.04,11.88,10.82,9.9,9.12,8.52,8.13,8,8,8,8,8,8,8,8,8,8,8
+PARAM_BROW_R_X=0
+PARAM_MOUTH_OPEN_Y=0
+PARAM_MOUTH_FORM=-1
+PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1
+PARAM_BUST_Y=0
+PARAM_EYE_FORM=-1
+PARAM_EYE_L_SMILE=0
+PARAM_BROW_L_FORM=-0.5
+PARAM_EYE_BALL_FORM=0
+PARAM_BROW_L_X=0
+PARAM_BROW_L_Y=0
+PARAM_BROW_R_ANGLE=-0.5
+PARAM_EYE_R_SMILE=0
+PARAM_BROW_R_FORM=-0.5
+PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1
+PARAM_TERE=0
+PARAM_HAIR_BACK=0
+PARAM_HAIR_FRONT=0
+PARAM_ARM_L=-5
+PARAM_EYE_BALL_X=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.447,0.49,0.55,0.62,0.69,0.76,0.82,0.88,0.92,0.95,0.96,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.92,0.87,0.81,0.74,0.66,0.57,0.48,0.38,0.29,0.2,0.11,0.03,-0.04,-0.1,-0.15,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19
+PARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.543,0.547,0.551,0.557,0.563,0.57,0.578,0.585,0.592,0.6,0.607,0.613,0.619,0.623,0.627,0.629,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63
+PARAM_ARM_R=-5

ファイルの差分が大きいため隠しています
+ 31 - 0
Live2dHistoire/live2d/model/nep/motions/tap/shake.mtn


+ 34 - 0
Live2dHistoire/live2d/model/nep/motions/tap/smile.mtn

@@ -0,0 +1,34 @@
+# Live2D Animator Motion Data
+$fps=30
+PARAM_BROW_L_ANGLE=0
+PARAM_ANGLE_Z=14,13.79,13.18,12.23,10.96,9.42,7.64,5.72,3.61,1.4,-0.88,-3.12,-5.4,-7.61,-9.72,-11.64,-13.42,-14.96,-16.23,-17.18,-17.79,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18
+PARAM_BODY_ANGLE_X=3
+PARAM_BODY_ANGLE_Y=0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+PARAM_BODY_ANGLE_Z=1,0.94,0.76,0.48,0.12,-0.3,-0.76,-1.25,-1.75,-2.24,-2.7,-3.12,-3.48,-3.76,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4
+PARAM_ARM_R_B=0
+PARAM_BREATH=0
+PARAM_ANGLE_Y=8
+PARAM_BROW_R_Y=0
+PARAM_ANGLE_X=0
+PARAM_BROW_R_X=0
+PARAM_MOUTH_FORM=1
+PARAM_EYE_L_OPEN=0
+PARAM_BUST_Y=0
+PARAM_EYE_FORM=0
+PARAM_EYE_L_SMILE=1
+PARAM_BROW_L_FORM=0
+PARAM_EYE_BALL_FORM=0
+PARAM_BROW_L_X=0
+PARAM_BROW_L_Y=0
+PARAM_BROW_R_ANGLE=0
+PARAM_EYE_R_SMILE=1
+PARAM_ARM_R_A=1
+PARAM_BROW_R_FORM=0
+PARAM_EYE_R_OPEN=0
+PARAM_TERE=0
+PARAM_HAIR_BACK=0
+PARAM_HAIR_FRONT=0
+PARAM_ARM_L_A=1
+PARAM_EYE_BALL_X=0
+PARAM_EYE_BALL_Y=0
+PARAM_ARM_L_B=0

ファイルの差分が大きいため隠しています
+ 33 - 0
Live2dHistoire/live2d/model/nep/motions/tap/tilt_head.mtn